为什么TCP在快速重传前要等待三个重复的ACK?

46

TCP为什么要在快速重传前等待三个重复的ACK?

1个回答

69

RFC 2001指出:

TCP并不知道重复的ACK是由于丢失的数据段还是仅仅是数据包顺序错了,它会等待接收到少量的重复ACK。假设如果只是数据包的顺序错了,那么在重新排序之前只会有一两个重复的ACK被接收,然后TCP会生成一个新的ACK。当接收到三个或更多连续的重复ACK时,这强烈表示有一个数据段已经丢失。此时TCP进行重传似乎缺失的数据段,而不需要等待重传计时器到期。

之所以要等到第三个重复ACK才进行重传的原因似乎是在此之前更可能只是数据包传递顺序错了,不需要进行重传。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接