什么是三次握手
- TCP是網絡傳輸層的協議,提供面向連接的可靠的字節流服務,要通信得先建立連接
- 所謂三次握手就是指,建立一個TCP連接時,需要CLient與Server發送三個包,確認連接的建立
- 這一過程由Client執行connect觸發
簡單描述下三次握手的具體過程
第一次握手:
Client將SYN置為1,seq=隨機值j,將該數據包發送給Server, 進入SYN_SENT狀態,等待Server確認
第二次握手:
Server收到數據包由標志位SYN=1知道,是請求建立新連接, 將ACK置為1,ack=j+1,作為響應Client的請求, 將SYN置為1,seq=隨機值k,發送給Client等待確認, Server進入SYN_RECV狀態 因為是建立連接,這些信息在一個數據包中
第三次握手:
Client收到響應
檢查ACK==1?,ack==j+1?,若都符合 將ACK置為1,ack=k+1,發送給Server,Client進入establish狀態 Server收到響應 檢查ACK==1?,ack==k+1?,若都符合 進入establish狀態,三次握手完成,TCP連接建立,開始通信
TCP報文圖:


