TCP的四次揮手爲什麼需要2MSL ?

衆所周知,TCP建立連接三次握手,斷開連接四次揮手,具體流程如下:

 

MSL是什麼意思?

MSL,  the maximum segment lifetime (最長報文段壽命 。 segment可以在網絡中存活的最長時間,超過這個時間會被丟棄。這個時間限制是有界限的,TCP Segment通過IP datagrams進行傳輸,IP datagrams使用ttl屬性來定義這個時間。RFC793中規定MSL爲2分鐘,但這完全是從工程上來考慮,對於現在的網絡,MSL=2分鐘可能太長了一些。因此TCP允許不同的實現可根據具體情況使用更小的MSL值。TTL與MSL是有關係的但不是簡單的相等關係,MSL要大於TTL。​​​​​​​

 

爲什麼需要等待2MSL?

在TIME_WAIT (也被叫做2MSL等待狀態狀態下,客戶端向服務器發出ACK以後需要等待2個MSL的時間。假如ACK在傳輸中丟失,超時後服務端會重新發送FIN, 客戶端收到以後會重新發ACK。假如在2MSL時間中客戶端都沒有收到服務端重發的FIN,那麼客戶端認爲服務端已經收到了客戶端發送的ACK, 此時客戶端纔可以放心的斷開連接。

 

爲什麼等待時間是2MSL?
客戶端發送的ACK segment存活期1MSL,服務端重發FIN segment存活期1MSL,加一起2MSL。2MSL是一個臨界值,利用盡量大的等待時間來確保TCP連接斷開的可靠性。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章