用 Wireshark 圖解:TCP 三次握手


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

tcp00

“snow warn throughout the winter”

一、什么是 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) — 再次確認(SYN)

tcp09

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM