keepalive自動切換原理 keepalive默認保持多久?
keepalive默認保持多久?K設置移動網絡“始終連接數據業(yè)務”什么意思?應用層設置周期性心跳keepalives,被TCP視為應用數據。毫無疑問,一旦這些生活不 如果在超時時間內沒有收到來自另一個
keepalive默認保持多久?
K
設置移動網絡“始終連接數據業(yè)務”什么意思?
應用層設置周期性心跳keepalives,被TCP視為應用數據。毫無疑問,一旦這些生活不 如果在超時時間內沒有收到來自另一個TCP的ACK,它們將繼續(xù)重新傳輸。至于最大重傳次數,取決于具體TCP協(xié)議的實現。一般至少會重傳8次,重傳間隔會越來越長,以避免網絡融合對TCP連接的短期影響。
上面最后一句有點難以理解。意味著即使當前使用的路徑斷開,路由協(xié)議也會動態(tài)選擇新的物理鏈路,因此后續(xù)的TCP重傳消息會使用新的鏈路到達目的地,從而避免TCP超時斷線的風險。
所以不是說只有TCP斷開再重新連接才會選擇更好的路徑。移動網絡的IP層將實時更新最新和最佳路徑。這是TCP消息所依賴的IP網絡平臺的特性。不管你喜不喜歡,一直都是這樣的表現!
接下來的一些內容將有助于讀者理解TCP長連接。
TCP長連接的存在可以優(yōu)化客戶端訪問服務器的訪問效率。沒有長TCP連接,客戶端每次訪問服務器都需要三次握手,增加了1.5RTT時延。
但是,如果存在長TCP連接,客戶端在建立TCP連接時可以節(jié)省1.5RTT。
但是,凡事有利有弊。長TCP連接的存在,如果沒有數據刷新,至少有一個風險:移動網絡使用NAT技術。換句話說,到NAT設備的長TCP連接作為NAT條目存在,它有一個生命周期。如果沒有數據刷新,2-20分鐘后刪除。
一旦刪除,當客戶端和服務器的數據到達NAT設備時,是否會重新創(chuàng)建NAT條目?
不要!
如何處理NAT設備?
扔過來。
為了避免超時刪除NAT條目,可以通過定期保持應用層的心跳來避免這種糟糕的情況。
但是周期性的心跳并不代表一切,例如,下面的情況就發(fā)生在:。
(1)
網絡擁塞
重新傳輸的心跳消息被一次又一次無情地丟棄。
(2)
NAT設備重啟
NAT條目消失。
(3)
服務器重啟
TCP四元組消失。
(4)
網絡環(huán)路
心跳消息永遠無法到達服務器。
(5)
網絡收斂緩慢
TCP消息已經丟失,直到TCP被重置。
TCP長連接配置了heartbeat,也沒有逃脫被重置的命運。你可以從上面找到原因。