(23)TCP的保活定時器

2022-08-17 05:15:17 字數 620 閱讀 8151

一、簡介

對於運輸層是否應該存在保活定時器的討論一直都有,一些專家覺得這應該有應用層自行維護。

如果乙個給定的連線在2小時內沒有任何動作,那麼伺服器就向客戶傳送乙個探查報文段。客戶主機必須處於以下4個狀態之一。

(1)客戶主機依然正常執行,並從伺服器可達。客戶的tcp響應正常,而伺服器也知道對方的正常工作的。伺服器在2小時內將保活定時器復位。

(2)客戶主機已經崩潰,並且關閉或者正在重新啟動。在任何一種情況下,客戶的tcp都沒有響應。伺服器將不能收到對探查的響應,並在75秒後超時。總共傳送10個探查,間隔75秒(初始定時器為2小時)。最終返回給應用的可能是「連線超時」。

(3)客戶主機崩潰並已經重新啟動。這是伺服器將收到乙個對其保活探查的響應,但這個響應是乙個復位(rst),使得伺服器終止這個連線。

(4)客戶主機正常執行,但是從伺服器不可達。此時保活探測會引發icmp網路不可達的差錯。但對tcp而言這是乙個軟差錯,並不終止此鏈結,而是在每隔75s傳送

完成10次保活探測後,會向應用程式產生乙個不可達差錯。

保活功能主要是為伺服器應用程式提供的。伺服器應用程式希望知道客戶主機是否崩潰,從而可以代表客戶使用資源。保活功能還可試圖在伺服器端檢測半開放連線(客戶端關閉斷開連線後,伺服器並不知道的情況)。

TCP保活定時器

tcp有keepalive功能,它和http的keepalive功能目的不一樣。tcp伺服器希望知道客戶端是否崩潰 重新啟動或者中間路由不通。保活定時器就提供這種功能。在進一步介紹tcp的保活定時器前,先了解乙個概念 長連線和短連線。tcp是長連線 長連線 建立乙個連線,多個請求復用這個連線,最後再...

TCP的定時器

在tcp協議中有的時候需要定期或者按照某個演算法對某個事件進行觸發,那麼這個時候,tcp協議是使用定時器進行實現的。在tcp中,會有四種定時器 這四個定時器都有各自的具體作用。tcp是可靠的,因此,它對於發出去的資訊,沒有得到正常ack反饋的,都會啟動乙個重傳機制。這個重傳機制使用乙個重傳定時器,當...

TCP的定時器

建立連線定時器 connection establishment timer 重傳定時器 retransmission timer 延遲應答定時器 delayed ack timer 堅持定時器 persist timer 保活定時器 keepalive timer fin wait 2定時器 fi...