昨天我們聊了 TCP 的三向交握,今天就實際來看看,一個封包裡面到底塞了什麼東西。
在 Wireshark 裡點開一個封包,你會看到它被拆成好幾層,像是洋蔥一樣,每一層都有它的用途。
以下圖舉例來說:
Frame (最外層)
Frame 788: 66 bytes on wire (528 bits), 66 bytes captured (528 bits)
表示這是一個 66 bytes 大小的封包。
Frame 788 是 Wireshark 在此次擷取中的第 788 個封包。
Ethernet II (資料鏈結層)
Ethernet II, Src: MicroStarINT_bd:2a:a1 (d8:43:ae:bd:2a:a1), Dst: TPLink_4f:43:5c (78:8c:b5:4f:43:5c)
Src (來源 MAC):d8:43:ae:bd:2a:a1 → 這是我的電腦網卡 (MicroStar/MSI 的網卡)。
Dst (目的 MAC):78:8c:b5:4f:43:5c → 這是路由器 (TP-Link)。
所以這個封包是 我的電腦 → 路由器。
Internet Protocol (網路層)
Internet Protocol Version 4, Src: 192.168.0.101, Dst: 139.175.236.72
來源 IP:192.168.0.101 → 我的電腦在內網的 IP。
目的 IP:139.175.236.72 → 這是一個外部伺服器(我正在存取的外部伺服器)。
Transmission Control Protocol (傳輸層 - TCP)
Transmission Control Protocol, Src Port: 60964, Dst Port: 443, Seq: 0, Len: 0
Src Port (來源埠號):60964 → 我的電腦隨機開的連線埠。
Dst Port (目的埠號):443 → HTTPS (加密的 HTTP)。
Seq: 0, Len: 0 → 表示這個封包是一個 TCP 握手封包(例如 SYN)。
總結
這個封包應該是我的電腦嘗試跟一個外部 HTTPS 伺服器建立連線:
來源:我的電腦 (192.168.0.101,MAC: d8:43:ae:bd:2a:a1)。
目的:外部伺服器 (139.175.236.72,Port 443)。
內容:TCP 封包,是握手階段,還沒有真正的資料傳輸。
透過這樣一層層展開,你就能清楚知道:
誰傳的、傳去哪裡、透過哪個協定、裡面包了什麼。
下期我會帶大家實際示範HTTPS在可授權環境下如何解密,並示範如何安全地在 Wireshark 中還原對話內容。