-
TCP/IP詳解卷1 - 系列文
-
引言
在初學(xué)TCP/IP協(xié)議時(shí)佛纫,會(huì)覺得協(xié)議是一種很抽象的東西闺魏,通過wireshark抓包分析各種協(xié)議,可以讓抽象變得具體。
-
wireshark抓包
wireshar抓包的教程很多锯仪,這里就不再重復(fù)。參考下圖:
-
wireshark快速get對(duì)應(yīng)filter
我們知道wireshark抓到的內(nèi)容很多牲尺,要過濾我們需要的信息就需要設(shè)置對(duì)應(yīng)的filter,例如:想要過濾ICMP協(xié)議相關(guān)的log谤碳,直接在Filter里面輸入?yún)f(xié)議名稱"icmp"溃卡,就能過濾出ICMP的log蜒简。
這是一種最簡單的過濾條件了瘸羡。實(shí)際上設(shè)置filter的語句有很多,如果想要過濾ICMP中type為3(目的地不可到達(dá))的數(shù)據(jù)報(bào)搓茬,但又不知道filter應(yīng)該怎么寫犹赖,那應(yīng)該怎么辦呢?
這個(gè)時(shí)候卷仑,我們就可以直接利用wireshark提供的As Filter功能峻村,快速get到想要設(shè)置的filter锡凝。
如下圖所示粘昨,要過濾ARP數(shù)據(jù)報(bào)中的ARP請(qǐng)求數(shù)據(jù)報(bào),直接選中Opcode: request(1)张肾,右鍵 ->Copy->As Filter,就能得到對(duì)應(yīng)filter吞瞪。
-
IP數(shù)據(jù)報(bào)
-
IPv4報(bào)文首部
要分析IP數(shù)據(jù)報(bào)的內(nèi)容,首先得知道它的數(shù)據(jù)報(bào)的數(shù)據(jù)結(jié)構(gòu)芍秆。
-
wireshark過濾IP數(shù)據(jù)報(bào)
然后過濾IP數(shù)據(jù)報(bào),從下面這個(gè)圖可以看出浪听,IP數(shù)據(jù)報(bào)被封裝到以太網(wǎng)幀里面螟碎,當(dāng)以太網(wǎng)幀的type值為0x0800時(shí)迹栓,那么以太網(wǎng)幀封裝的就是IP數(shù)據(jù)報(bào)了掉分。
因此克伊,設(shè)置eth.type == 0x800就能過濾出IP數(shù)據(jù)報(bào)。根據(jù)下圖愿吹,再對(duì)比IPv4報(bào)文首部的數(shù)據(jù)結(jié)構(gòu),就可以更加清晰地理解IP數(shù)據(jù)報(bào)了犁跪。
-
ARP
-
ARP報(bào)文格式
-
wireshark過濾ARP數(shù)據(jù)報(bào)
和IP數(shù)據(jù)報(bào)一樣,ARP數(shù)據(jù)報(bào)被封裝到以太網(wǎng)幀里面坷衍,當(dāng)以太網(wǎng)幀的type值為0x0806,設(shè)置
eth.type == 0x806就能過濾ARP數(shù)據(jù)報(bào)枫耳。
ARP數(shù)據(jù)報(bào)又分為請(qǐng)求數(shù)據(jù)報(bào)和應(yīng)答數(shù)據(jù)報(bào)。
首先迁杨,查看我本機(jī)的MAC地址钻心,在wireshark中過濾ARP請(qǐng)求數(shù)據(jù)報(bào)的MAC地址等于我本機(jī)地址的一條log铅协。如下圖,本機(jī)請(qǐng)求IP地址為10.120.1.91的主機(jī)的MAC的ARP請(qǐng)求狐史。
通過上面的ARP數(shù)據(jù)報(bào)坯钦,我又可以得到ARP請(qǐng)求中Sender IP address的Filter格式,我只需要過濾
Sender IP address為10.120.1.91侈玄,最后過濾出來的結(jié)果就只有2條。
查看其中Target MAC address為我本機(jī)MAC地址吟温,并且Opcode為2序仙,即是10.120.1.91返回的APR應(yīng)答鲁豪,其中Sender MAC address潘悼,就是ARP請(qǐng)求得到的MAC地址爬橡。
-
ICMP
-
ICMP數(shù)據(jù)報(bào)格式
-
wireshark過濾ICMP數(shù)據(jù)報(bào)
ICMP報(bào)頭格式雖然簡單,但是對(duì)應(yīng)類型很多糙申,分析方法也是類似的,選中你想要設(shè)置為過濾條件的參數(shù)柜裸,然后copy為filter