0

在 TCP 中的快速重传逻辑中,TCP 在发送方收到 3 个重复的 ACK 时重传数据包。但是,如果发送方收到 6 个重复的 ACKS 怎么办?

以下程序是我的想法,

1) 发送方发送大量具有大窗口大小的数据包

2) 第一个数据包被丢弃

3) 接收方发送包含第一个数据包的 seq # 的 ACKS。其他 ACK 将具有相同的 ack 号。(例如,发送方发送 1,2,3,4,5,6,7,数据包 1 被丢弃。然后,接收方发送 ACK 1,1,1,1,1,1,1)

4) 发送方得到 3 个 dup ack 并重新传输丢弃的数据包 但是,接收方仍然发送 6 个 dup ack,因为接收方没有得到重新传输的数据包。因此,接收方将发送重复的 ACK,直到收到丢弃的数据包

5) 发送方再次获得 3 个 dup ack,并重新发送数据包。

因此,发送方会反复重传数据包。我觉得这很奇怪。上述过程(场景)有什么问题吗?或者是否有任何 TCP 逻辑可以防止上述问题?

4

0 回答 0