重传丢失段后的确认号是多少

网络工程 tcp
2022-02-15 22:45:59

我正在阅读一本描述 TCP 快速 tetransmit 的教科书,下面是一张图片 在此处输入图像描述

如果 TCP 发送方接收到相同数据的三个重复的 ACK,则它认为这表明已经丢失了 3 次的段之后的段已丢失。

我的问题是,当主机B收到重传包(sequence=100)并准备要发送给主机A的ack包时,主机B输入的ack号是多少,ack号是120还是157?

1个回答

在图表中的事件之后,主机 B 将确认 ACK=157。

但是,此图包含几个可能令人困惑的错误。最重要的是,如果 TCP 连接没有 Selective ACK,它不仅会重传 SEQ=100 开头的 20 个字节;之后它还会重新传输所有内容,因为它不知道更好。但是,它不应该发送四个不同的段;它应该重新传输一个 20+15+6+16 字节的合并段。除非存在 SACK,否则您看到的重新传输是错误的,在这种情况下,图中的 ACK 中将存在更多相关数据。