通俗易懂的TCP裏面的三次握手以及四次揮手

通過三次握手來建立連接。 連接建立之後,就會傳送數據! 四次握手來釋放TCP連接

比較通俗易懂的一個講解:https://www.bilibili.com/video/BV1h7411A7tG

三次握手:【發送三個包】

 答覆:ack是上一個序列增加一的結果

至於爲什麼必須有三次握手:

不要二次握手的原因:

而在計算機中TCP是安全的,當要進行兩個進程之間的通訊時候,這時需要進行建立連接。就發起了三次握手。發送建立連接報文中有SYN和ACK,Seq,下一個返回報文信息的ACK = Seq+1。而如果有一種情況, 客戶端發出的第一個連接請求報文段並沒有丟失,而是在某個網絡結點上停滯了一會兒,導致延誤到連接關閉後的某個時間纔到達服務端。本來這是一個早已失效的報文段。但服務端收到此失效的連接請求報文段後,就誤認爲是客戶端再一次發送一個新的連接請求。於是就向客戶端發出確認報文段,同意建立連接。若不採用“三次握手”,那麼只要服務端發出確認,新的連接就建立了。由於現在客戶端並沒有發出建立連接的請求,因此客戶端像大爺一樣,你幹啥呢,我都沒跟你通信呢,就不鳥服務端。就如打電話不說話一樣,浪費了大量資源。

不要四次握手的原因:

通信不可能100%可靠, 而上面的三次握手已經做好了通信的準備工作, 再增加握手, 並不能顯著提高可靠性, 而且也沒有必要。 

 

四次揮手:【發送四個包】

 答覆:ack是上一個序列增加一的結果【小寫的】

數據傳送完成之後,通過四次揮手斷開連接!

  1. 第一次是客戶機發來的。

  2. 中間兩次,都是服務器發出的。

  3. 最後一次,還是終止於客戶機。

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