TCP的拥塞控制介绍一下?

2 阅读1分钟

TCP 拥塞控制主要包括四个阶段:

  1. 慢开始(Slow Start)

    • 初始时,TCP连接的拥塞窗口(cwnd)很小,比如1个MSS(最大报文段长度)。

    • 每收到一个 ACK,cwnd 翻倍增长,指数级扩张。

    • 快速增加网络利用率,但一旦到达慢开始阈值(ssthresh),就进入下一个阶段。

  2. 拥塞避免(Congestion Avoidance)

    • cwnd 以线性增长,比如每收到一轮 ACK,cwnd 只增加 1 MSS。

    • 比慢开始更温和,避免引发网络拥塞。

  3. 快重传(Fast Retransmit)

    • TCP在收到连续三个重复ACK时,推测有报文丢失了,不等超时,立即重传丢失的段。

    • 加快了丢包的响应速度,避免等待RTO超时。

  4. 快恢复(Fast Recovery)

    • 在快速重传之后,不是像慢开始那样重新从1开始,而是:

    • 把 ssthresh 调低到当前 cwnd 的一半;

    • 然后把 cwnd 设置为 ssthresh,并进入拥塞避免阶段。

总结关键词:

  • 慢开始(指数增长)

  • 拥塞避免(线性增长)

  • 快重传(收到3个重复ACK)

  • 快恢复(调低阈值,快速恢复传输)

“TCP拥塞控制和流量控制是不同的,流量控制是针对接收端的处理能力(靠滑动窗口),拥塞控制是针对网络整体的拥塞状态。”