TCP IP詳解12 傳輸層 TCP的定時器

2021-08-22 19:14:10 字數 1122 閱讀 5435

2. tcp的保活定時器

對每個連線,tcp管理 4 個不同的定時器。

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

3) 保活(keepalive)定時器可檢測到乙個空閒連線的另一端何時崩潰或重啟。

4) 2msl定時器測量乙個連線處於 time_wait 狀態的時間。—tcp的四次揮手中介紹過。

堅持定時器用於防止通告視窗為0以後雙方互相等待死鎖的情況;而保活定時器則用於處理半開放連線。

堅持定時器的原理是簡單的,當 tcp 傳送方收到了接收方的 0 滑動視窗報文的時候,就啟動乙個定時器來計時,並在定時器溢位的時候向接收方查詢視窗是否已經增大,如果得到非零的視窗就重新開始傳送資料,如果得到 0 視窗就再開乙個新的定時器準備下一次查詢。通過觀察可以得知,tcp的堅持定時器使用1,2,4,8,16……64秒這樣的普通指數退避序列來作為每一次的溢位時間。

tcp 的視窗協議,會引起一種通常叫做糊塗視窗綜合症 sws(silly window syndrome)的問題,具體表現為,當接收方通告乙個小的非零視窗時,傳送方立刻傳送小資料給接收方並充滿其緩衝區,一來二去就會讓網路中充滿小 tcp 資料報,從而影響網路利用率。對於傳送方和接收端的這種糊塗行為。tcp給出了一些建議(或者是規定)。

保活定時器更加的簡單,還記得 ftp 或者 http 伺服器都有 sesstion time 機制麼?因為 tcp 是面向連線的,所以就會出現只連線不傳送資料的「半開放連線」,(如果此時客戶已經消失了,伺服器又在等待來自客戶的資料,則伺服器將永遠等待下去)伺服器當然要檢測到這種連線並且在某些情況下釋放這種連線,這就是保活定時器的作用。其時限根據伺服器的實現不同而不通。另外要提到的是,當其中一端如果崩潰並重新啟動的情況下,如果收到該端「前生」的保活探察,則要傳送乙個rst資料報文幫助另一端結束連線。

保活定時器的作用和應用層的心跳類似。所有的保活定時器在連線 2 小時(時間可以設定)空閒後超時。然後以 75s 為間隔連續傳送 10 個探測報文段。如果皆無響應,則丟棄此連線。所以一共是 2 小時+75s * 10後,關閉連線。如下圖所示:

TCP IP體系結構之傳輸層 TCP協議

首部格式 資料單位 特定注意 自動重傳請求arq 具體實現 傳送快取 接收快取 滑動視窗 確認丟失和確認遲到 超時重傳時間選擇 報文段的傳送時機 運輸連線 傳送tcp請求客戶端 擁塞處理相關概念 避免擁塞具體實現 tcp 的有限狀態機 圖釋 各個段位說明 tcp 傳送的資料單位協議是 tcp 報文段...

TCP IP詳解學習筆記 TCP(傳輸控制協議)

1.概述 tcp提供了一種可靠的面向連線的位元組流運輸層服務。tcp將使用者資料打包成報文段,它傳送後啟動乙個定時器,另一端收到的資料進行確認,對失序的資料重新排序,丟棄重複資料,tcp提供端到端的流量控制,並計算和驗證乙個強制性的端到端的檢驗和。許多流行的應用程式如 telnet,rlogin,f...

傳輸層 TCP協議

1 序號 在乙個tcp連線中傳送的位元組流中的每乙個位元組都按順序編號,本欄位表示本報文段所傳送資料的第乙個位元組的序號。2 確認號 期望收到對方下乙個報文段的第乙個資料位元組的序號。若確認號為n,則證明到序號n 1為止的所有資料都已正確收到。即採用累計確認 3 資料偏移 首部長度 tcp 報文段的...