天天看點

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

Wireshark

Wireshark(前稱Ethereal)是一個網絡封包分析軟體。網絡封包分析軟體的功能是撷取網絡封包,并盡可能顯示出最為詳細的網絡封包資料。Wireshark使用WinPCAP作為接口,直接與網卡進行資料封包交換

官網:https://www.wireshark.org/

下載下傳并安裝完成後,打開顯示如下界面

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

IP datagram IP資料報

圖解:

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30
以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

Ethernet V2 frame 以太網V2的MAC幀格式

Preamble Start of frame delimiter MAC destination MAC source Ethertype Payload Frame check sequence (32‑bit CRC)
7 octets 1 octet 6 octets 6 octets 2 octets 46‑1500 octets 4 octets

中文對照解釋

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

注意:Wireshark抓不到以太網V2的MAC幀格式中,幀尾4位元組的FCS校驗序列,以及幀首8位元組的前同步碼+幀開始定界符

PING

Ping是工作在 TCP/IP網絡體系結構中應用層的一個服務指令, 主要是向特定的目的主機發送ICMP(Internet Control Message Protocol 網際網路封包控制協定)Echo 請求封包,測試目的站是否可達及了解其有關狀态

ping的用法

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

Wireshark抓包結果與分析

打開Wireshark,選擇需要抓取的網絡,選擇開始捕獲Start capture

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30
以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

現在區域網路中有兩台電腦,分别是本機和一台手機,在本機打開cmd

輸入

ipconfig /all

,本機IP位址和網卡的MAC位址

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

得到本機的IP位址:192.168.110.246,MAC位址:F8-63-3F-90-A1-1E

打開手機,檢視手機的IP位址和MAC位址

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

得到手機的IP位址:192.168.108.95,MAC位址:C2-F7-3D-3E-CB-67

輸入

ping 192.168.108.95 -t

,-t的意思是直到手動停止之前一直ping下去

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

在Wireshark中找到捕獲的對應ip的包

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

輕按兩下其中的一條request請求,可以看到整個Packet格式如下

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

下面我們來分析這段資料,對應之前所說的以太網V2的MAC幀格式和IP資料報

c2 f7 3d 3e cb 67 f8 63 3f 90 a1 1e 08 00 45 00
00 3c a3 7d 00 00 80 01 3a 9d c0 a8 6e f6 c0 a8
6c 5f 08 00 44 bf 00 01 08 9c 61 62 63 64 65 66
67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76
77 61 62 63 64 65 66 67 68 69
           

Wireshark抓不到以太網V2的MAC幀格式中,幀尾4位元組的FCS校驗序列,以及幀首8位元組的前同步碼+幀開始定界符

首先分析MAC幀

  • 開始的6個位元組C2-F7-3D-3E-CB-67,是目的位址,即手機
  • 随後的6個位元組F8-63-3F-90-A1-1E,是源位址,即本機
  • 随後的2個位元組08 00H,是類型,IPv4對應的值即0x0800

接着分析IP資料報的首部,固定部分共20位元組

  • 第1個位元組為45H,前4位表示版本二進制0100,即IP Version4,後4位表示首部長度0101即十進制5,而IP資料報以4個位元組為機關,4*5=20,即首部為20位元組
  • 第2個位元組為區分服務,00H
  • 第3、4個位元組為總長度,00 3cH,即60個位元組
  • 第5、6個位元組為辨別,a3 7dH
  • 第7、8個位元組的前3位為标志位,後13位為片偏移,00 00H
  • 第9個位元組表示生存時間TTL,80H,機關為跳數,即128跳,TTL的最大值為2^8-1=255
  • 第10個位元組為協定,01H表示ICMP協定,具體對照表可見wikipedia,https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers
  • 第11、12個位元組為首部校驗和,3a 9dH
  • 第13、14、15、16個位元組為源位址,c0 a8 6e f6H,對應的十進制數為192.168.110.246,即本機IP位址
  • 第17、18、19、20個位元組為目的位址,c0 a8 6c 5f,對應的十進制數位192.168.108.95,即手機的IP位址

剩下的所有位元組都是資料部分,以ICMP協定的格式呈現

通過展開Wireshark解析的每一項可以很清晰地看出Packet的組成

以PING為例,利用Wireshark深入了解網絡層、資料鍊路層的工作原理 -2020.10.30

使用Wireshark可以幫助我們更深入地了解網絡層、資料鍊路層的工作原理