基于历史连接参数的网络拥塞改进算法研究

2020-05-11 11:22黎国华
网络安全技术与应用 2020年5期
关键词:令牌控制算法数据流

◆黎国华

基于历史连接参数的网络拥塞改进算法研究

◆黎国华

(梧州学院继续教育学院 广西 543002)

本文分析了“慢启动”算法存在的问题,分析和提出了基于历史连接参数的网络拥塞改进算法,供相关读者参考。

网络拥塞;TCP;慢启动

TCP拥塞控制机制[1]可以有效控制Internet拥塞崩溃[2]现象的发生,但它也有一些局限性,并不适用于所有的网络。在TCP拥塞控制的关键算法中,“慢启动”就是一个典型的算法。此算法在网络拥塞、拥塞窗口控制和数据丢失方面应用效果比较好。

1 “慢启动”算法存在的问题[3]

(1)在“慢启动”阶段,由于发送方无法预知瓶颈链路带宽,致使拥塞窗口成倍增加;当ssthresh的值增加到较大时,发送窗口就会变大,使得数据包丢失二分之一;其次,TCP“慢启动”会使 TCP频繁使用“慢启动”算法通信,造成网络资源被占用以及导致时间延迟。

(2)“慢启动”拥塞控制算法在WWW数据流服务时应用中,会造成网络带宽变窄、传输延迟等问题。

2 算法实现

针对“慢启动”存在的问题,通过对初始参数的优化,利用基于修改历史连接参数的方法,改进令牌技术均匀发送初始窗口数据包的传输方式,通过设置“慢启动”阶段原始参数,提高 TCP的综合性能。该算法可以使数据包均匀发送,拥塞参数得到缓存,达到尽可能避免网络拥塞现象发生的目的。

此算法与TCP拥塞控制共享同样信息,使相似的连接的拥塞参数能够在缓存表中保存,存储的数据主要是cwnd, ssthresh, RTT等;同时能够将每个连接中的全部参数保存到对应的缓存记录中,也可以利用历史连接的参数值,当遇到类似的数据连接时,初始化新连接的参数,减少检测网络带宽的时间,较好地避免传输延迟现象的发生。

因为缓存信息设置的初始窗口比一个数据包大,在数据传输如果不进行处理,会导致大量数据迅速注入网络,造成网络拥挤。为了避免大数据流拥塞网络,将令牌控制算法加入发送方,将 RTT/ cwnd转为令牌速度,使窗口中的传输数据包能均衡地传输,直到 ACK自动计时才开始传输。

此算法通过对发送方进行优化,达到避免大数据流拥塞网络的目的,算法实现如下:

首先,通过建立一个存放连接参数的缓存表,将目标主机地址、cwnd、ssthresh和RTT等信息进行保存。

其次,根据缓存表中存储的历史记录,建立新的数据连接;如果两者信息匹配,则从缓存表中提取对应缓存信息,初始化新连接参数,保持 ssthreth、 RTT两个值不变;一个新连接是处于“慢启动”阶段还是拥塞避免阶段,主要取决于 cwnd大小变化。如果处于“慢启动”阶段,则cwnd的值将减半;如处于拥塞避免阶段,则cwnd的值变为cwnd-1。

如果发送方检测到cwnd的值减少,则将拥塞参数值暂存到缓存表中。为此,如果在缓存表中没有检测到数据连接的记录,则将连接参数暂存到缓存表中;反之,只保存最后一次连接的状态数据。因此我们可通过加权平均值的方法,将各个拥塞参数的初值计算并保存到存储表中,以便在发送网络拥堵时,充分利用最后一段时间内的连接信息来解决网络拥塞问题。

网络拥塞参数的保存时间直接反映出网络拥塞程度,为此,要充分考虑网络传输的时间。

如在保存cwnd参数时,令:q=now-timesave

cwndsave=(1-f(α,q))×cwndcurr+f(α,q)×cwndsave

根据上面的公式可以看出,当 q变无穷大时,f(α,q)接近0;如果α约等于0,表明新连接的拥塞参数受原来的拥塞参数影响比较大;反之,如果新连接的参数的值由历史连接的参数确定的话,即α=0.2,那么,当网络速度下降时,它的加权平均值约等于最后一次连接状态的参数值。

一般情况下,初始化新建连接根据缓存信息参数的窗口会比一个数据包的值大,为了使初始窗口中的大数据不运行到网络中,造成网络拥塞,我们通过优化令牌机制算法,使数据包在首个RTT内能匀速传输,使大数据流转换为匀速传输的数据流。令牌实际上就是DMA传输空间,它是由网络序列分配的。实际上,缓存表中的拥塞窗口大小确定着令牌的数量,令牌机制算法只在窗口初始时使用。采用令牌机制控制,可以通过一个令牌后发送一个数据包,实行大量传输数据包间隔发送,降低了数据突发性。

控制算法在检测到暂存的数据包失效时,可以通过改变RTT取样值来达到控制的目的。其基本思想是在拥塞发生之前就主动减少cwnd以降低负载,避免拥塞发生。初始算法设置rttmin=∞和rttmax=0;对于每个有效RTT样本(即没有经过数据重发)rtt,则rttmin={rttmin,rtt}和rttmax= max{rttmax,rtt},每过两个RTT后,若rtt<(rttmin+ rttmax)/2,则cwnd= min{awnd,cwnd}/4。通过这种控制方法,避免发生网络拥塞,保证网络运行平稳。

3 总结

本文基于历史连接参数的改进算法可以保证“慢启动”比较短时间内完成,通过利用缓存表中存储的ssthresh、rtt值,防止窗口出现大幅度波动。这种算法只涉及存储器读写、比较等方面的优化,在硬件中比较容易实现。

[1]苏晓丽,郑明春,孟强.多播拥塞控制研究进展[J].通信学报,2003,24(5):94-102.

[2]NAGLE J. Congestion Control in IP/TCP Internetworks, RFC 896[S]. 1984.

[3]邓斌,成卫青.基于改进慢启动算法的大文件快速传输[J].计算机应用研究,2019,37(3):39-40.

猜你喜欢
令牌控制算法数据流
基于模型预测控制算法的智能密度控制系统在选煤厂的应用
称金块
基于Backstepping的非线性无人船航向控制算法
汽车维修数据流基础(上)
汽车维修数据流基础(下)
基于XML的数据流转换在民航离港系统中应用
基于路由和QoS令牌桶的集中式限速网关
一种高精度均匀取样算法及其网络应用
AADL端对端数据流一致性验证方法
高精度位置跟踪自适应增益调度滑模控制算法