第l0卷第9期2010年3月 科学技术与工程 @VoL 10 No.9 Mar.2010 1671-1815(2010)09-2195—05 Science Technology and Engineering 2010 Sci.Tech.Engng. 基于可靠组播文件传输协议的设计与分析 董淑松康慕宁 (西北工业大学计算机学院,西安710072) 摘要众所周知兀甲与 1FrP都是常用的文件传输协议,它们分别适用于点对点任意文件和点对多点小文件传输。如果需 要传输的文件有近4G的大小并且面对的是数量庞大的电信刀片式服务器,使用多线程FrP传输的方式一定会占满近乎所有 CPU及网络资源,显然不是一种好的方法。结合n’P与邢协议各自的特点,采用TCP链路进行传输控制,UDP组播进行 数据传送的方式,设计出一种新的文件传输协议R ,在实现了可靠组播文件传输的同时有效地提升了文件传输的效率。 关键词 文件传输协议 简单文件传输协议 可靠组播 文件传输 中图法分类号TN915.04; 文献标志码A 在电信运营商的机房经常能看到整齐划一的 模型的应用层,是一种基于面向连接的可靠有效的 机架群和数量庞大的刀片服务器,它们是维持正常 文件传输协议。它能很好地提供交互式的访问,允 通信的基石,也是电信运营商们得以生存的本钱。 许客户指明文件的类型与格式,并允许文件具有存 文件更新是运营商提供最新服务的必经阶段,也是 取权限。 机房管理人员几乎都需要面对的重要使命。在文 TFTPl2 (Trivial File Transfer Protoco1)是一个很 件更新时所要做的也许只是执行一条更新命令,然 小且易于实现的点到多点小文件传输协议,同样位 而真正实现更新的却是位于底层中间件系统中负 于OSI和TCP模型的应用层,是一种基于无连接的 责文件传输模块的开发人员所需要考虑的问题。 不可靠文件传输协议。1]FⅥ’协议只支持文本传输, 传统的m方式可以实现单个文件的点对点传输, 不支持交互,而且没有一个庞大的命令集,一般多 然而对于如此数量的服务器群,一旦出现巨型文 用于局域网以及远程UNIX计算机中。与FTP相 件,只能长时间等待了。将当前最流行的文件传输 比,Tm使用组播UDP数据包进行通信(见图1)。 协议FTP协议以及ⅡTI1P协议的特点结合起来,提 以一个需求实例来分析VI?P与TFrP的优缺 出了一种新型的基于组播的可靠文件传输协议,成 点。现在某机房拥有4组机架,每个机架含有8台 功地解决了大文件多服务器同步文件更新时的文 服务器,对于今天需要更新的一个4G的数据包需 件传输问题。 要从其中一台服务器上传输到其他的3l台服务 器上。 1对既有FTP与TFTP协议的分析 FTP虽然可靠高效,但却是单点对单点的传输 FrP…(File Transfer Protoco1)是互联网上使用 方式,无法实现同步传输。即使采取多线程传输的 最为广泛的点到点文件传输协议,位于OSI和TCP 方式,由于系统对带宽、CPU等资源的争用,效率甚 至比执行批处理脚本逐台传输还要缓慢。使用 2009年12月22日收到 TF11P可以达到只执行一次任务便完成1台到31台 第一作者简介:董淑松,硕士研究生,研究方向:软件工程与网络 的传输,而且可以认为当前是局域网环境,但是 软件、文件更新。E-mail:dongssong@126.tom。 UDP的不可靠性又使得矸 P更适合于小文件的传 。 通信作者简介:康慕宁,教授,研究方向:软件工程、网络软件、 输场合,因为即使是一个小小的数据包发生丢失或 网络存储系统等。 者出错可能也需要重新执行整个任务。这样的效 科学技术与工程 10卷 图1 n.P与T兀IP协议数据传输对比 率很可能直接影响到第二天的服务质量。 2可靠组播文件传输协议 针对上面的分析,本文推出一种新的文件传输 通信协议(RTPTP:Reliable T兀IP)。它遵循基本的 TFTP协议规范,并在此基础上增加了校验、重传、心 搏等功能,目的在于弥补UDP传输的不可靠性,从 而实现单点对多点任意文件传输的及时性及可 靠性。 2.1 RFTFP可靠性方案分析 2.1.1重传 数据传输开始前接收端首先建立接收缓存区, 用来映射同发送端大小一样的发送缓存区,大小可 自定义为1 MB到128 MB之间的任意值 j,可以把 该缓冲区大小理解为传统意义上一次TFvrP传输的 文件大小。接收端时刻检测接收到的UDP数据包 状态,把UDP数据包中包含的数据内容写入接收缓 存区,并更新接收队列。随着发送缓冲区内容发送 完毕,接收端需要及时意识到缓冲区中哪些数据没 有被更新过,换句话说就是哪个UDP数据包在该轮 缓冲区对缓冲区的发送过程中丢失了,据此建立自 己的丢包队列。然后,接收端判断自己当前的通信 权限,向发送端请求所丢包。如果被赋予了通信权 限,则重新请求丢包队列中的各个数据包,再次更新 丢包队列,直到完全接收所有数据包为止(见图2)。 uDP数据\包合法/ \,/ Y 接收到重\/ \ \ / 复数据包/ IN 更新缓冲区以及丢包队列 本机正在\\N 申请重传/ 缓冲区数据收集 完毕,向发送端 返回ACK应答 请求丢包队列下一 图2数据包重传流程图 2.1.2校验 当接收端接收完发送端缓冲区中的所有数据 时,它便开始执行缓冲区内存的数据校验,并将结 果记录下来。当发送端判断本轮缓冲区数据已经 成功地发送到所有接收端时,发送端执行缓冲区内 存数据校验,并将结果发送给所有接收端。接收端 通过TCP数据包类型判断接收到的是否是本轮缓 冲区中的校验码,如果是,则取出校验数据并且和 自己计算出的校验结果进行比对;一致时完成校验 同时完成本轮传输;不一致时则向发送端报告错误 并请求重传整个缓冲区。 采用的校验算法是将缓冲区内存中各位数值 进行异或的简单校验算法。当然,在设计时也可以 9期 董淑松,等:基于可靠组播文件传输协议的设计与分析 根据情况自行选择难易度,复杂度越高的算法校验 精度也越高。比如可以参考linux下经典文件校验 保留:选项的具体内容、包括文件信息、校验 码、数据包号、任务中断原因等。 2.3 RTFTP协议通信方式 2.3.1建立连接阶段 命令cksum的算法,或者参考CRC算法等。 2.1.3接收端自检测 除了接收数据、写入内存、校验计算之类的操 作,接收端还需要能够在适当的时候做出主动回 RTm协议通信需时需要发送端和每个接收 端都建立一条TCP连接,用于点对点传递控制信 应,通过增加对数据包大小、组播标识号、包号、种 类、逻辑等合理性等判断,丢弃多余或者乱序的数 据包并且在必要的时候及时通知发送端。接收端 的智能化可以有效地减少发送端的控制处理逻辑, 降低发送端的开发难度。 2.1.4唯一组播标识号 当网络中存在多个组播任务时,组播IP地址冲 突的场合是可能发生的,为了避免与其他任务相同 组播IP地址的干扰,需要在UDP数据包中包含能 够标识一次任务唯一性的信息,即组播标识号。组 播标识号由组播IP地址和以当前时间为种子的随 机数组成,大小为一个长整形数。 2.2 RTFTP协议数据包格式 UDP数据包 O 数据包长度 序号 组播标识号a 组播标识号b 数据 序号:当前数据包编号,它标识该数据在当前 发送内存中的相对位置。 组播标识号:类似于端口,标识唯一的组播 任务。 TCP数据包 O l 5l6 31 选项:控制通信标识,包括初始化请求、数据请 求、校验请求、终止请求、请求应答等。 息。数据信息则通过组播UDP的方式对组内的所 有成员广播,只有组播组内的接收端才能由网卡向 上层提交数据,所以每个接收端都需要加入到同一 个已知组播组里。 2.3.2同步传输信息阶段 在传输开始前,接收端需要知道任务基本信 息,包括文件大小、文件权限、文件名称、存储路径、 组播IP地址、组播标识号,它们可以分多次由发送 端发出,也可以一次性发出。接收端收到上面信息 后依次完成文件创建、权限检查、空间检查、路径检 查、加入组播组等操作 J,从而达到发送端和接收 端同步。 2.3.3数据传输阶段 整个文件按照内存缓冲区大小被分成多次读 入内存,对于每块内存缓冲区中的数据需要按照 UDP数据包数据部分的大小被顺序封装,对于每个 已封装好的UDP数据包采取组播的方式发送到已 知组播组内。接收端会不断地收到UDP数据包并 根据智能自检测系统对数据包进行处理。发送端 会在一块内存缓冲区中的数据传输完成后依次询 问各个接收端的接收情况并根据需要重发丢包数 据。在判断所有接收端都无丢包的情况下发送校 验码请求各个接收端校验内存缓冲区中的数据。 校验无误时发送端继续读取并发送文件剩余内容, 直到文件所有内容发送完成(见图3)。 2.3.4电路拆除阶段 每个接收端会在正确接收最后一块内存缓冲 区中的数据以后自动完成内存数据到文件的写入, 释放内存以及断开连接等操作然后结束本次任 务_5]。发送端在收到最后一个接收端的确认信息 后才断开网络连接,并结束任务。 科学技术与工程 l0卷 图3数据阶段传输流程图 3性能分析 根据RTFrP协议开发相应的服务端和客户 端 并在图4环境上进行了多次实验。实验结果 如图5所示。 机器配置 系统=Montavista Linux4内存=4 GB CPU=Intel 酷睿2双核E8 400 网络环境 网卡=D.Link DGE-530T网线=100BASE.TX 路由器:D.iLnk D1-504 M连接方式:直线 协议参数 缓冲区=64 MB UDP数据包大小=1 KB 组播IP=239.0.0.1 实验次数 FI'P=5 RTFrP=10 丢包率 <0 O1% 图4实验环境 图5实验结果 实验得出明显结论,随着文件大小和客户端数 量的同时增加,文件的传输速度会有大幅提升,而 在客户端少的情况下直接使用FTP会快一些。 4结论 协议充分考虑了FTP及TFTP协议的优点,即 可靠性和并发性,使用较少的控制和较简单的数据 帧实现了快速可靠的文件传输。设计的需求源自于 国外某知名电信企业的中间件开发项目,目的旨在提 高多机大文件传输的效率。经过缜密的测试和长期 的使用,由该协议开发出的客户端以及服务端能够提 升20%以上的文件传输效率,深得用户满意。 参考文献 1 Reynolds J.File.RFC959 Transfer Protocol,WW ̄r.ieff.ors/ rfc/rfe959.txt.1985 2 MIT,RFC1350,The T兀’P Protocol,http://www.ieff.or昏/ rfe/ffc959.txt.1995 3 Harkin A,RFC2348,TFrP Blocksize Option,WWW.enpaf.net/Class/ Rfcen/200502/3411.htm1.1995 4 W Richard Stevens,Unix网络编程.北京:清华大学出版社,1997 5 Handley M.Floyd S,Whetten B,et a1.The reliable multicast design space for bulk data transfer,http://rfc2887.x42.corn.2000 6 Samuel A,Mitchell M,Oldham J.Advanced Linux Programming,ht・ tp://www.Advanced Linux Programming.coin.1998 (下转第2206页) 2206 科学技术与工程 lO卷 performance Computer Architecture.2002:251--262 6 Xilinx Virtex-5 FPGA User Guide UGI90(v4.2)May 9,2008 3 Horowitz M,Yang C・K K,Sidiropoulos S.Hi曲一speed electrical siuga- 7 Xilinx Virtex-5 FPGA Data Sheet:DC and Switching Characteristics, ling:overviewandlimitations.IEEEMicro,1998;(1):12—24 DS202(v5.2).June 25。2009 4 Henness J L.Patterson D A.Computer architecture:a quantitative 8 Xilinx Vi ̄ex-5 FPGA Configuration User Guide UG/91(v3.8)Au— approach,third ediiton.北京:电子工业出版社,2004 ugst14,2009 5(英)Bateman A,Stephens I P.DSP算法、应用与设计.陈健,陈 9 Xilinx Synthesis and Simulation Design Guide 8.2i.2006 伟,汪书宁,等译.北京:机械工业出版社,2003 Design and Implementation of a Method for Transceiver Loopback Test LI Ren—gang,QIN Ji—long (Inspur(Beijing)Electronic Information Industry Co.,Lld.,Beijing 100085,P.R.China) [Abstract]Loop back test is commonly used to examine and analyze chip transceiver interface circuit,the inter- hal logic as well as the physical realization of transmission lines.Logic simulation of the loop—back design.Commis- sioning phase of the loopback test carl quickly locate the failure of physical realization,in order to save time over- head and labor costs.An optimized design is described to achieve the physical layer chip loop—back design and test methods,more effective to shorten the debug cycle. [Key words]loopback launch received FPGA loopback deposir ‘ (上接第2198页) Design and Analysis of File-transfer Protocol Based on Reliable Multicast DONG Shu-song,KANG Mu・ning’ (School of Computer Science,Northwestern Polyteehnical University,Xi’an 710072,P.R.China) [Abstract] Both兀’P and TFI1P aye very popular ifle・transfer protocols.One is apt to point-to—point occasion while the other is apt to point-to—multipoint small ifle—transfer occasion.When facing on a 4G ifle and hllge numbers of telecommunication.using multi—thread and F] will occupy almost all the CPU and NET resources.Apparently it’S not a good way out.The Author merged the traits of rP and T】呵'P.using TCP link for data control and Muhicast for data sending.desinged a new file—transfer protocol—RTn'P and implemented a reliable file—transfer system at the same time highly improves the file-transfer's efficiency. [Key words] FTP Tn1P reliable multicast ifle.transfer