TIME_WAIT狀態原理

來源:互聯網
上載者:User

標籤:blog   http   java   os   io   資料   2014   問題   

TIME_WAIT狀態存在的理由

----------------------------

TCP/IP協議就是這樣設計的,是不可避免的。主要有兩個原因:

1)可靠地實現TCP全雙工系統串連的終止

TCP協議在關閉串連的四次握手過程中,最終的ACK是由主動關閉串連的一端(後面統稱A端)發出的,如果這個ACK丟失,對方(後面統稱B端)將重發出最終的FIN,因此A端必須維護狀態資訊(TIME_WAIT)允許它重發最終的ACK。如果A端不維持TIME_WAIT狀態,而是處於CLOSED 狀態,那麼A端將響應RST分節,B端收到後將此分節解釋成一個錯誤(在java中會拋出connection reset的SocketException)。

因而,要實現TCP全雙工系統串連的正常終止,必須處理終止過程中四個分節任何一個分節的丟失情況,主動關閉串連的A端必須維持TIME_WAIT狀態 。

 

2)允許老的重複分節在網路中消逝 

TCP分節可能由於路由器異常而“迷途”,在迷途期間,TCP發送端可能因確認逾時而重發這個分節,迷途的分節在路由器修複後也會被送到最終目的地,這個遲到的迷途分節到達時可能會引起問題。在關閉“前一個串連”之後,馬上又重建立立起一個相同的IP和連接埠之間的“新串連”,“前一個串連”的迷途重複分組在“前一個串連”終止後到達,而被“新串連”收到了。為了避免這個情況,TCP協議不允許處於TIME_WAIT狀態的串連啟動一個新的可用串連,因為TIME_WAIT狀態持續2MSL,就可以保證當成功建立一個新TCP串連的時候,來自舊串連重複分組已經在網路中消逝。

MSL時間

----------------------------

MSL就是maximum segment lifetime(最大分節生命期),這是一個IP資料包能在互連網上生存的最長時間,超過這個時間IP資料包將在網路中消失

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.