TCP拥塞控制算法的演进

TCP拥塞控制算法的演进

TCP协议仅定义框架,也就是发送端和接收端需要遵循的“规则”。TCP协议的实现经过多年的改进,有了多个不同的版本。比较重要的有TahoeRenoNewRenoSACKVegas等,有些已经成为了影响广泛的RFC文档,有些则成为了Unix/Linux操作系统的标准选项。

以下简要介绍各个实现版本的主要区别和联系。

1 早期的TCP实现

最早的TCP使用简单的停等协议,每发送一个报文段都要等待收到确认,才能顺序发送下一个报文段,因此效率很低,网络资源不能得到充分利用。如果发生报文段丢失,必须等待重传定时器超时才能重新发送丢失的报文段,对网络拥塞没有采取有效的措施。

具体的实现,可以参考第1章的数据链路层的介绍。

2 TCP Tahoe

Tahoe算法是TCP的早期版本。它的核心思想:让cwnd以指数增长方式迅速逼进可用信道容量,然后慢慢接近均衡。Tahoe包括3个基本的拥塞控制算法:“慢启动”、“拥塞避免”和“快速重传”。同时Tahoe算法实现了基于往返时间的重传超时估计。

1TCP Tahoe在连接建立后,cwnd初始化为一个报文段,开始慢启动,如果没有丢包和拥塞发生,直到cwnd等于ssthresh,然后进入拥塞避免。

2)若重传定时器超时,cwnd重新设置为一个报文段大小,重新开始慢启动,同时ssthresh为当前cwnd的一半。

3)若发送端收到3个重复ACK,不等到重传定时器超时就执行快速重传,即立刻重传丢失的报文段。

重传超时估计是对重传定时器的超时时间取值的估计。重传定时器是判断报文段丢失的依据,发送端发送一个报文段同时启动重传定时器,如果重传定时器超时,但发送端还没有收到接收端的ACK,就判断该报文段丢失,重传丢失报文段并重新启动重传定时器。每一个TCP连接都维护一个变量,用于计算往返时间RTTTCP采用动态重传超时估计,即以往返时间RTT为基础来确定重传超时时间。其中最常用的是设置重传超时时间为往返时间RTT的两倍,即

重传超时时间= 2×RTT

另外,往返时间RTT的计算也是动态的,通常可以按下列式子计算:

RTT=a ×

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值