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

先介绍两个名词:
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,并且超时,状态就会变为慢启动。

你可能感兴趣的:(笔记,计算机网络,网络,计算机网络)