tcp 抓包出現spurious retransmission


一、tcp虛假重傳

指實際上並沒有超時,但看起來超時了,導致虛假超時重傳的原因有很多種:

(1)對於部分移動網絡,當網絡發生切換時會導致網絡延時突增

(2)當網絡的可用帶寬突然變小時,網絡rtt會出現突增的情況,這會導致虛假超時重傳

(3)網絡丟包(原始和重傳的包都有可能丟包)會導致虛假重傳超時。

二、tcp虛假重傳分析(摘自網絡)

當Client端收到Server的SYN+ACK應答后,其狀態變為ESTABLISHED,並發送ACK包給Server;
如果此時ACK在網絡中丟失,那么Server端該TCP連接的狀態為SYN_RECV,並且依次等待3秒、6秒、12秒后重新發送SYN+ACK包,以便Client重新發送ACK包,以便Client重新發送ACK包。
Server重發SYN+ACK包的次數,可以通過設置/proc/sys/net/ipv4/tcp_synack_retries修改,默認值為5。
如果重發指定次數后,仍然未收到ACK應答,那么一段時間后,Server自動關閉這個連接。
但是Client認為這個連接已經建立,如果Client端向Server寫數據,Server端將以RST包響應,方能感知到Server的錯誤。

三、使用ddns功能時抓取數據包

該問題可以參考網絡鏈接分析:http://bbs.chinaunix.net/thread-4155778-1-1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM