用 Wireshark 圖解:TCP 三次握手

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

tcp00

「snow warn throughout the winter」瀏覽器

1、什麼是 Wireshark ?
簡單地說,Wireshark 是抓包工具。官網說,「Wireshark 是一個網絡包分析工具。 網絡數據包分析儀將嘗試捕獲網絡數據包並試圖儘量詳盡顯示該數據包。」服務器

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

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

tcp01

最上面是 Packet List 窗口,它列出了全部網絡包。tcp

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

最底下是 Packet Bytes Details 窗口(16 進制數據),咱們通常不會用到它。學習

 

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

 

3、實操 Wiresharkip

選擇 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) — 再次確認(SYN)

tcp09

如以上文章或連接對你有幫助的話,別忘了在文章結尾處評論哈~ 你也能夠點擊頁面右邊「分享」懸浮按鈕哦,讓更多的人閱讀這篇文章。

相關文章
相關標籤/搜索