2010-12-02 50 views
0

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

我想保持数据本身,并保持数据包(标题+数据)?

如果我只保留数据字节而不是保留数据包,似乎数据包的重传将会很困难。

语言:C

+0

你正在编写自己的TCP实现?雄心勃勃......而且很酷! – 2010-12-02 00:30:15

回答

1

包的边界是在TCP意义:它是可能的一个数据包的数据的一半被确认(比如因碎片),然后你将不得不重新发送剩余的一半。

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