TCP的三次握手

2021-09-02 23:52:34 字數 1012 閱讀 5531

tcp在建立連線的過程中,會進行三次握手。為了說明白三次握手的過程,首先需要介紹下tcp報文的格式。

tcp報文中有syn位和ack位,syn位和ack位各佔1bit。syn位為1時,表示該報文是乙個同步報文。ack位為1時,表示該報文為確認報文。此外,tcp報文中還有序號(sequence number,簡稱seq)和確認號(acknowledge number,簡稱ack)。序號和確認號各佔32位。序號表示傳送端到接收端的順序。確認號表示期待下一次從對方收到的報文序號,所以確認號等於上次收到的報文的序號加1.

tcp建立連線時的三次握手,用到了syn位,ack位,序號,和確認號。

第一次握手,是客戶端c傳送給服務端s的報文。在該報文中,syn設定為1,序號是作業系統隨機生成的乙個32位整數,一般為0.

第二次握手,是s傳送給c的報文。該報文的目的是服務端確認收到客戶端的訊息,所以,該報文的ack位設定為1,ack確認序號設定為1,即第一次握手時的報文的序號加1.

此外,第二次握手還有乙個目的,就是s向c傳送syn報文。於是,在第二次握手的報文中,除了上文設定的內容外,syn會設定為1,seq是s作業系統隨機生成的乙個32位整數,一般為0.

第三次握手,目的是客戶端確認收到了服務端的報文。於是,ack設定為1,ack確認號設定為1,即第二次握手報文中的seq號加1,seq號設定為1。

到此,三次握手結束。

分析一下整個過程,三次握手其實是四次握手,因為第二次握手,其實可以拆分了兩次握手。按四次握手來表達時,前兩次握手,是服務端確認可以收到客戶端的訊息,後兩次握手,是客戶端確認可以收到服務端的訊息。因為報文可以復用,所以服務端向客戶端傳送ack報文告訴客戶端自己可以收到它的訊息,以及服務端向客戶端傳送syn報文,這兩個報文合併為一次報文傳送,所以,最終而言,四次握手優化為三次握手了。

tcp三次握手 TCP 三次握手總結

tcp特點概述 tcp segment structure 段結構 step2 server host receives syn,replie with syn ack segment 答覆syn ack報文段 step3 client receives synack,replies with ac...

tcp的三次握手 傳輸層 TCP 三次握手

使用tcp協議進行通訊的雙方必須先建立連線,然後才能開始傳輸資料。為了確保連線雙方可靠性,在雙方建立連線時,tcp協議採用了三次握手策略。如圖 客戶端傳送帶有syn標誌的連線請求報文段,然後進入syn send狀態,等待服務端的確認。服務端接收到客戶端的syn報文段後,需要傳送ack資訊對這個syn...

TCP 三次握手

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