计算机网络——TCP的拥塞控制

本文详细介绍了TCP的拥塞控制策略,包括慢启动阶段,cwnd初始为1并翻倍增长,直到达到慢启动阈值ssthresh。当出现超时或三个冗余ACK时,TCP会调整cwnd和ssthresh,进入拥塞避免或快速恢复状态。在拥塞避免阶段,cwnd线性增长;快速恢复则通过减少cwnd并根据冗余ACK数量逐步增加,直到收到新ACK,然后转为拥塞避免状态。
摘要由CSDN通过智能技术生成

先介绍两个名词:
cwnd:拥塞窗口
ssthresh:慢启动阈值。(当cwnd到达拥塞窗口时,如果不出现超时或者冗余ACK时,将以线性增长速度增长)

TCP拥塞控制分为三个部分:

  • 慢启动
  • 拥塞避免
  • 快速恢复

慢启动

在慢启动状态cwnd的值,以1个MSS开始并且每当传输的报文首次被确认就增加1一个MSS(翻倍)。

结束慢启动的条件

  • 超时丢包

如果传输的分组在中途丢失,或者回传的ACK丢失,导致超时发生。TCP就会将cwnd重新设置为1,并将ssthresh设置为超时时cwnd的一半,当慢启动之后,cwnd到达ssthresh时,就会变为线性增长。

  • 检测到三次冗余的ACK

如果检测到三次的冗余ACK,就会进入快速重传。(快速重传后面讲)

拥塞避免

拥塞避免状态:cwnd的值大约是上次遇到拥塞的一半,每次到达一个新的ACK时,就会增加一个MSS。

当出现超时时,就会结束拥塞避免的线性增长,进入慢启动状态。

当出现三个冗余ACK时,也会结束拥塞避免的线性增长,进入快速恢复状态。

快速恢复

当接收到三个冗余ACK时,会进入到快速恢复状态。

快速恢复状态:将cwnd值减半,ssthresh值也设置为cwnd减半,每收到一次冗余ACK,cwnd加1,当收到第一个非冗余ACK时,cwnd值变为ssthresh,进入拥塞避免状态。

如果cwnd减半之后,还没有收到第一个非冗余ACK,并且超时,状态就会变为慢启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值