TCP 拥塞控制策略及改进算法研究
2020-08-05黎国华
黎国华
(梧州学院继续教育学院,梧州 543002)
1 TCP 拥塞控制主要参数
TCP 拥塞控制的方法很多,其中可以通过改进一些参数来解决,改进的主要参数有:拥塞窗口、通告窗口、发送窗口、慢启动阈值、时间回路响应、计数器超时重新传输、阈值快速重传[1]。
2 TCP 拥塞控制算法
TCP 传输方在遇到拥塞时,通过改变其传输速率而所采用的计算方法称为TCP 拥塞控制计算算法[2]。其主要有四个算法:快速重新传输、避免拥塞、慢启动、快速数据恢复[3]。
在实际的网络运行过程中,如果发现容易丢失的分组数据后,TCP 将会减少为一个发送窗口,重复检查网络带宽,使网络产生严重拥堵。为此,通过运行改进了的避免拥塞算法,提高网络运行综合性能。
以下是TCP 拥塞控制的算法:
初始化:
拥塞控制窗口在4个阶段不同时间节点的变化情况如图1、图2。
图1
图2
3 TCP 拥塞控制算法存在的问题
TCP 拥塞控制方法存在的主要问题如下:
(1)ACK 连接现象:由于ACK 数据包的发送传输速度被TCP 数据端占用,导致传输端需根据传输的ACK 触发新的传输数据的传输。为此,发送方的速度也受到ACK 的传输行为的影响。
(2)慢启动计算方法中也存在不少问题。如由于发送端占用瓶颈链路带宽,导致每个回路响应时间内增加一倍传输窗口;传输端窗口变大,会使数据包会丢等。
4 TCP 拥塞控制算法的改进
(1)超时重传的改进TCP 拥塞控制计算很多算法由于无法准确判断网络拥塞情况,且会因路由器输出队列较长产生时间延迟;另外,由于无法准确估计RTO 和RTT的函数值,采用改进重传定时器的算法效果也不好。最简洁的方法是将新旧RTT 采样值加权取和,具体方法如下:
其中β 为加权因子,满足0≤β <1。计算数据包发送到ACK 返回发送端的时间。但由于TCP 通过累计乘积ACK的值来确然数据接收,很难准确估计RTT的值。
(2)快速重传的改进
随着传输端拥塞窗口不断减小,但实际传输过程中并没有造成分组数据包丢失的情况;如果发生TCP 流窗口减半的情况,表明整个数据流的传输的速度较慢。
如果一两个同样的ACK 被执行后,则传输端就会重新发送一个新的数据分组包,这样就可能造成分组数据包丢失。这样,便能对错乱的数据传输状况具有良好的修复作用。在实际应用中,可以通过减小窗口的TCP连接时间来恢复窗口丢失的数据。
虽然各种改进的TCP 的拥塞控制算法在实际应用中取得了一定的效果,但也存在着一些问题,如同时需进行改进的SACK 类的收发端问题、TCP New-Reno 出现的传输分组数据包的丢失情况等。这些存在的问题和不足,将是今后我们需重点研究改进的地方。