
1. 慢启动(Slow Start)
- 初始
cwnd=1
(拥塞窗口大小)。 - 每收到一个 ACK,
cwnd
翻倍增长(指数级增长)。 - 图中前 0~3 轮次,
cwnd
依次从 1 → 2 → 4 → 8。 - 当
cwnd
达到 慢启动门限ssthresh=8
时,进入下一个阶段。
2. 拥塞避免(Congestion Avoidance)
- 增长速度放缓:每收到一轮 ACK,
cwnd
只加 1(线性增长)。 - 图中 4~7 轮次,
cwnd
从 8 → 9 → 10 → 11 → 12。
3. 快重传(Fast Retransmit)
- 当收到 3 个重复的 ACK 时,认为发生了丢包。
- 触发快速重传机制:
- 将
ssthresh = cwnd/2
(原来是 12,变为 6)。 - 将
cwnd
收缩为ssthresh + 3 = 9
(表示立刻进入快恢复,而不是退回到 1)。
- 将
- 图中第 7 轮,
cwnd=12
发生丢包,收到 3 个重复 ACK,进入快重传。
4. 快恢复(Fast Recovery)
- 进入快恢复状态时,
cwnd = ssthresh + 3
。 - 在收到重复 ACK 时,
cwnd
增加 1。 - 图中第 8~10 轮次,
cwnd
从 9 → 10 → 11。 - 当收到新的数据 ACK 时,说明丢包数据已经恢复传输,此时:
cwnd = ssthresh = 6
- 退出快恢复,进入 拥塞避免阶段。
5. 拥塞避免(再次进入)
- 图中第 12~15 轮,
cwnd
从 6 → 7 → 8 → 9,线性增长。
✅ 总结一下几个阶段的特点:
- 慢启动:指数增长(快,但风险高)。
- 拥塞避免:线性增长(慢,但稳)。
- 快重传:检测到丢包时,不等超时,立刻重传。
- 快恢复:不回退到 1,而是
cwnd=ssthresh
,快速恢复到稳定增长。