-
TCP/IP詳解卷1 - 系列文
-
引言
在初學TCP/IP協議時,會覺得協議是一種很抽象的東西,通過wireshark抓包分析各種協議,可以讓抽象變得具體。
-
wireshark抓包
wireshar抓包的教程很多,這里就不再重復。參考下圖:
-
wireshark快速get對應filter
我們知道wireshark抓到的內容很多,要過濾我們需要的信息就需要設置對應的filter,例如:想要過濾ICMP協議相關的log,直接在Filter里面輸入協議名稱"icmp",就能過濾出ICMP的log。
這是一種最簡單的過濾條件了。實際上設置filter的語句有很多,如果想要過濾ICMP中type為3(目的地不可到達)的數據報,但又不知道filter應該怎么寫,那應該怎么辦呢?
這個時候,我們就可以直接利用wireshark提供的As Filter功能,快速get到想要設置的filter。
如下圖所示,要過濾ARP數據報中的ARP請求數據報,直接選中Opcode: request(1),右鍵 ->Copy->As Filter,就能得到對應filter。
-
IP數據報
-
IPv4報文首部
要分析IP數據報的內容,首先得知道它的數據報的數據結構。
-
wireshark過濾IP數據報
然后過濾IP數據報,從下面這個圖可以看出,IP數據報被封裝到以太網幀里面,當以太網幀的type值為0x0800時,那么以太網幀封裝的就是IP數據報了。
因此,設置eth.type == 0x800就能過濾出IP數據報。根據下圖,再對比IPv4報文首部的數據結構,就可以更加清晰地理解IP數據報了。
-
ARP
-
ARP報文格式
-
wireshark過濾ARP數據報
和IP數據報一樣,ARP數據報被封裝到以太網幀里面,當以太網幀的type值為0x0806,設置
eth.type == 0x806就能過濾ARP數據報。
ARP數據報又分為請求數據報和應答數據報。
首先,查看我本機的MAC地址,在wireshark中過濾ARP請求數據報的MAC地址等于我本機地址的一條log。如下圖,本機請求IP地址為10.120.1.91的主機的MAC的ARP請求。
通過上面的ARP數據報,我又可以得到ARP請求中Sender IP address的Filter格式,我只需要過濾
Sender IP address為10.120.1.91,最后過濾出來的結果就只有2條。
查看其中Target MAC address為我本機MAC地址,并且Opcode為2,即是10.120.1.91返回的APR應答,其中Sender MAC address,就是ARP請求得到的MAC地址。
-
ICMP
-
ICMP數據報格式
-
wireshark過濾ICMP數據報
ICMP報頭格式雖然簡單,但是對應類型很多,分析方法也是類似的,選中你想要設置為過濾條件的參數,然后copy為filter