開局一張圖
圖來源-慕課
1.三次握手
如圖
TCP協議採用三次握手的模式,建立一個連接
SYN 同步序號,用於建立連接過程
seq 報文的序列號
ack 確認序號
ACK 確認序號標誌(0-忽略)(1-有效)
SYN_SENT 客戶端請求服務端,發送了SYN後的狀態
SYN_RECV 服務端被動打開後,接收到了客戶端的SYN並且發送了ACK後的狀態
1.1.第一次握手
客戶端發送SYN數據包到服務端
SYN=1 ,Seq=0
數據包中沒有數據只有序列號0,然後客戶端進入 SYN-SENT狀態
譯爲:客戶端通知服務端,然後等待反饋
1.2.第二次握手
服務端收到信息後,返回 SYN+ACK 包
SYN=1 , ACK=1, seq=0, ack=1
然後服務端進入 SYN-RECV狀態
譯爲:服務端通知客戶端,然後等待反饋
1.3.第三次握手
客戶端收到信息後,返回ACK包
ACK=1,seq=1 ,ack=1
然後連接成功
譯爲:客戶端通知服務,然後連接成功
2.爲什麼需要三次握手
爲了初始化客戶端與服務端的Seq(序列號)
TCP需要使用這個序號進行數據的標記
這樣可以能保證連接建立後,數據包的傳遞不會亂序
《TCP協議詳解》
《TCP報文頭詳解》
白嫖不點贊嗎.........