TCP定時器

TCP中一共有四種定時器:
重傳計時器:Retransmission Timer
堅持計時器:Persistent Timer
保活計時器:Keeplive Timer
時間等待計時器:Time_Wait Timer。

  1. 重傳計時器
    爲了控制丟失的報文段或丟棄的報文段,也就是對報文段確認的等待時間。當TCP發送報文段時,就創建這個特定報文段的重傳計時器,可能發生了兩種情況:若在計時器超時之前收到對報文段的確認,則撤銷計時器;若在收到對特定報文段的確認之前計時器超時,則重傳該報文,並把計時器復位;
    重傳時間=2*RTT;
    RTT的值應該動態計算。常用的公式是:RTT=previous RTT*i + (1-i)*current RTT。i的值通常取90%,即新的RTT是以前的RTT值的90%加上當前RTT值的10%.

  2. 堅持計時器
    專門爲對付零窗口通知而設立的;
    當發送端收到零窗口的確認時,就啓動堅持計時器,當堅持計時器截止期到時,發送端TCP就發送一個特殊的報文段,被稱爲探測報文段,這個報文段只有一個字節的數據;探測報文段有序號,但序號永遠不需要確認,甚至在計算對其他數據的確認時這個序號也被忽略,探測報文段提醒接收端,確認已丟棄,必須重傳。
    堅持計時器的截止期爲重傳時間的值,但若沒有收到從接收端來的響應,則發送另外一個探測報文段,並將堅持計時器的值加倍和並復位u,發送端繼續發送探測報文段,將堅持計時器的值加倍和復位,直到這個值增大到閾值爲止(通常是60s),之後,發送端每隔60s就發送一個報文段,直到窗口重新打開;

  3. 保活計時器
    每當服務器收到客戶的信息,就將keeplive timer復位,超時通常設置爲2小時,若服務器超過2小時還沒收到來自客戶的信息,就發送探測報文段,若發送了10個探測報文段(每75s發送一個)還沒收到響應,則終止連接;

  4. 時間等待計時器
    在連接終止期使用,當TCP關閉連接時,並不認爲這個連接就真正的關閉了,在時間等待期,連接還處於一種中間過渡狀態,這樣就可以使重複的fin報文段在到達終點後被丟棄,這個計時器的值通常設置爲MSL的兩倍。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章