用 Wireshark 圖解 TCP 三次握手

摘要: 原創出處:www.bysocket.com 泥瓦匠BYSocket 希望轉載,保留摘要,謝謝!

一、什麼是 Wireshark ?
簡單地說,Wireshark 是抓包工具。官網說,“Wireshark 是一個網絡包分析工具。 網絡數據包分析儀將嘗試捕獲網絡數據包並試圖儘可能詳盡顯示該數據包。”

推薦一本書《Wireshark 網絡分析就這麼簡單》,Wireshark 工具下載地址 https://www.wireshark.org/download.html。

Wireshark 不單單能抓包,主要的 Features 是對數據包進行各種的分析。下載打開界面非常簡單直觀:

tcp01

最上面是 Packet List 窗口,它列出了所有網絡包。

在 Packet List 中選定的網絡包會詳細地顯示在中間的 Packet Details 窗口中。

最底下是 Packet Bytes Details 窗口(16 進制數據),我們一般不會用到它。

 

二、我們抓什麼包呢?如題 TCP
TCP 一臉懵逼。記得上次在 《圖解Http協議》得知,HTTP 是一個客戶端和服務器端請求和響應的標準TCP。其實建立在 TCP 之上的。那我們就抓 HTTP,這很簡單。

 

三、實操 Wireshark

選擇 Capture – Options,選擇當前網絡,點擊 Start 。如圖:

tcp02

瀏覽器打開我的博客 www.bysocket.com ,然後在 Wireshark 中的過濾器輸入博客 IP 過濾:ip.addr == 106.14.40.18

選擇第一行,如第一張圖,簡單介紹下 Packet Details 窗口參數詳情:

Frame – 物理層
Ethernet – 數據鏈路層
Internet Protocol Version – 網絡層
Transmission Control Protocol – 傳輸層

大家知道 網絡層次劃分爲 標準的OSI七層模型,還有 TCP/IP四層協議 以及 TCP/IP五層協議。如圖:

其中,Transmission Control Protocol – 傳輸層是我們最爲關心的。如圖已經展開了:

tcp04

具體我們先學習 TCP 報文段格式:

tcp05

那麼第二個紅框,由上至下,一一大家可以對應下,重點的是:
Sequence number – 序號
Acknowledgment number – 確認號
Flags – 標誌位
— Acknowledgment 確認位
— Push 急迫位
— Reset 重置位
— Syn 同步位
— Fin 終止位

a. 第一次握手標誌位
localhost Seq=0 -> 博客地址
從標誌位看出,同步位有值,在做請求(SYN):Syn 同步位爲1
tcp06

 

b. 第二次握手標誌位
博客地址 Seq=0 Ack=1 -> localhost
從標誌位看出,確認位、同步位有值,在做應答(SYN+ACK):Syn 同步位爲 1 、Acknowledgment 確認位爲 1
tcp07

c. 第三次握手標誌位
localhost Seq=1 Ack=1 -> 博客地址 (注: Seq=Seq+1)
從標誌位看出,只有確認位有值,在做再次確認(SYN):Acknowledgment 確認位爲 1
tcp08
綜上所述,一個完整的三次握手就是:請求(SYN) — 應答(SYN+ACK) — 再次確認(ACK)

tcp09

發佈了16 篇原創文章 · 獲贊 20 · 訪問量 94萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章