TCP拥塞控制机制
-
慢开始
-
拥塞避免
-
快速重传
-
快速恢复
-
慢开始慢开始,会设置一个cnwd(拥塞窗口的值),还会设置一个慢开始门限(ssthresh)。判断cnwd和ssthresh的关系,执行不同的算法。
cnwd < ssthresh,执行慢开始算法,每次数据发送成功后将cnwd的值乘2
cnwd == ssthresh,既可以执行慢开始算法,也可以执行拥塞避免算法
cnwd > ssthresh,执行拥塞避免算法,每次数据发送成功后将cnwd的值加1
-
拥塞避免无论是在慢开始阶段还是拥塞避免阶段,只要发送方判断网络拥塞了,就会将门限值(ssthresh)变成发送窗口值的一半,把cnwd(拥塞窗口)的值变成1,重新执行慢开始算法。
-
快速重传当接收方接收到失序的报文后就立刻向发送方发送重复确认,当发送方接收到三次重复确认就会重传对方未接收到的报文,而不用等待定时器结束后才重传。
-
快速恢复当发送方接收到三次重复确认后,会将门限值(ssthres)设置成发送窗口值的一半,将cnwd设置成ssthres的大小,然后执行拥塞避免算法。
参考资料
[1]「2021」高频前端面试题汇总之计算机网络篇
[2]计算机网络第35讲-TCP的拥塞控制(计算机网络简明教程及仿真实验)