TCP/IP 三次捂手過程

1.TCP包頭結構如下

三次握手過程涉及的名詞如下:
a.序列號:表示本報文段所發送數據的第一個字節的編號。在TCP連接中所傳送的字節流的每一個字節都會按順序編號。由於序列號由32位表示,所以每2^32個字節,就會出現序列號迴繞,再次從0 開始
b.確認號:表示接收方期望收到發送方下一個報文段的第一個字節數據的編號。也就是告訴發送方:我希望你(指發送方)下次發送的數據的第一個字節數據的編號爲此確認號
c.ACK:表示是否前面確認號字段是否有效。只有當ACK=1時,前面的確認號字段纔有效。TCP規定,連接建立後,ACK必須爲1,帶ACK標誌的TCP報文段稱爲確認報文段
d.SYN:在建立連接時使用,用來同步序號。當SYN=1,ACK=0時,表示這是一個請求建立連接的報文段;當SYN=1,ACK=1時,表示對方同意建立連接。SYN=1,說明這是一個請求建立連接或同意建立連接的報文。只有在前兩次握手中SYN才置爲1,帶SYN標誌的TCP報文段稱爲同步報文段

2.建立握手過程圖解

第一次捂手,客戶端發起請求,這個時候SYN=1,其他位置0,表示要和服務端建立連接。還會隨機發送一個序列號seq=x。客戶端進入同步已發送狀態(SYN_SEND)。


第二次捂手,服務器收到客戶端的請求,看到SYN=1,知道要建立連接。客戶端回覆ACK=1確認和SYN=1,表示同意連接。並回復自己的序列號seq=y,和確認號ack x+1。服務端變成同步收到(SYN-RCVD)


第三次捂手,客戶端收到,會檢查ack是否爲x+1和ACK是否爲1,正確的話,回覆ACK=1,ack=y+1,發送服務端,服務端會檢查ack=y+1,ACK是不是爲1,正確建立連接。雙方變成已建立連接狀態(ESTABLISHED)。



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