TIME WAIT是什麼?http連線

2022-03-18 17:48:36 字數 1008 閱讀 3451

http連線分為:建立連線,即tcp三次握手

傳送請求資訊

傳送響應資訊

關閉連線(tcp四次握手);下面講此過程:

在tcp斷開的過程中會有四個狀態變化過程,如下圖所示:在連線撤銷過程中,有如下過程:                                          

1.host1上的應用程式關閉己方的連線導致tcp傳送乙個fin訊息給host2。

2.host2傳送乙個確認訊息給host1,並且host2把fin作為eof遞交給host2上的應用程式。

3.一段時間過後,host2上的應用程式關閉它那邊的連線,引發乙個fin訊息給host1。

4.host1給host2傳送乙個確認訊息,然後host2關閉連線並釋放資源,然而,host1卻沒有關閉連線,而是進入了time_wait狀態,並為兩個最大段生存時間(2msl)保留在此狀態.

為什麼需要time_wait?

1.因為在第四步的時候,host1傳送的ack可能丟失並導致host2重新傳送fin訊息,time_wait維護連線狀態.

如果執行主動關閉的一方host1 不進入到time_wait狀態就關閉連線那會發生什麼呢?當重傳的fin訊息到達時,因為tcp已經不再有連線的資訊了,所以就用rst(重新啟動)訊息應答,導致host2進入錯誤的狀態而不是有序終止狀態,如果傳送最後ack訊息的一方處於time_wait狀態並仍然記錄著連線的資訊,它就可以正確的響應對等方host2的fin訊息了.

2.time_wait為連線中」離群的段」提供從網路中消失的時間.

考慮一下,如果延遲或者重傳段在連線關閉後到達時會發生什麼呢?通常情況下,因為tcp僅僅丟棄該資料並響應rst訊息,所以這不會造成任何問題。當rst訊息到達發出延時段的主機時,因為該主機也沒有記錄連線的任何資訊,所以它也丟棄該段。然而,如果兩個相同主機之間又建立了乙個具有相同埠號的新連線,那麼離群的段就可能被看成是新連線的,如果離群的段中資料的任何序列號恰恰在新連線的當前接收視窗中,資料就會被重新接收,其結果就是破壞新連線。

TIME WAIT是什麼?http連線

http連線分為 建立連線,即tcp三次握手 傳送請求資訊 傳送響應資訊 關閉連線 tcp四次握手 下面講此過程 在tcp斷開的過程中會有四個狀態變化過程,如下圖所示 在連線撤銷過程中,有如下過程 1.host1上的應用程式關閉己方的連線導致tcp傳送乙個fin訊息給host2。2.host2傳送乙...

HTTP是什麼 HTTP不是什麼

http hyper text transfer protocol 超文字傳輸協議 可以拆分為兩個部分理解 http 是乙個 雙向協議,也就是說有兩個基本的參與者 a 和 b,資料可以在 a 和 b 之間雙向流動 雖然資料是在 a 和 b 之間傳輸,但是並沒有限制 a 和 b 兩個角色,允許中間有中...

HTTP(一) HTTP是什麼

http全稱是hypertext transfer protocol,即超文字傳輸協議。所謂 文字 text 就表示 http 傳輸的不是 tcp udp 這些底層協議裡被切分的雜亂無章的二進位製包 datagram 而是完整的 有意義的資料,可以被瀏覽器 伺服器這 樣的上層應用程式處理。計算機和網...