TCP三次握手,四次揮手 不一樣的解說

2021-10-06 05:35:27 字數 1707 閱讀 8956

三次握手

流程拆分以下六步

1.客戶端傳送請求連線

2.服務端接受請求

3.服務端傳送連線確認

4.客戶端接受連線確認

5.客戶端傳送確認建立連線

6.服務端接受建立連線

從客戶端的角度來講 傳送請求->接受連線確認-> 傳送確認建立連線

從服務端的角度來講 接受請求->傳送連線確認->接受建立連線

兩端都是三個步驟,所以叫三次握手

看了很多部落格跟資料,都沒提到這點,從我的角度來講這才是理解的關鍵,不然一直說三次握手三次握手,為什麼這張圖就代表三次握手,就因為劃了三條線嗎。

q為什麼三次握手就是可靠的?

a 客戶端來講,它有乙個完整的傳送接收資訊過程(傳送請求->接受連線確認),證明網路上資訊是可達的並且可以接受的

服務端來講,它有乙個完整的接收傳送資訊過程(接受請求->傳送連線確認),證明網路上資訊是可以接受的,並且還有第三次的接收建立連線證明自己的訊息傳送是可達的

q兩次握手行不行?

a 首先從上乙個問題來看,兩次握手伺服器傳送的訊息還沒回函,不能確認對方是否可達

其次看過三體的朋友應該知道1937號觀察員為什麼要強調不要回答!不要回答!不要回答! 因為回答意味著三體(作為服務端)通過傳送接收資訊的間隔可以推算出地球的距離。同理服務端只有第三次接收訊息,才能知道網路延遲時間,可以做超時斷開連線處理。

四次揮手

流程拆分以下八步

1.客戶端傳送結束請求

2.服務端接受請求

3.服務端傳送回函

4.客戶端接受回函

5.服務端傳送結束確認

6.客戶端接收結束確認

7.客戶端傳送最終結束資訊

8.服務端接受最終結束資訊

從客戶端的角度來講 傳送結束請求->接受回函-> 接收結束確認-> 傳送最終結束資訊

從服務端的角度來講 接受請求->傳送回函->傳送結束確認->接受最終結束資訊

兩端都是四個步驟,所以叫四次揮手

理解思路同三次握手,不同點在於服務端傳送訊息時拆成兩步改為非同步(傳送回函->傳送結束確認)。

q.為什麼服務端要兩次傳送確認訊息

a.服務端第一次傳送回函,只是確定了客戶端不會再傳送情報過來,但是並不知道是否還有重要情報在路上耽誤了,或者說有太多物資過來自己還來不及處理完成。等到情報接收完成,再傳送結束確認,告知客戶端我這邊可以結束了。

q.那最後一次握手可不可以不要

a.並不能,上文說到伺服器需要知道的是對方是否可達,伺服器傳送結束確認之後,需要接收最終結束資訊,才能徹底關閉這次連線。

q.所以最後是客戶端先關閉連線

a.並不是,客戶端傳送最終結束資訊後,會有乙個延遲才關閉連線,當服務端超過一定時間未接收到最終結束資訊時,會再次傳送結束確認。客戶端接收結束確認後,會再次去嘗試第四握手,關閉連線時間會再次順延

TCP三次握手 四次揮手

tcp 三次握手 tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程 1.客戶端向伺服器傳送乙個syn置位的tcp報文,其中包含連線的初始序列號x和乙個視窗大小 表示客戶端上用來...

TCP三次握手 四次揮手

服務端的tcp程序先建立傳輸控制塊tcb,準備接受客戶端程序的連線請求,然後服務端程序處於listen狀態,等待客戶端的連線請求,如有,則作出響應。1 客戶端的tcp程序也首先建立傳輸控制模組tcb,然後向服務端發出連線請求報文段,該報文段首部中的syn 1,ack 0,同時選擇乙個初始序號seq ...

TCP三次握手四次揮手

tcp transmission control protocol 傳輸控制協議 tcp是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立乙個連線。位碼即tcp標誌位,有6種標誌 urg urgent緊急 ack acknowledgement 確認 psh push傳送 rst...