2012-11-07 78 views
1

我正面臨一個奇怪的問題。我們有兩個系統通過RFC交流,但這種交流中斷,每次有以下問題:TCP SACK重疊選項

客戶端收到的TCP ACK與SLE = 2734286和SLR = 2777173 客戶端然後啓動「失蹤」包 的重傳然後收到TCP DUP ACK與SACK:2777089-2777173 2734286-2777173

這很奇怪,不是嗎? SACK參數重疊。然後客戶端再次發送丟失的包但始終收到TCP DUP ACK。 5次嘗試後客戶放棄。

它的Windows 2003到Linux 2.6.32。

是否有人知道這樣的問題?網絡連接本身沒有問題(例如,通過SSH複製數據時,SACK協議似乎工作正常)。

回答

1

根據RFC(http://tools.ietf.org/html/rfc2018),這些SACK沒有任何問題。數據接收器應該修剪第二SACK,但它不是一個公司的要求(從第4節):

SACK選項可以通過重複最近 報道SACK塊基於第一填寫在以前的SACK是不是已經包括在 SACK選項SACK塊的子集SACK塊 選項)正在建造

我懷疑數據接收器的實現(這是你的榜樣服務器)由剛剛生成的一個SACK條目,每當一個段arr ives並將其推入列表中,而不會每次都嘗試摺疊列表。