2024年1月15日发(作者:)

技术论坛

计算机与网络网络数据自适应组包传输方法石彬,黎刚果辽宁葫芦岛125001)(中国人民解放军92941部队,(MTU)摘要:网络IP报文的大小受链路层最大传输单元限制,当报文长度超过MTU时,IP数据报文会被分成若干较小的部分进行分片传输,对网络通信各传输节点的承载能力以及整个传输链路的可靠性和适应性提出了严峻挑战。针对IP分片现象,并通过案例进行了测试分析,证明了介绍了超长数据包网络传输过程中会存在的问题,提出了基于网络数据包的自适应组包方法,该方法的可行性。自适应关键词:网络;分片;中图分类号:TP393文献标志码:A文章编号:1008-1739(2022)04-62-4SHIBin,LIGangguo(Unit92941,PLA,Huludao125001,China)ThesizeofnetworkIPmessageislimitedbytheMaximumTransmissionUnit(MTU)emessagelengthexceedsMTU,theIPdatamessesaseverechallengetothecarryingcapacityofeachtransmissioattheIPfragmentationphenomenon,anadaptivepacketmethodispuk;fragmentation;adaptivepacketmethod0引言网络协议的主要作用是在网络上的设备之间传输和传递数据,为了完成任务,数据经常被封装成特殊的包———IP数据包,这样数据能够以这种特殊的形式从源地址经过多个不同的路由器或者网关传输到目的地址。为了使IP数据包能完成这样的传输过程且确保正确安全地到达到目的地,每个数据以IPv4协议为例,所有数包的头部都进行了特殊的字段定义。后接一个据包都具有相同的结构,每个数据包含有一个头部,数据字段,而一般来说头部的长度为20~60byte,数据包的总长度最多可以有65535byte,但是大多数网络不能处理最大(MTU)长度的数据包,而这个最大长度便称为最大传输单元,以以太网为例,MTU为1500byte[2],当一个IP数据包的长度只有小于或者等于网络的MTU时,才能在这个网络中传输。当需要传输的数据包字节数大于这个MTU值时就会分片。在IP协议中,分片重组机制被列为主要功能之一[3],分片收稿日期:2021-12-17发生在发送主机和传输途中的网关设备上,重组由目的主机实现[4]。IP数据包的包头包含若干标识域,用于分片的标识和控制。发送主机或传输途中的网关通过填充这些标识域进行分片,目的主机则根据这些标识域的内容对收到的分片进行恢复数据。重组,本文针对网络协议分片重组机制,介绍了超长数据包分片后在网络传输过程中会出现数据包丢失,严重时可导致全部数据堵塞的问题,并为解决此问题提出了基于网络数据包的自适应组包方法,且通过案例进行了测试分析,证明了该方法的可行性。1报文分片对数据传输的影响携带高层协议PDU的帧大小是有在很多链路层网络中,限制的。当2台主机进行通信时,它们之间的链路跨越多个通信子网络,每个通信子网络可能有大小不同的MTU,在包含所有链路的整个网络路径上最小的MTU被称为路径MTU,因62Copyright©博看网. All Rights Reserved.

计算机与网络技术论坛又量数据分片丢失依然存在,在接收端缓冲区再次堵塞时,无法接收遥测数据,如此循环下去,最终导致接收数据因大量丢包而无法使用。综上所述,源主机发送一个数据包大于网络的路径MTU值,将会进行分片处理,如果源主机和目的主机之间链路上的路由器有故障,导致一部分分片无法传输到目的主机,且因队列管理、重复消UDP协议是面向数据包,不具有差错纠正、流量控制和拥塞控制等功能,除、目的主机的接收重组分片不成功,缓冲区被填满,接收阻塞,直到当重组超时后目的主机将但仍然重组不成功的数据包丢弃,接着进行下一次接收轮回,不能接收到已丢失的分片,致使数据包所有的分片全部被目的主机丢弃,造成数据损失非常大。

网络传此MTU在会话期间会对数据包大小有非常大的影响。输数据时,其长度可达数千甚至数万字节,远远超过了MTU的长度。为了解决这个问题,数据包会在传输过程中多次被原始发送方主机和端到端路径上的任何中间路由器分片,再由目的主机进行重组,但是如果目的主机无法重组数据包,则将抛弃所有分片,对网络通信各传输节点的承载能力以及整个传输链路的可靠性和适应性提出了严峻挑战[5]。面向数据包的传输UDP是一种保留消息边界的、简单的、重复消除、流量控制和拥层协议,不提供差错纠正、队列管理、塞控制等功能,即该协议只保证把数据包发出去,不保证是否能送达目的地,同样当链路中突发大量数据包传送时不能进行拥塞控制,传输的可靠性和保护性缺失。在实际应用中发严重时可能发生现,传输超长UDP数据包时易发生丢包现象,发现丢包问题与超长UDP数数据堵塞故障,经过分析和排查,据包的分片和重组密切相关[6]。设备端主机以固定频率发送一系列超长UDP遥测数据包,经通信网传输,当链路上的路由器出口限速后,发现丢包丢包现象消现象,而增大限速值至一定程度或取消限速后,超长UDP数据包失[7]。经分析,当发送超长UDP数据包时,被分成几个紧密相连的IP分片,在很短时间内连续到达的多(路由器个分片引起了突发流量,短时间内消耗了大量令牌的限速机制采用了令牌桶算法),大大超出了路由器补充令牌的速度[8]。在这种情况下,令牌桶中的令牌很可能被耗尽,从而导致丢包。导致令牌数量不足,溢出的分片将被丢弃,该遥测数据网络传输采用UDP/IP协议,MTU为1500byte。对于大于MTU值的数据包根据IP协议的分片重组机制,(超当传输过长包)在发送端进行分片,在接收端进行分片重组,对于小于MTU程发生分片丢失时,接收端无法进行分片重组;不做分片处理。值的数据包(小包)2台设备从不同的地域同时向中心发送超长遥测数据包(约70子帧/包,传输的平均包长约为8000byte),数据流量采用双机热备份方式约11MHz。中心通过服务器接收数据,工作,2台服务器状态一致,每台服务器通过一个网卡接收2只能工作台设备发送的数据。当其中一个地域路由器故障,在10MHz状态时,信息流量超出了故障状态路由器的传输能力,造成该地域至中心的网络拥塞,遥测数据大量丢包。由于遥测数据包长大于网络的MTU值,在发送端进行了分片处理;由于其中一个地域路由器故障,造成网络传输过程中出现了大量数据分片丢失,所以接收端分片重组不成接收端缓冲区填满导致功。当重组不成功现象大量出现时,表现为服务器无法接收2个地域设备数据。当重接收堵塞,组超时后,对接收端缓冲区中重组不成功的分片数据进行丢弃,此时接收端恢复正常工作,可重新接收设备数据。由于大数据堵塞的问题,必针对网络IP分片所带来的数据丢包、提出以下2种解决方法:须研究对应解决方法。经过研究,①在数据发送端和接收端增加数据包处理环节,仿照IP优点分片机理,在软件应用层处理超长数据包的分割与重组,是适应性强,在应用层实现了数据包的分片与重组。但是由于并且超长的数据包也增加了处理环节,增加了数据处理时延,将会损失一增大了数据的积压时延;当网络发生丢包现象时,带来较大损失。个超长的数据包,可能导致丢掉关键数据,②以遥测数据子帧长度为最小长度单元,取其整数倍组包,使遥测数据传输发送的每包数据总长度不大于网络的接收端数据处理软MTU,优点是针对遥测数据格式适应性好,件可以按照一般遥测数据实时处理方式进行缓冲处理。由于处理时延与数据积压时延小;当网络发生丢包现象时,包长小,但是由于数据包只损失若干个遥测子帧数据,数据损失较小;对数据接收端设备处理性能要求较高。频较高,综合对比分析以上2种方式,确定采用第2种方法解决超长数据包问题,并形成了遥测数据自适应组包方法[9]。网络数据传输包含发送和接收两部分。发送端主要功能为:①采用数据驱动方式,从遥测原始数据缓冲区中读取数据,以遥测子帧为单位进行组包[10],填写数据状态及子帧数量,并为数据包添加包头信息,发送到指定的网络组播地址上;②采用数据驱动方式,从设备状态数据缓冲区中读取数据,并为数据包添加包头信息,发送到指定的网络组播地址上。接收端主要功能是通过指定的网络组播地址接收遥测数据,将网络数据包的原始数据放到接收缓冲区中,并对数据包头进行解析统计,数据发送—接收流程如图1所示。2网络数据自适应组包方法63Copyright©博看网. All Rights Reserved.

技术论坛

计算机与网络等组成局域网,其中路由器和交换机带宽为10M/100M自适网络结构如图2所示。3台设备同时向中心服务器发送遥应,第1阶段遥测数据包采用超长测数据。实验分2个阶段进行,第2阶段遥测数据包采用自适应包(大于MTU值)方式传输;组包方式传输。图2网络结构3.1超长包传输方式3台设备分别同时发送2个流的测试数据,遥测数据子帧(a)数据发送(5636byte)长72byte,数据码率5.5Mbps,以每包70帧长度组播方式发送到网络上,共进行3次数据回放。当通信系统采用100MHz带宽链路传输时,由于遥测数据包长大于网络的MTU值,在发送端进行了分片处理,中心服务器在接收数据表征的现象为服务器接时,首先完成对分片数据的重新组包,收3个设备的遥测数据不丢帧。当以备用10MHz带宽链路传由于遥测数据包长大于输时,根据网络数据包分片传输机理,由于设备端发送网络的MTU值,在发送端进行了分片处理;的数据量大于通信带宽,造成网络传输过程中出现了数据分片当重组不成功现丢失。由于分片丢失,接收端分片重组不成功,导致服务器接收数据出现象大量出现时,接收端缓冲区填满,断续现象。此时,服务器不能连续接收处理遥测数据。3.2自适应组包传输方式遥测数据子帧3台设备分别同时发送2个流的测试数据,长72byte,数据码率5.5Mbps,根据遥测数据帧长完成数据的自适应组包,本次实验测试数据子帧长为72byte,经与MTU数据以17个子帧长(1396byte)并采用值比对计算,进行组包,(b)数据接收图1数据发送—接收流程共进行3次数据回放。当通信系统采组播方式发送到网络上,用主用100MHz带宽链路传输时,服务器接收2套设备发送当以备用10MHz带宽链路传输时,设备的遥测数据不丢帧;3测试验证选取3台计算机设备、1台中心服务器和路由器、交换机端发送的数据量大于通信带宽,虽然造成网络传输过程中出现中心服务器端能了丢包现象,但由于没有采用分片方式传输,够正常接收数据包,丢包数较少,中心服务器工作正常。64Copyright©博看网. All Rights Reserved.

计算机与网络技术论坛可以有效解决网络数据传输过程中因分片丢失导致的网络堵可靠、高效。塞问题,确保超长UDP数据包传输畅通、表1数据统计

数据统计情况如表1所示,10M带宽超长包数据丢片统计如图1所示。4结束语本文针对网络IP分片所带来的数据丢包,严重时可导致利用遥测数据按全部数据堵塞问题,提出了自适应组包方法,避免了IP传子帧传输的特点,采用整数遥测子帧组包的方式,输时的分片。经过大量实验与验证,当单一方向通信设备故信道容量不够导致网络大量丢包现象发生时,可以将数据障、传输损失降至最低,且只影响单台装备数据,不会导致整个网络瘫痪,极大地增加了数据传输的可靠性。参考文献[1]张明.浅析IP分片对网络的影响[J].计算机与网络,2014,40(9):64-67.[2]褚建立.计算机网络技术实用教程[M].北京:清华大学出版社,2007.[3]李响,王清贤,罗军勇.IP分片重组算法的研究和改进[J].计算机工程与设计,2008(14):3555-3557.[4]赵景磊,李康,叶勇,等.超长UDP数据包预分片与重组技术研究[J].遥测遥控,2016,37(2):67-74.[5]张基温.计算机网络原理[M].北京:高等教育出版社,2009.[6]刘喜作,周晶,梁德清.基于UDP的大数据包可靠传输[J].电讯技术,2012,52(1):96-100.[7]李旺.电力通信网传输网络优化[J].中国新通信,2015,17(2):33-34.图310MHz带宽超长包数据丢片统计采用超实验结果表明,当网络带宽满足数据传输流量时,长数据包和自适应组包方式均能实现网络数据的正常传输,当网络带宽低于数据传输流量时,遥测数据自适应组包方法[8]樊昌信.通信原理:第5版[M].北京:国防工业出版社,2012.[9]张吉敏.测控信息网传输协议研究[D].西安:西安电子科技大学,2010.[10]刘蕴才.遥测遥控系统[M].北京:国防工业出版社,1999.广告欢迎订阅2022年《计算机与网络》期刊期刊坚持立足IT业,着眼实用和为刊号:CN13-1223/TN,邮发代号:18-210。《计算机与网络》面向多层次人员,新技术、新产品、新应用与市场信息相结合;决策层提供重要技术信息;以信息网络为中心,计算机与通信相结合;动漫、硬件世界、软件天地、网事、防火墙、市场透析、技术普及与提高相结合。本刊重点设置“电子商务、业界动态、具有报道及时、周期快、发行量大等鲜明特色,深受论坛”等栏目,信息含量丰富,技术性、实用性、可读性完美结合,广大读者欢迎。联系电话:************投稿:***************或******************65Copyright©博看网. All Rights Reserved.