在收到三个 ACK 数据包之前发生了重新传输
网络工程
tcp
线鲨
2022-02-13 16:01:20
1个回答
您看到的是与 Acks 数量无关的基本 TCP,因为最基本的 TCP 基于超时工作。因此,序列号为 41030 的 TCP 段丢失、从未确认、超时并重新传输。
检测三个重复的 ACK 是加速丢包检测的优化。原因是一个段丢失了,但随后的段没有并且仍然触发 ACK,但是因为接收方无法在丢失的段之外确认,所以假设这是丢失的。
在您的示例中,您确实看到了相同序列号的三个 ACK,但这不会触发重传,因为它们实际上 ACK 已经发送的所有内容。最后两个 ACK 不是由任何传入数据包触发的,而是自触发以更新接收窗口大小。您通常不会在高度活跃的 TCP 会话中看到该消息,而只会在空闲会话中看到该消息。
