TCP中有哪些定時器?

2021-08-20 22:37:06 字數 1241 閱讀 9005

把書讀薄(tcp/ip詳解 卷一 第二十二章 第二十三章)

每個連線。tcp管理4個不用的定時器

1. 重傳定時器,使用於當希望收到另一端的確認。

2. 堅持定時器,使視窗大小資訊保持不斷流動,即使另一端關閉了其接收視窗

3. 保活定時器,檢測到乙個空閒連線的另一端何時崩潰或重啟

4. 2msl定時器,測量乙個連線處於time_wait狀態的時間

關閉視窗的場景:接收方通告傳送方接收的資料視窗為0,這個時候傳送方不再傳送資料;

開啟視窗ack丟失的危害:當接收方通告了乙個視窗為非0的ack,此ack由於某種原因丟失,此時傳送方在永遠的等視窗開啟的通知,接收方則永遠的在等新資料的到來,這樣有可能因為等待而造成連線關閉。

解決策略:使用堅持定時器,週期性的向接收方查詢,以便發現視窗的變化

這種週期性的查詢的,從傳送方發出的報文段稱為視窗探查,視窗探查包含乙個位元組的資料,但是返回視窗為0的ack並不對這個位元組進行確認

對於伺服器來講,如果處理的速度過於緩慢,他會將通告視窗的值設定的越來越小,甚至是小於報文頭,這種情況下,通訊的效率極其低下,這種情況稱作糊塗視窗綜合症。

接收方:當視窗增加乙個報文段大小(mss)或者可以增加接收方快取空間一半時,才通告視窗大小

傳送方:當可以傳送乙個滿長度的報文、傳送至少是接收方通告視窗大小的一半的報文或者是可以傳送任何資料並且不希望接收ack(這種情況,資料都已經確認了)

nagle演算法中,當報文太小的時候就不傳送,這裡的小,可以看出傳送方傳送的報文小於報文段大小
伺服器應用程式用來探知客戶主機是否崩潰並啟動,或者崩潰關機等場景。

具體來說客戶主機必定處於以下4中狀態之一:

1. 正常執行。tcp響應正常,服務端知道客戶端工作正常,伺服器在兩小時後將保活定時器復位,如果這兩小時之間有應用程式通過這個連線通訊,保活定時器在交換資料後的未來兩小時再復位;此時的伺服器應用程式不需要感知保活定時器

2. 客戶主機崩潰,並且關閉或者正在重啟。伺服器總共傳送10個探查,每個間隔75秒,如果沒有任何響應,認為客戶主機關閉並終止連線;

3. 客戶主機崩潰但已經重啟。伺服器收到保活探查的響應,但響應回會是個復位,使得伺服器終止連線;

4. 客戶主機正常,但是服務不可達。與2類似,只能得到沒有探查響應

缺點在於:1短暫差錯可能使得乙個好的連線被釋放;2保活浪費不必要的頻寬;

TCP中有哪些定時器?

把書讀薄 tcp ip詳解 卷一 第二十二章 第二十三章 每個連線。tcp管理4個不用的定時器 重傳定時器,使用於當希望收到另一端的確認。堅持定時器,使視窗大小資訊保持不斷流動,即使另一端關閉了其接收視窗 保活定時器,檢測到乙個空閒連線的另一端何時崩潰或重啟 2msl定時器,測量乙個連線處於time...

TCP的定時器

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

TCP定時器詳解

tcp使用四種定時器 timer,也稱為 計時器 重傳計時器 retransmission timer 堅持計時器 persistent timer 保活計時器 keeplive timer 時間等待計時器 time wait timer。當傳送端收到零視窗的確認時,就啟動堅持計時器,當堅持計時器截...