3)若收到重复的ACK为n个(n>3),则将cwnd设置为ssthresh+n×MSS。
4)若发送窗口值还容许发送报文段,就按拥塞避免算法继续发送报文段。
5)若收到了确认新的报文段的ACK,就将cwnd缩小到ssthresh。
采用这样的控制方法使得TCP的性能有明显的改进。
3.2 TCP算法研究
3.2.1 TCP算法概述
TCP拥塞控制(Congestion Control),其核心思想是基于共享资源的管理上,根据一定的算法来控制发送端,合理利用瓶颈资源,保证网络的稳定性[12]。可以看出确保整个网络良好运行的关键是TCP拥塞控制算法。到目前为止,研究者已不断地提出了大量TCP拥塞控制算法,如Tahoe、Reno等等,所有这些算法的核心都是通过控制拥塞窗口的大小,发送端可以控制业务量,从而控制网络拥塞。在传输过程中,发送端逐渐增加窗口的大小,一直到出现数据包丢失,窗口值迅速下降,然后开始逐渐增大。这些TCP算法有效的避免了拥塞瘫痪。
TCP拥塞控制算法发展至今,有5个主要版本的TCP拥塞控制算法相继产生,分别是Tahoe、Reno、New Reno、SACK和Vegas。下面将讲述前四个版本。
3.2.2 TCP Tahoe介绍
TCP的Tahoe版是TCP的早期版本,它包含三个基本的拥塞控制算法:慢启动、拥塞避免和快速重传,其中快速重传在Tahoe版中首次提出的。使用快速重传算法时,TCP收到乱序到达的报文段时就会立即发送ACK,TCP利用3个重复的ACK来判定报文段的丢失,一旦收到3个重复的报文段,则不论定时器是否超时,都要进行重传。快速重传减少了重传等待时间,降低了超时重传次数,提高了网络的吞吐率。
3.2.3 TCP Reno介绍
TCP Reno版在Tahoe的基础上首次增加了快速恢复算法,因此快速恢复算法又称为Reno版的TCP拥塞控制算法。即在快速重传算法之后,没有进入慢启动阶段,而是进入拥塞避免阶段,此算法的产生提高了网络传输线路的利用率。
如图2所示TCP Reno控制流程。主机与服务器之间首先建立TCP连接,建立连接是通过三次握手完成的,然后启动Reno拥塞控制机制:设置拥塞窗口cwnd初始值为1,慢启动门限ssthresh为接收端窗口大小,进入慢启动阶段,调用慢启动算法,窗口迅速增长直至到达慢启动门限的值,之后进入拥塞避免阶段,调用拥塞避免算法,窗口缓慢增加直至发生拥塞。如果RTO超时,再次进入慢启动阶段;否则进入快速重传和快速恢复阶段,调用相应的算法机制,恢复之后再次进入拥塞避免阶段。
图2 TCP Reno流程
当一个窗口中多个报文段发生丢失时,Reno将多次下降发送窗口,不必要地降低了吞吐量。为此,人们提出了很多改进的丢失恢复算法,如New Reno、SACK等。其中一些为了触发重传机制采用部分应答的方式,另外一些则采用基于TCP选择性应答的机制。
3.2.4 New Reno介绍
当多个报文从一个数据窗口中丢失时并且触发快速重传和快速恢复算法时,问题就产生了。因此New Reno版的TCP出现了,它在Reno快速恢复的基础上稍加了修改,可以恢复一个窗口内多个报文丢失的情况。这样可以尽力避免Reno版在快速恢复阶段的多个重传超时,同时可以减少一个窗口内进入快速恢复阶段的次数。
具体来讲就是:Reno在收到一个新的数据的ACK时就退出了快速恢复状态了,而New Reno需要收到该窗口内所有数据包的确认后才会退出快速恢复状态(定义了一个“快速恢复过程”,它在接收到三个重复ACK时开始,并在一个超时重传发生或在收到一个覆盖recover报文的ACK到达时结束),从而进一步提高了网络的吞吐率。
- 上一篇:VB道岔监测系统上位机程序设计+模拟TJWX-2000型信号微机监测系统
- 下一篇:ARM音视频采集与回放系统的设计
-
-
-
-
-
-
-
中考体育项目与体育教学合理结合的研究
河岸冲刷和泥沙淤积的监测国内外研究现状
电站锅炉暖风器设计任务书
酸性水汽提装置总汽提塔设计+CAD图纸
当代大学生慈善意识研究+文献综述
十二层带中心支撑钢结构...
java+mysql车辆管理系统的设计+源代码
大众媒体对公共政策制定的影响
杂拟谷盗体内共生菌沃尔...
乳业同业并购式全产业链...