基于报文序号和时间戳预测UDP拥塞程度的方法研究

2022-05-11 06:03赵昶宇
科技与创新 2022年9期
关键词:接收端控制算法报文

赵昶宇

(天津津航计算技术研究所,天津 300308)

近年来,IP电话、网络视频会议、远程教育等实时流媒体被大量应用,这些应用大多采用UDP协议进行传输。当同一时刻网络上出现过多的报文传输时,就可能导致当前网络的性能急剧下降,这种现象称为网络拥塞。而UDP协议是一种无连接协议,虽然它在传输速度上有一定的优势,但也存在着缺乏拥塞控制机制和传输可靠性差的问题。网络拥塞会导致多种网络传输性能大幅度变差,例如吞吐量下降、通讯时延加大、丢包率增大等,严重时甚至会导致整个网络系统崩溃。拥塞控制就是在网络节点中采取相应的措施来避免拥塞现象的产生或者在拥塞发生时作出相应的反应。因此,为UDP协议集成一种良好、有效的拥塞控制方法既对工业网络有着重要实际意义,也有着十分重要的研究价值。

1 拥塞控制算法简介

网络拥塞产生的根本原因是用户的需求远远大于网络上能够提供的资源总量,导致网络缓存空间不足、通信链路带宽的容量不够、网络节点的处理能力下降等。当网络资源不足时,不能减少或控制网络用户的数量,通常只能依靠降低网络服务质量来维持服务。一旦发生网络拥塞,仅仅通过增加网络资源的方式也无法缓解和避免拥塞的现状。比如,增加网络缓存空间后,很多网络报文在消息队列中长时间处于排队状态,会出现发送超时的现象,引发报文超时重发,并且会影响下一级路由器,最终导致网络资源浪费严重,反而增加了拥塞的程度。因此,单纯依靠增加网络缓存空间和通信链路带宽容量来提高网络节点的处理能力是不能从根本上解决网络拥塞的,必须采用网络拥塞控制算法进行动态缓解[1]。

目前网络拥塞控制算法的设计难点主要包括如下方面:①算法的分布性。由于网络中的多个节点中均需应用拥塞控制算法,因此各个网络节点必须协调工作,并使用不完整的信息完成拥塞控制。②网络的环境复杂性。由于各种因素影响可能导致网络传输不稳定,无法保证网络报文传输的正确性,甚至经常会出现网络丢包和报文乱序到达的情况,因此必须保证算法具有良好的适应性。③算法的性能。在进行拥塞控制算法设计时需要全面权衡算法的公平性、效率、稳定性和收敛性等,因此对算法的性能提出了很高的要求。④算法的开销。当网络拥塞发生时,必须尽可能减少附加网络流量,同时提升了算法设计的复杂性。在研究网络拥塞控制算法时,需对算法的好坏进行评价。用户关心的指标是系统吞吐率、网络丢包率以及传输时延,而系统更关注资源分配的效率和资源分配的公平性。

拥塞控制算法从控制理论方面看包括开环控制算法和闭环控制算法。其中,在可以事先获取网络的流量特征和性能要求的前提下采用开环控制算法,若无法准确描述网络流量特征或系统资源没有预留时采用闭环控制算法。

从拥塞控制算法的实现位置角度出发,将拥塞控制算法分为链路算法和源算法。当需要检测是否发生网络拥塞,并需要反馈拥塞信息时,在网络设备中可以应用链路算法;当需要根据反馈的拥塞信息来调整网络发送速率时,在主机和网络边缘设备中可以应用源算法。无论是链路算法还是源算法,算法的核心是要解决如何生成拥塞反馈信息以及如何对反馈的拥塞信息进行及时响应。

目前最常见的检测UDP协议下拥塞控制算法如下。

1.1 基于丢包率的控制

这种拥塞控制的基本思想是接收端每收到N(N>0)个包或每隔t(t>0)s向接收端发送网络丢包率的评估报告,发送端根据返回的丢包率来评估网络拥塞程度,据此调整发送速率。该方法是在网络发生拥塞后采取的措施,不能作为检测拥塞的手段,并且这种定时时间间隔的大小直接影响拥塞的控制效果。接收端可通过计算成功接收到的数据包个数和丢失的数据包个数来获取系统的丢包率,参见式(1):

式(1)中:P1为接收端丢包率;N1为丢失的数据包个数;N2为在约定的时间内成功接收到的数据包个数。

基于丢包率的拥塞控制算法的应用前提是假设UDP通信的路由相对稳定,它是一种基于端对端的拥塞控制算法。这个算法的关键是如何设置计算丢包率的间隔时间Δt。若间隔时间Δt太短,则会导致网络上出现大量的拥塞反馈信息,给网络增加额外的负担;若间隔时间Δt太长,又无法及时体现网络的拥塞情况,导致网络报文发送方无法及时调整发送速率。

1.2 基于往返延时(RTT)的拥塞控制

该方法采用动态估计的方式预测网络拥塞状况。RTT由通信链路的传播时间、系统末端的处理时间以及在路由器缓存中的排队和处理时间组成。通常在同一个TCP连接的情况下,通信链路的传播时间和系统末端的处理时间是相对固定的,而路由器缓存中的排队和处理时间的长短则取决于网络路由器的拥塞程度。该方法在发送端每发送N(N>0)个数据包或者每间隔t(t>0)s发送几组探测包来获知当前网络的拥塞程度,从而计算探测数据包的RTT值[2-3]。根据本次探测数据包的RTT值动态预估下一个探测数据包的RTT值,最终根据预估的下一个探测数据包的RTT值得出下一个时间网络的拥塞情况,具体算法参见式(2):

式(2)中:P为下一个时间的网络拥塞情况;eRTT为预估的下一个时间的RTT值;nRTT为最小RTT值。如果P<Tunloaded(网络低负载状态),则表示网络欠载;如果P>Tloaded(网络轻度拥塞状态),则表示网络拥塞。基于往返时延(RTT)的拥塞控制算法虽然理论上可以做到网络拥塞的早期检测,但在实际网络中RTT是很难计算准确的,并且它还存在链路上的不对称性,不能反映单向链路上的网络状况问题。

2 基于报文序号和时间戳预测UDP拥塞程度

2.1 预测UDP数据包的单程延时时间

基于UDP协议进行网络传输时,发送端将当前报文包的序号和发送时的时戳作为报文内容发送给接收端。接收端收到发送端的报文后,需要向发送端反馈接收确认报文,接收确认报文中包含报文序号和报文时戳,其中报文序号与发送端发送的报文序号相同,报文时戳是接收端收到报文后的时戳。UDP数据包的单程延时时间等于接收端发送的接收确认报文中的时戳值与发送端发送报文中的时戳值之差[3]。

发送端收到接收端发送的接收确认报文后,首先比较报文序号是否相同,若不相同,表明该条接收确认报文不是来自当前已发送报文的反馈,不计算单程延时时间;若相同,将接收端反馈的时戳值减去发送端发送的时戳值,得到UDP数据包的单程延时时间。由于网络拥塞的状况是动态变化的,因此UDP数据包的单程延时时间也是动态变化的,其不确定性体现在接收端反馈的时戳值是变化的。利用低通滤波器预测第n+1包的单程延时时间为:

式(3)中:α(0<α<1)为修正因子;bn为当前实际测量的单程延时时间,根据α的大小可调节bn对Dn的影响;Dn为预测的第n包的单程延时时间。

在式(3)中,令D2=b1,即用实测得到的b1值作为第2包的单程预测延时时间。

2.2 定义UDP拥塞级别

根据UDP数据包的单程延时时间的波动预测拥塞程度,定义UDP数据包的接收时间间隔和发送时间间隔的差值达到一定程度时,表明网络发生拥塞。相邻2包的接收时间间隔和发送时间间隔差值越大,表明拥塞越严重。根据时间间隔差值的偏差程度定义UDP拥塞级别,并将UDP拥塞级别划分为空闲、良好和拥塞3种。

令第n包报文的发送时戳为STn,第n+1包报文的发送时戳为STn+1,第n包报文的接收时戳为RTn,第n+1包报文的接收时戳为RTn+1,根据UDP数据包的接收时间间隔和发送时间间隔差值的偏差程度定义拥塞级别。

令L为拥塞级别,其计算方法如下:

式(4)中:RTn+1-RTn为相邻2包的接收时间间隔;STn+1-STn为相邻2包的发送时间间隔。L的值越大,表明网络上数据包的延迟越大,网络拥塞程度越高。

预测UDP拥塞级别的流程如图1所示。

图1 预测UDP拥塞级别的流程图

将拥塞级别划分为以下几个等级,如表1所示。

表1 拥塞级别的等级

2.3 根据拥塞级别和拥塞判断方法调整发送速率

为保证UDP发送速率的调整更为平滑,降低速率控制中存在的抖动性,采用和式增加和和式减少的自适应参数控制方法调整发送速率,有效缓解了网络拥塞。

本文调整数据包发送速率的时机是在执行完一次“发送—接收”操作后判断拥塞级别后立即调整的,最大限度压缩了拥塞级别的判断间隔时间。为了满足UDP数据包在传输过程中对负载平滑性的要求,采用自适应参数设置的和式增加、和式减少的速率控制方法。

令UDP数据包传输速度区间范围为[Ratemin,Ratemax],其中Ratemin为UDP数据包可接受的最小传输速率,Ratemax为UDP数据包的目标速率,令Ratenow为UDP数据包的即时发送速率。

当网络处于空闲状态时,即0<L≤Wu,UDP数据包的即时发送速率Ratenow=min{Ratenow+β,Ratemax}。

此时网络处于欠载状态,为了能快速充分利用网络资源,β的取值由决定,即β的取值范围为[Ratemax×20%,Ratemax×40%]。

当网络处于拥塞状态时,即L≥Wl,UDP数据包的即时发送速率Ratenow=max{Ratenow-γ,Ratemin}。

此时网络处于拥塞状态,为了实现网络负载平滑,γ的取值由决定。

上式中β为和式加因子,γ为和式减因子,β和γ的值根据拥塞级别L的值动态确定[4]。

上述调整发送速率算法是为了当网络出现拥塞现象时,在当前的拥塞级别上减小相应的一个定量的发送速率,缓解当前的拥塞;当网络处于空闲状态时,增加一个定量的发送速率,充分利用网络资源,这样做能够实现实时流媒体应用的负载平滑。

3 结束语

针对UDP协议传输可靠性差及缺乏拥塞控制机制的问题,本文提出了一种预测UDP拥塞程度的方法。本文提出的方法能够根据单向链路的网络状况预测UDP网络拥塞,同时不会增加网络负担,导致网络丢包率增大;该方法计算简单,最大限度压缩了拥塞级别的判断间隔时间,并采用线性函数动态调整发送速率,提高了网络资源的利用率,降低了数据包的丢包率。

猜你喜欢
接收端控制算法报文
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现
基于光载波携能的制导武器无线携能通信研究
基于扰动观察法的光通信接收端优化策略
基于报文类型的限速值动态调整
手机无线充电收发设计
基于dSPACE和PLC的控制算法测试系统设计
基于DCS的过程实时控制平台的研究
卫星姿控系统半物理仿真中转台控制算法的实现