在TCP中的快速重传逻辑中,TCP在发送方获得3个重复的ACK时重新发送数据包。但是,如果发件人得到6个重复的ACKS怎么办?
我认为以下程序,
1)发件人发送大量窗口大的数据包
2)第一个数据包被丢弃
3)接收方发送包含第一个数据包的seq#的ACKS。其他ACKS将具有相同的确认号码。 (例如,发送方发送1,2,3,4,5,6,7,丢弃数据包1.然后,接收方发送ACK 1,1,1,1,1,1,1)
4)发送方获得3个重复的acks并重新发送丢弃的数据包但是,接收方仍然发送6个重复的ack,因为接收方没有重新发送的数据包。因此,接收方将发送重复的ACK,直到它获得丢弃的数据包
5)发送者再次获得3个重复的acks,然后重新发送该数据包。
因此,发件人将重复重传该数据包。我觉得这很奇怪。上述程序(方案)有问题吗? 或者是否有任何TCP逻辑可以防止上述问题?