Wireshark 圖解三次握手

某一天有個叫vasks的朋友留言讓我講講Wireshark抓包tcp三次握手, 今天就安排出來。當然後臺也有很多網友留言講講其它的知識, 感謝支持, 都在陸續安排。

什麼是三次握手

客戶端和服務器在發送數據之前會進行三次交互建立連接, 然後再發送數據。

三次交互過程

爲什麼是三次握手

TCP 是一種可靠的全雙工傳輸方式, 三次握手保證了客戶端和服務端的序列號都能保證確認。

Wireshark 抓包分析三次握手

1. 打開 Wireshark

選擇你的上網網卡, 我選的是WI-FI: en0

2. 過濾請求

ip.addr == 106.15.55.64 && tcp 表示根據源 ip 目標 ip 和 tcp 協議進行過濾。106.15.55.64就是服務器的地址。

4. 瀏覽器訪問 http://tshici.com

紅框就是三次握手的過程

本來想用https://rumenz.com做演示, 但是因爲使用了https協議, 抓包就比較複雜。爲了說明問題就使用了http://tshici.com進行了演示。

紅框 No 212

客戶端主動發起建立連接的請求。Syn=1

相對序列號Seq=0

實際序列號Seq=348969744

紅框 No 219

藍色框的序號是服務器給的序列號 (相對序列號Seq=0, 實際序列號Seq=502372503), 目的是讓客戶端進行確認。

紅框是服務器確認前面客戶端的請求序列。

相對回覆值Ack=1

實際回覆值Ack=348969745

就是上一步的實際 Seq+1

紅框 No 220

image-20220718102606889

客戶端回覆服務器的響應, 並確認了上一步的序列號

相對回覆值Ack=1

實際回覆值Ack=502372504

就是上一步的實際 Seq+1(上一步的實際序列號是Seq=502372503)

到此客戶端已經和服務器建立的鏈接, 下面就可以傳輸網頁數據了。

補充

上面我提到了 SYN,ACK。在 TCP 協議裏面有控制位結構, 一共有 6 個標誌位如下:

入門小站 全棧入門知識

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/9NWND3XfuMpeggj9vRqXGw