基于多播的以太网文件传送协议的设计与实现

文件传输  时间:2021-01-12  阅读:()

张昆朋1,吕延庆1,谢华成2洛阳师范学院信息技术学院,河南洛阳471022信阳师范学院网络信息与计算中心,河南信阳464000通讯作者邮箱keyban@163.
com摘要:将文件数据从一台主机复制到多台主机的特定情况下,基于单播的FTP、HTTP等协议及软件来传送,会造成网络流量的浪费,为此设计了一种D类多播地址传送法,可减少网络流量,提高传输效率.
设计并用Java实现了基于多播的以太网文件传送协议,服务端程序用来实现多播数据的发送,而客户端程序用来接收多播数据.
传输层采用UDP协议,参考了TFTP协议的设计思路,并对其做了一些修改,对PDU超时重传的情况进行了处理.
经实验测试,该程序在各种情况下都具有较好的效率和可靠性,在以太网多播环境下优于已有的传统的FTP协议.
该设计为局域网内大量文件的传送提供了新的思路,具有一定的推广价值.

关键词:多播;D类地址;Java;文件传送中图分类号:TP311文献标志码:ADesignandImplementationofMulticast-basedEthernetFileTransferProtocolZhangkun-peng1,Lvyan-qing1,XieHua-cheng2AcademyofInformationTechnology,LuoyangNormalUniversity,LuoyangHenan471022,ChinaInformationofNetworkandComputerCenter,XinyangNormalUniversity,Xinyang464000,ChinaAbstract:Whenfilesdataarecopiedfromahosttoseveralhosts,ifFTPorHTTPprotocoletcwhichbasedonunicastisselected,amountsofnetworkflowwillbewasted.
SoafiletransfermethodusingD-classIPaddressisproposed,anditcanreducenetworkflowandimprovetransferefficiency.
DesignanEthernetfiletransferprotocolandimplementitusingJavalanguage.
Theserverprogramimplementsthetransmissionofmulticastdata,andtheclientprogramimplementsthereceivingofmulticastdata.
ThetransportlayeradoptstheUDPprotocol.
ItconsultsandimprovedonthedesigningmethodofTFTPprotocol,anddealswiththeovertimeretransferofPDU.
AccordingtoExperimentresults,theprogramhasperfectgoodspeedandreliabilityinmostconditions.
UnderEthernetmulticastingcircumstance,theprogramisbetterthanconventionalFTPprotocol.
Thedesignprovidesanewwayofamountsoffiles'transferinLAN,andhassomepromotionalvalue.
Keywords:Multicast;D-classaddress;Java;FileTransfer0引言在局域网中经常会遇到把相同的数据复制到多台主机上的情况,如果使用基于单播的FTP、HTTP等协议及软件来传送文件,会造成很多网络流量的浪费.
在将文件数据从一台主机复制到多台主机的特定情况下,使用D类多播地址可以有效的避免以上问题,从而减少网络流量,提高传输效率.

图1以太网上数据帧的单播和多播(左图为单播,右图为多播)以太局域网本身发送数据时就是以广播的方式发送的,只是不需要该数据的客户端根据MAC帧包含的目的地址来舍弃该数据.
在使用FTP或HTTP等协议传输时,由于目的地址采用单播地址,丢弃了本不应丢弃的数据,降低了传输效率;如果目的地址为多播地址,则该数据仍能正常被接收端主机接收和处理(见图1).
目前网络克隆的程序就是基于上述的多播原理完成工作的,但这些程序大多是基于磁盘或分区的.
例如Ghost软件带有的GhostCast程序,可以通过网络对客户机的整个硬盘或分区进行克隆,一般都需要预先在多台需要复制文件的客户机的磁盘上专门划分出分区,破坏了原有的磁盘结构且设置较为繁琐.

下面设计和实现一个基于单个文件或整个目录的多播文件传送程序,能够较好地解决以上问题.

1多播文件传送协议的设计1.
1多播IP地址分析多播通信中使用的D类IP地址范围在224.
0.
0.
1~239.
255.
255.
255之间,采用多播进行通信需要使用能够进行多播通信的网络接口,如果是通常的以太网接口,自然的就可以进行多播通信.
多播通信与以太网中的广播网不同,属于OSI第三层的网络层协议,可以跨越支持多播协议的路由器进行通信.
其中D类IP地址224.
0.
0.
1表示在本子网上的所有参加多播的主机和路由器,当使用这个IP地址时,不能跨越路由器,只能在以太网的相同网段内使用多播,但这是能够满足本文针对的网络实验室的要求的.
因此本程序在实现时采用了224.
0.
0.
1这个固定的地址,实际使用时需要跨越多播路由器通信也可以根据需要来调整多播IP地址.

1.
2传输层协议分析首先,在传输层上具有可靠性保证的TCP不支持多播,因此传输层采用UDP协议,而数据的可靠传输由协议本身的设计来保证;其次,由于涉及到文件传送,多播文件传送协议参考了同样基于UDP的TFTP协议(RFC1350)的设计思路,但考虑到TFTP没有列目录的功能,因此针对其适用情况做了一些修改.
多播文件传送协议在传输层使用的UDP数据报一共定义了六种协议数据单元(PDU),每种PDU的第一个字段是操作码标志字段(FLAG),根据该标志字段的不同PDU的格式和作用各不相同(见表1).
表1多播文件传送协议定义的6种协议数据单元PDU类型及作用方向PDU格式全部传送结束PDU服务器(客户机|标志位|文件名PDU服务器(客户机|标志位|目录名长度|文件名|文件名确认PDU客户机(服务器|标志位|IP地址|文件名响应|客户端发现PDU客户机(服务器|标志位|IP地址|文件数据PDU服务器(客户机|标志位|序列号|结束标志|文件数据|文件数据确认PDU客户机(服务器|标志位|序列号|IP地址|客户端使用"客户端发现PDU"通知服务端,包含IP地址来标识不同的客户端.
这样在文件传送未开始之前,服务器收集所有客户机IP地址,开始文件传送后可以监测并保证传送的文件数据被每个客户端正确接收.
文件传送是切分成文件数据块进行的,每个"文件数据PDU"携带1K字节的文件数据(最后一个数据块可能不足1K字节),这些文件数据块使用了序号来保证顺序,从而消除了UDP可能无序接收的问题.

1.
3对PDU超时重传的处理考虑到了网络的质量问题,UDP可能出现丢包,因此对于"文件名PDU"、"文件名确认PDU"、"文件数据PDU"、"文件数据确认PDU"都作了超时重传的处理.

需要做超时重传处理的场合包括:(1)在客户端接收"文件数据PDU"超时的情况:①如果该"文件数据PDU"是文件的第一个数据块,重传该文件的"文件名确认PDU";②如果该"文件数据PDU"不是文件的第一个数据报,重传上一个文件数据块的"文件数据确认PDU".

(2)在服务端接收"文件名确认PDU"超时的情况,重传该文件的"文件名PDU".

(3)在服务端接收"文件数据确认PDU"超时的情况,重传该文件数据块的"文件数据PDU".

对于"客户端发现PDU",由于可以在服务端看到是否所有客户端都连接上,并控制发送开始的时间,所以不用重传.
发现有"客户端发现PDU"丢失,即服务端无法发现客户端的情况,只需要重新启动客户端程序就可以,或者检查客户端程序的IP设置是否是与服务端程序在同一以太网段内.

对于"全部传送结束PDU",因为服务端程序运行到发送该PDU时已经能够保证所有文件数据已经被正确发送到所有多播客户端,因此直接把该PDU数据重传多次,使得客户端程序能够接收到该PDU能够退出运行即可.
如果出现该PDU无法被有些多播客户端接收的情况,客户端强行退出即可.

2本多播程序实现概述Java平台对多播协议提供了支持,本程序使用Java语言来开发.
本多播程序分为服务端程序和客户端程序两部分.
其中,服务端程序用来实现多播数据的发送,而客户端程序用来接收多播数据.
典型的情况是在同一以太网段内运行一个服务端程序和多个客户端程序.
程序流程框图如图2、3所示.

图2服务器端多播文件传送流程图3客户端接收数据流程3测试为了测试该多播程序的有效性,测试分三步进行.
在安装了WindowsServer2003的计算机上使用1个多播服务端程序,而多播客户端程序分别使用1个、2个和25个,也就是安装多播客户端的计算机数量逐步增多,以测试该多播程序的传送效果.
测试结果见表2.

表2本程序与FlashFXP对比表多播客户端数量本程序速度(bps)FlashFXP速度(bps)本程序重传次数FlashFXP重传次数12251M800k500k1.
3M700k200k026004684结论在此多播文件传送协议的设计和实现中,参考了成熟的协议,从测试结果来看,达到了预想的效果,在以太网的同一网段内,保证数据可靠传输的前提下提高了传输效率,具有较好的实用性.
为了进一步提高其实用性,可在以下方面做出改进.

(1)在程序中,文件数据块的大小(默认取1K字节)、超时时间(默认取5秒)等参数都可以调整以适应网络情况,以获得最大的传输效率.
可通过在不同网络条件下,针对不同大小和个数的多次的文件传送实验获得最优的参数.

(2)在多播传送过程中,能够动态调整多播客户端的个数,以避免在传送时间比较长的情况下,某些客户端出现意外情况,服务端程序无法继续传送数据的情况.

(3)因为本多播程序在没有Java运行环境的机器上运行时,首先需要安装JRE(JavaRuntimeEnvironment),可以将本程序使用C来实现并可以加上图形界面,以利于Windows平台下的部署和使用.

无忧云:服务器100G高防云服务器,bgpBGP云,洛阳BGP云服务器2核2G仅38.4元/月起

无忧云怎么样?无忧云值不值得购买?无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。目前,四川雅安机房,4...

wordpress投资主题模版 白银黄金贵金属金融投资网站主题

wordpress投资主题模版是一套适合白银、黄金、贵金属投资网站主题模板,绿色大气金融投资类网站主题,专业高级自适应多设备企业CMS建站主题 完善的外贸企业建站功能模块 + 高效通用的后台自定义设置,简洁大气的网站风格设计 + 更利于SEO搜索优化和站点收录排名!点击进入:wordpress投资主题模版安装环境:运行环境:PHP 7.0+, MYSQL 5.6 ( 最低主机需求 )最新兼容:完美...

Hostodo独立日提供四款特价年付VPS套餐 最低年付$13.99

前天,还有在"Hostodo商家提供两款大流量美国VPS主机 可选拉斯维加斯和迈阿密"文章中提到有提供两款流量较大的套餐,这里今天看到有发布四款庆祝独立日的七月份的活动,最低年付VPS主机13.99美元,如果有需要年付便宜VPS主机的可以选择商家。目前,Hostodo机房可选拉斯维加斯和迈阿密两个数据中心,且都是基于KVM虚拟+NVMe整列,年付送DirectAdmin授权,需要发工单申请。(如何...

文件传输为你推荐
com域名空间域名解析,我是一个新手站长,我买了一个空间跟一个COM域名,空间自带一个2级域名,我想把这个COM域名绑定到空间上,咋么办?急急急!求大神帮我,我创建一个游戏论坛,也查不到资料,可以给20元,我的手机13685455534,谢谢深圳网站空间怎样申请免费网站空间100m虚拟主机100M虚拟主机有多大,能放多少东西上海虚拟主机上海虚拟主机哪家好啊?郑州虚拟主机59互联 亿恩科技 和郑州景安那一个公司的虚拟主机最好!我指的是速度和服务!谢谢!请大家凭良心说话!最好的虚拟主机哪家的虚拟主机比较好?西安虚拟主机西安互联是个什么公司?广西虚拟主机网站icp备案流程安徽虚拟主机合肥蜀山区哪家网络公司做网站最好顶级域名顶级域名有哪些
江西服务器租用 谷歌域名邮箱 godaddy优惠码 缓存服务器 天猫双十一抢红包 hkg idc是什么 100m独享 如何注册阿里云邮箱 免费个人主页 windowsserver2012r2 cpu使用率过高怎么办 傲盾代理 低价 赵荣 dbank 免费php空间申请 新浪轻博客 免费邮件服务器软件 更多