一、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