0

在 TCP 中保留未确认数据缓冲区(发送方缓冲区)的最佳方法是什么?

我正在考虑保留数据本身和保留数据包(标头+数据)?

如果我只保留数据字节而不是保留数据包,似乎很难重新传输数据包。

语言:C

4

1 回答 1

1

数据包边界在 TCP 中是没有意义的:有可能一个数据包的一半数据被确认(比如由于碎片),然后您必须重新传输剩下的一半。

所以答案是:你应该保留原始数据,而不是数据包。您应该问的真正问题是:我怎么知道哪些数据已被确认。您需要为窗口中的每个数据字节设置一个位掩码,并且可以将已确认数据标记为 1,其余数据标记为 0。每当您发现窗口开头的连续数据块已被确认时,该部分可以滑出。

于 2010-12-02T00:38:18.593 回答