監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

網(wǎng)絡管理基本知識:TCP的四種定時器

申請免費試用、咨詢電話:400-8352-114

TCP 是提供可靠的傳輸層,它使用的方法之一就是確認從另一端收到的數(shù)據(jù)。但是數(shù)據(jù)和確認都可能會丟失。TCP 通過在發(fā)送時設置一個定時器來解決這個問題。如果當定時器溢出時還沒收到確認,它就會重傳該數(shù)據(jù)。關(guān)鍵在于超時和重傳策略,即怎樣決定超時的時間間隔和如何確定重傳的頻率。

對于每個連接,TCP 管理著四個不同的定時器:重傳定時器、堅持定時器、保活定時器 以及 2MSL 定時器。

重傳定時器

為了防止丟失數(shù)據(jù)報文段或確認報文段,當 TCP 發(fā)送報文段時,啟動了特定報文段的重傳計時器,若在計時器超時之前收到對報文段的確認,則撤銷計時器。若收到特定報文段的確認之前計時器已經(jīng)超時,則重傳該報文,并把計時器復位。這里最重要的是超時的時間計算,有關(guān)該時間的請查閱具體的算法,這里不再進行記錄。

堅持定時器

堅持定時器主要是解決零窗口大小通知可能導致的死鎖問題。剛開始接收端向發(fā)送端發(fā)送了一個零窗口報文段。在不久之后,如果接收端的緩存區(qū)有一定的空間可以接收數(shù)據(jù),此時接收端就會向發(fā)送端發(fā)送了一個非零窗口大小的報文段(即窗口更新),但是這個非零窗口大小的報文段在傳輸過程中丟失,導致發(fā)送端無法接收到該非零窗口大小的報文段。因此,發(fā)送端就會一直處于等待非零窗口大小的報文端通知,由于接收端已經(jīng)發(fā)送了非零窗口大小的報文段,而且并不知道該報文段在傳輸過程中丟失,則接收端會一直處于等待接收數(shù)據(jù)狀態(tài),如果沒有任何措施的話,這個死鎖的局面會一直延續(xù)下去。

為了解決上面這個問題,TCP 為每一個連接設有一個堅持定時器(也叫持續(xù)計數(shù)器)。當發(fā)送端收到零窗口的確認時,就啟動堅持計時器,當堅持計時器截止期到時,發(fā)送端就發(fā)送一個特殊的報文段,叫探測報文段,這個報文段只有一個字節(jié)的數(shù)據(jù)。探測報文段有序號,但序號永遠不需要確認,甚至在計算對其他部分數(shù)據(jù)的確認時這個序號也被忽略。探測報文段提醒接收端,確認已丟失,必須重傳。

堅持計時器的截止期設置為重傳時間的值,但若沒有收到來自接收端的響應,則發(fā)送另一個探測報文段,并將堅持計時器的值加倍和并復位,發(fā)送端繼續(xù)發(fā)送探測報文段,將堅持計時器的值加倍和復位,直到這個值增大到閾值為止(通常為 60 秒)。在此之后,發(fā)送端每隔 60s 就發(fā)送一個報文段,直到窗口重新打開為止。

堅持定時器的原理:當 TCP 服務器收到了客戶端的 0 滑動窗口報文時,啟動一個定時器來計時,并在定時器溢出的時向客戶端查詢窗口是否已經(jīng)增大,如果得到非零的窗口就重新開始發(fā)送數(shù)據(jù),如果得到零窗口就再開一個新的定時器準備下一次查詢。

?;疃〞r器

?;疃〞r器是為了應對 TCP 連接雙方出現(xiàn)長時間的沒有數(shù)據(jù)傳輸?shù)那闆r。如果客戶端與服務器建立了 TCP 連接之后,客戶端由于某種原因?qū)е轮鳈C故障,則服務器就不能收到來自客戶端的數(shù)據(jù),而服務器不可能一直處于等待狀態(tài),?;疃〞r器就是用來解決這個問題的。服務器每收到一次客戶端的數(shù)據(jù),就重新設置?;疃〞r器,通常為 2 小時,如果 2 小時沒有收到客戶端的數(shù)據(jù),服務端就發(fā)送一個探測報文,以后每隔75秒發(fā)送一次,如果連續(xù)發(fā)送10次探測報文段后仍沒有收到客戶端的響應,服務器就認為客戶端出現(xiàn)了故障,就可以終止這個連接。

2MSL 定時器

2MSL 定時器主要是解決以下兩種情況:

TIME_WA上網(wǎng)行為 確保有足夠的時間讓對端收到了ACK,如果被動關(guān)閉的那方?jīng)]有收到 ACK,就會觸發(fā)被動端重發(fā) FIN。因為最后一次確認應答 ACK 報文段很有可能丟失,因而使被動關(guān)閉方處于在LIST_ACK 狀態(tài)的,此時被動關(guān)閉方會重發(fā)這個 FIN+ACK 報文段,在這等待的 2MSL 時間內(nèi)主動關(guān)閉方重新收到這個被動關(guān)閉方重發(fā)的 FIN+ACK 報文段,因此,主動關(guān)閉方會重新發(fā)送確認應答信息,從而重新啟動 2MSL 計時器,直到通信雙方都進入 CLOSED 狀態(tài)。如果主動關(guān)閉方在 TIME_WA上網(wǎng)行為 狀態(tài)不等待一段時間就直接釋放連接并進入 CLOSED 狀態(tài),那么主動關(guān)閉方無法收到來自被動關(guān)閉方重發(fā)的 FIN+ACK 報文段,也就不會再發(fā)送一次確認 ACK 報文段,因此被動關(guān)閉方就無法正常進入CLOSED 狀態(tài)。

有足夠的時間讓這個連接不會跟后面的連接混在一起。防止已失效的請求連接出現(xiàn)在本連接中。在連接處于 2MSL 等待時,任何遲到的報文段將被丟棄,因為處于 2MSL等待的、由該插口(插口是IP和端口對的意思,socket)定義的連接在這段時間內(nèi)將不能被再用,這樣就可以使下一個新的連接中不會出現(xiàn)這種舊的連接之前延遲的報文段。

【推薦閱讀】

上網(wǎng)行為運維管理專區(qū)

上網(wǎng)行為運維一體化管理的內(nèi)涵如何把握?

上網(wǎng)行為運維管理的七大內(nèi)容和四個技巧

部署全移動網(wǎng)絡環(huán)境 提升企業(yè)移動管理價值

網(wǎng)管軟件專區(qū)

本文來自互聯(lián)網(wǎng),僅供參考
發(fā)布:2007-04-15 09:59    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
相關(guān)軟件
聯(lián)系方式

成都公司:成都市成華區(qū)建設南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢