APP下载

网络数据自适应组包传输方法

2022-04-04石彬黎刚果

计算机与网络 2022年4期
关键词:自适应网络

石彬 黎刚果

摘要:网络IP报文的大小受链路层最大传输单元(MTU)限制,当报文长度超过MTU时,IP数据报文会被分成若干较小的部分进行分片传输,对网络通信各传输节点的承载能力以及整个传输链路的可靠性和适应性提出了严峻挑战。针对IP分片现象,介绍了超长数据包网络传输过程中会存在的问题,提出了基于网络数据包的自适应组包方法,并通过案例进行了测试分析,证明了该方法的可行性。

关键词:网络;分片;自适应

中图分类号:TP393文献标志码:A文章编号:1008-1739(2022)04-62-4

0引言

网络协议的主要作用是在网络上的设备之间传输和传递数据,为了完成任务,数据经常被封装成特殊的包———IP数据包,这样数据能够以这种特殊的形式从源地址经过多个不同的路由器或者网关传输到目的地址。为了使IP数据包能完成这样的传输过程且确保正确安全地到达到目的地,每个数据包的头部都进行了特殊的字段定义。以IPv4协议为例,所有数据包都具有相同的结构,每个数据包含有一个头部,后接一个数据字段,而一般来说头部的长度为20~60 byte,数据包的总长度最多可以有65 535 byte,但是大多数网络不能处理最大长度的数据包,而这个最大长度便称为最大传输单元(MTU),以以太网为例,MTU为1 500 byte[2],当一个IP数据包的长度只有小于或者等于网络的MTU时,才能在这个网络中传输。

当需要传输的数据包字节数大于这个MTU值时就会分片。在IP协议中,分片重组机制被列为主要功能之一[3],分片发生在发送主机和传输途中的网关设备上,重组由目的主机实现[4]。IP数据包的包头包含若干标识域,用于分片的标识和控制。发送主机或传输途中的网关通过填充这些标识域进行分片,目的主机则根据这些标识域的内容对收到的分片进行重组,恢复数据。

本文针对网络协议分片重组机制,介绍了超长数据包分片后在网络传输过程中会出现数据包丢失,严重时可导致全部数据堵塞的问题,并为解决此问题提出了基于网络数据包的自适应组包方法,且通过案例进行了测试分析,证明了该方法的可行性。

1报文分片对数据传输的影响

在很多链路层网络中,携带高层协议PDU的帧大小是有限制的。当2台主机进行通信时,它们之间的链路跨越多个通信子网络,每个通信子网络可能有大小不同的MTU,在包含所有链路的整个网络路径上最小的MTU被称为路径MTU,因此MTU在会话期间会对数据包大小有非常大的影响。网络传输数据时,其长度可达数千甚至数万字节,远远超过了MTU的长度。为了解决这个问题,数据包会在传输过程中多次被原始发送方主机和端到端路径上的任何中间路由器分片,再由目的主机进行重组,但是如果目的主机无法重组数据包,则将抛弃所有分片,对网络通信各传输节点的承载能力以及整个传输链路的可靠性和适应性提出了严峻挑战[5]。

UDP是一种保留消息边界的、简单的、面向数据包的传输层协议,不提供差错纠正、队列管理、重复消除、流量控制和拥塞控制等功能,即该协议只保证把数据包发出去,不保证是否能送达目的地,同样当链路中突发大量数据包传送时不能进行拥塞控制,传输的可靠性和保护性缺失。在实际应用中发现,传输超长UDP数据包时易发生丢包现象,严重时可能发生数据堵塞故障,经过分析和排查,发现丢包问题与超长UDP数据包的分片和重组密切相关[6]。

设备端主机以固定频率发送一系列超长UDP遥测数据包,经通信网传输,当链路上的路由器出口限速后,发现丢包现象,而增大限速值至一定程度或取消限速后,丢包现象消失[7]。经分析,当发送超长UDP数据包时,超长UDP数据包被分成几个紧密相连的IP分片,在很短时间内连续到达的多个分片引起了突发流量,短时间内消耗了大量令牌(路由器的限速机制采用了令牌桶算法),大大超出了路由器补充令牌的速度[8]。在这种情况下,令牌桶中的令牌很可能被耗尽,导致令牌数量不足,溢出的分片将被丢弃,从而导致丢包。

该遥测数据网络传输采用UDP/IP协议,MTU为1500byte。根据IP协议的分片重组机制,对于大于MTU值的数据包(超长包)在发送端进行分片,在接收端进行分片重组,当传输过程发生分片丢失时,接收端无法进行分片重组;对于小于MTU值的数据包(小包)不做分片处理。

2台设备从不同的地域同时向中心发送超长遥测数据包(约70子帧/包,传输的平均包长约为8 000 byte),数据流量约11 MHz。中心通过服务器接收数据,采用双机热备份方式工作,2台服务器状态一致,每台服务器通过一个网卡接收2台设备发送的数据。当其中一个地域路由器故障,只能工作在10 MHz状态时,信息流量超出了故障状态路由器的传输能力,造成该地域至中心的网络拥塞,遥测数据大量丢包。

由于遥测数据包长大于网络的MTU值,在发送端进行了分片处理;由于其中一个地域路由器故障,造成网络传输过程中出现了大量数据分片丢失,所以接收端分片重组不成功。当重组不成功现象大量出现时,接收端缓冲区填满导致接收堵塞,表现为服务器无法接收2个地域设备数据。当重组超时后,對接收端缓冲区中重组不成功的分片数据进行丢弃,此时接收端恢复正常工作,可重新接收设备数据。由于大量数据分片丢失依然存在,在接收端缓冲区再次堵塞时,又无法接收遥测数据,如此循环下去,最终导致接收数据因大量丢包而无法使用。

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

2网络数据自适应组包方法

针对网络IP分片所带来的数据丢包、数据堵塞的问题,必须研究对应解决方法。经过研究,提出以下2种解决方法:

①在数据发送端和接收端增加数据包处理环节,仿照IP分片机理,在软件应用层处理超长数据包的分割与重组,优点是适应性强,在应用层实现了数据包的分片与重组。但是由于增加了处理环节,增加了数据处理时延,并且超长的数据包也增大了数据的积压时延;当网络发生丢包现象时,将会损失一个超长的数据包,可能导致丢掉关键数据,带来较大损失。

②以遥测数据子帧长度为最小长度单元,取其整数倍组包,使遥测数据传输发送的每包数据总长度不大于网络的MTU,优点是针对遥测数据格式适应性好,接收端数据处理软件可以按照一般遥测数据实时处理方式进行缓冲处理。由于包长小,处理时延与数据积压时延小;当网络发生丢包现象时,只损失若干个遥测子帧数据,数据损失较小;但是由于数据包频较高,对数据接收端设备处理性能要求较高。

综合对比分析以上2种方式,确定采用第2种方法解决超长数据包问题,并形成了遥测数据自适应组包方法[9]。

网络数据传输包含发送和接收两部分。发送端主要功能为:①采用数据驱动方式,从遥测原始数据缓冲区中读取数据,以遥测子帧为单位进行组包[10],填写数据状态及子帧数量,并为数据包添加包头信息,发送到指定的网络组播地址上;②采用数据驱动方式,从设备状态数据缓冲区中读取数据,并为数据包添加包头信息,发送到指定的网络组播地址上。接收端主要功能是通过指定的网络组播地址接收遥测数据,将网络数据包的原始数据放到接收缓冲区中,并对数据包头进行解析统计,数据发送—接收流程如图1所示。

3测试验证

选取3台计算机设备、1台中心服务器和路由器、交换机等组成局域网,其中路由器和交换机带宽为10 M/100 M自适应,网络结构如图2所示。3台设备同时向中心服务器发送遥测数据。实验分2个阶段进行,第1阶段遥测数据包采用超长包(大于MTU值)方式传输;第2阶段遥测数据包采用自适应组包方式传输。

3.1超长包传输方式

3台设备分别同时发送2个流的测试数据,遥测数据子帧长72 byte,数据码率5.5 Mbps,以每包70帧长度(5 636 byte)组播方式发送到网络上,共进行3次数据回放。当通信系统采用100 MHz带宽链路传输时,由于遥测数据包长大于网络的MTU值,在发送端进行了分片处理,中心服务器在接收数据时,首先完成对分片数据的重新组包,表征的现象为服务器接收3个设备的遥测数据不丢帧。当以备用10 MHz带宽链路传输时,根据网络数据包分片传输机理,由于遥测数据包长大于网络的MTU值,在发送端进行了分片处理;由于设备端发送的数据量大于通信带宽,造成网络传输过程中出现了数据分片丢失。由于分片丢失,接收端分片重组不成功,当重组不成功现象大量出现时,接收端缓冲区填满,导致服务器接收数据出现断续现象。此时,服务器不能连续接收处理遥测数据。

3.2自适应组包传输方式

3台设备分别同时发送2个流的测试数据,遥测数据子帧长72 byte,数据码率5.5 Mbps,根据遥测数据帧长完成数据的自适应组包,本次实验测试数据子帧长为72 byte,经与MTU值比对计算,数据以17个子帧长(1 396 byte)进行组包,并采用组播方式发送到网络上,共进行3次数据回放。当通信系统采用主用100 MHz带宽链路传输时,服务器接收2套设备发送的遥测数据不丢帧;当以备用10 MHz带宽链路传输时,设备端发送的数据量大于通信带宽,虽然造成网络传输过程中出现了丢包现象,但由于没有采用分片方式传输,中心服务器端能够正常接收数据包,丢包数较少,中心服务器工作正常。

数据统计情况如表1所示,10 M带宽超长包数据丢片统计如图1所示。

实验结果表明,当网络带宽满足数据传输流量时,采用超长数据包和自适应组包方式均能实现网络数据的正常传输,当网络带宽低于数据传输流量时,遥测数据自适应组包方法可以有效解决网络数据传输过程中因分片丢失导致的网络堵塞问题,确保超长UDP数据包传输畅通、可靠、高效。

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.

[8]樊昌信.通信原理:第5版[M].北京:国防工业出版社,2012.

[9]张吉敏.测控信息网传输协议研究[D].西安:西安电子科技大学,2010.

猜你喜欢

自适应网络
浅谈网络教育领域的自适应推送系统
以数据为中心的分布式系统自适应集成方法
自适应的智能搬运路径规划算法
Ka频段卫星通信自适应抗雨衰控制系统设计
电子节气门非线性控制策略
多天线波束成形的MIMO-OFDM跨层自适应资源分配
计算机网络管理技术探析
刍议计算机网络信息化管理
油气集输系统信息化发展形势展望
基于网络的信息资源组织与评价现状及发展趋势研究