TCP定時器介紹

來源:互聯網
上載者:User

   TCP/IP中關於定時器的介紹,TCP為每條串連建立七個定時器,分別為:

    1.串連建立定時器,在發送SYN報文段建立一條新串連時啟動。如果沒有在75S內收到響應,串連建立將終止。

    2.重傳定時器在TCP發送資料時設定。如果定時器已逾時而對端的確認還未到達,TCP將重傳資料。重傳定時器的值(即TCP等待對端確認的時間)是動態計算的,取決於TCP為該串連測量的往返時間和該報文段 已被重傳的次數。

    3.延遲ACK定時器在TCP收到必須被確認但無需馬上發出確認的資料設定。TCP等待200ms後發送確認響應。如果,在這200ms內,有資料要在該串連上發送,延遲的ACK響應就可隨著資料一起發送回對端,稱為捎帶確認。

    4.持續定時器在串連對端通告接收視窗為0,阻止TCP繼續發送資料時設定。由於串連對端發送的視窗通告不可靠(只有資料才會被確認,ACK不會被確認),允許TCP繼續發送資料的後續視窗更新有可能丟失。因此,如果TCP有資料要發送,單對端通告接收視窗為0,則持續定時器啟動,逾時後向對端發送1位元組的資料,判斷對端接收視窗是否已開啟。與重傳定時器類似,持續定時器的值也是動態計算的,取決於串連的往返時間,在5S到60S之間取值。

    5.保活定時器在應用進程選取了插口的SO_KEEPALIVE選項時生效。如果串連的連續空閑時間超過2小時,保活定時器逾時,向對端發送串連探測報文段,強迫對端響應。如果收到了期待的響應,TCP可確定對端主機正常工作,在該串連再次空閑超過2小時之前,TCP不會再進行保活測試。如果收到的是其他響應,TCP可確定對端主機已重啟。如果串連若干次保活測試都未收到響應,TCP就假定對端主機已崩潰,儘管它無法區分是主機故障(例如系統崩潰而尚未重啟),還是串連故障(例如,中間的路由器發送故障或電話線斷了)。

    6.FIN_WAIT_2定時器。當摸個串連從FIN_WAIT_1狀態變遷到FIN_WAIT_2狀態,並且態再接收任何新資料時(意味著應用進程調用了close,而非shutdown,沒有利用TCP的半關閉功能),FIN_WAIT_2定時器啟動,設為10分鐘。定時器逾時後,重新設為75S,第二次逾時後串連被關閉。加入這個定時器的目的是為了避免如果對端一直不發送FIN,某個串連會永遠滯留在FIN_WAIT_2狀態。

    7.TIME_WAIT定時器,一般也稱為2MSL定時器。MSL指最大報文段存留時間。當串連轉移到TIME_WAIT狀態,即串連主動關閉時,定時器啟動。串連進入TIME_WAIT狀態時,定時器設定為1分鐘,逾時後,TCP控制塊和InternetPCB被刪除,連接埠號碼可重新使用。

    TCP包括兩個定時器函數:一個函數為200ms調用一次(快速定時器);另一個函數每500ms調用一次(慢速定時器)。延遲ACK定時器與其它6個定時器有所不同,如果摸個串連上設定了延遲ACK定時器,那麼下一個200ms定時器逾時後,延遲的ACK必須被發送(ACK的延時時間必須在0-200ms之間)。其它的定時器每500ms遞減一次,計時器減為0時,就觸發相應的動作。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.