關於TIME WAIT狀態的理解

2021-09-24 08:46:02 字數 796 閱讀 4583

tcp/ip狀態變遷圖置頂:

可見,主動關閉的一方會進入time_wait狀態。

該狀態存在的緣由:

msl

msl:maximum segment lifetime,報文網路中最大存活時間。

rfc 793 [postel 1981c] 指出msl為2分鐘。然而,實現中的常用值是30秒,1分鐘,或2分鐘。

時間為何是2msl

補充

在連線處於2msl等待時,任何遲到的報文段將被丟棄。 因為處於2msl等待的、由該插口對(socket pair,即連線五元組)定義的連線在這段時間內不能被再用,因此當要建立乙個有效的連線時,來 自該連線的乙個較早替身(incarnation)的遲到報文段作為新連線的一部分不可能不被曲解 (乙個連線由乙個插口對來定義。乙個連線的新的例項(instance)稱為該連線的替身)。

《tcp ip詳解卷一》18.6.1原文描述如下:

tcp將不給處於time_wait狀態的連線發起新的化身,既然time_wait狀態的持續時間是msl的2倍,這就足以讓某個方向上的分組最多存活msl秒即被丟棄,另乙個方向上的應答最多存活msl秒也被丟棄。通過實施這個規則,我們就能保證每成功建立乙個tcp連線時, 來自該連線先前化身的老的重複分組都已在網路中消逝了。

為什麼tcp4次揮手時等待為2msl? - 車小胖的回答 - 知乎

TIME WAIT狀態的意義

客戶端與伺服器端建立tcp ip連線後關閉socket後,伺服器端連線的埠 狀態為time wait 是不是所有執行主動關閉的socket都會進入time wait狀態呢?有沒有什麼情況使主動關閉的socket直接進入closed狀態呢?主動關閉的一方在傳送最後乙個ack 後 就會進入time wa...

TIME WAIT狀態釋疑

一 現象 登陸伺服器的時候輸入netstat natup 發現存在大量time wait狀態的連線 tcp 0 0 127.0.0.1 3306 127.0.0.1 41378 time wait tcp 0 0 127.0.0.1 3306 127.0.0.1 41379 time wait tc...

TCP IP中的TIME WAIT狀態

毫無疑問,tcp中有關網路程式設計最不容易理解的是它的time wait狀態,time wait狀態存在於主動關閉socket連線的一方。time wait狀態存在的理由 tcp ip協議就是這樣設計的,是不可避免的。主要有兩個原因 1 可靠地實現tcp全雙工連線的終止 tcp協議在關閉連線的四次握...