2010-12-02 47 views
0

在TCP中保留未確認數據緩衝區(發送方緩衝區)的最佳方法是什麼?發送方緩衝區中未確認數據的TCP表示

我想保持數據本身,並保持數據包(標題+數據)?

如果我只保留數據字節而不是保留數據包,似乎數據包的重傳將會很困難。

語言:C

+0

你正在編寫自己的TCP實現?雄心勃勃......而且很酷! – 2010-12-02 00:30:15

回答

1

包的邊界是在TCP意義:它是可能的一個數據包的數據的一半被確認(比如因碎片),然後你將不得不重新發送剩餘的一半。

所以答案是:你應該保留原始數據,而不是數據包。你應該問的真正問題是:我怎麼知道什麼數據已被確認。您需要爲窗口中的每個數據字節設置一個位掩碼,並且可以將已確認的數據標記爲1,其餘爲0.當您發現從窗口開始的連續數據塊已被確認時,該部分可以滑出。