TCP 快速恢复算法描述如下(来自 TCP 图解 vol. 1)。我无法理解的是在第 1 步中,为什么 CWD 窗口膨胀是分段大小的三倍?
- 当收到第三个重复 ACK 时,将 ssthresh 设置为当前拥塞窗口 cwnd 的一半。重新传输丢失的段。 将 cwnd 设置为 ssthresh 加上段大小的 3 倍。
- 每次另一个重复的 ACK 到达时,将 cwnd 增加分段大小并传输一个数据包(如果 cwnd 的新值允许)。
- 当下一个确认新数据的 ACK 到达时,将 cwnd 设置为 ssthresh。这应该是来自步骤 1 的重传的 ACK,即重传后的一个往返时间。此外,此 ACK 应确认在丢失数据包和收到第一个重复 ACK 之间发送的所有中间段。这一步是避免拥塞,因为我们将速度减慢到数据包丢失时的一半。