實(shí)驗(yàn)名稱:利用Wireshark軟件進(jìn)行ICMP抓包實(shí)驗(yàn)
實(shí)驗(yàn)?zāi)康模?.掌握Wireshark的基本使用方法。
2.通過對Wireshark抓取的ICMP協(xié)議數(shù)據(jù)包分析,掌握ICMP的幀格式及運(yùn)行原理。 3.熟悉IP首部各字段的含義及以太網(wǎng)封裝格式。
實(shí)驗(yàn)環(huán)境:1.硬件環(huán)境
a)網(wǎng)卡信息Description:Realtek RTL8139 Family Fast Ethernet Adapter Link speed:100MBits/s Media supported:802.3(Ethernet) Media in use: 802.3(Ethernet) Maximum Packet Size 1514 其它詳細(xì)信息見附圖1.
b)網(wǎng)絡(luò)組成實(shí)驗(yàn)電腦通過ADSL MODEM 接入互聯(lián)網(wǎng)中聯(lián)通ADSL服務(wù)器,ADSL MODEM和ADSL服務(wù)器間通過PPP over Ethernet(PPPoE)協(xié)議轉(zhuǎn)播以太網(wǎng)絡(luò)中PPP幀信息。電腦通過ADSL方式上網(wǎng)是通過以太網(wǎng)卡(Ethernet)與互聯(lián)網(wǎng)相連的。使用的還是普通的TCP/IP方式,并沒有付加新的協(xié)議,對我們的抓包實(shí)驗(yàn)是透明的。
2. 軟件環(huán)境
a)操作系統(tǒng)Microsoft Windows XP Professional 版本 2002 Service Pack 3
b)Wireshark 軟件通過系統(tǒng)命令systeminfo查看處理器類型為X86-based PC,為32位機(jī),因此選擇32位的Wireshark軟件(Version:Version 1.2.3 for win32)。
一、概述:
1. ICMP允許主機(jī)或路由報(bào)告差錯(cuò)情況和提供有關(guān)異常情況。ICMP是因特網(wǎng)的標(biāo)準(zhǔn)協(xié)議,但I(xiàn)CMP不是高層協(xié)議,而是IP層的協(xié)議。通常ICMP報(bào)文被IP層或更高層協(xié)議(TCP或UDP)使用。一些ICMP報(bào)文把差錯(cuò)報(bào)文返回給用戶進(jìn)程。
2. ICMP報(bào)文作為IP層數(shù)據(jù)報(bào)的數(shù)據(jù),加上數(shù)據(jù)報(bào)的首部,組成數(shù)據(jù)報(bào)發(fā)送出去。
3. ICMP報(bào)文的種類有兩種,即ICMP差錯(cuò)報(bào)告報(bào)文和ICMP詢問報(bào)文。
二、ICMP報(bào)文的格式
1. 類型:占8位
2. 代碼:占8位
3. 檢驗(yàn)和:占16位
說明:ICMP所有報(bào)文的前4個(gè)字節(jié)都是一樣的,但是剩下的其他字節(jié)則互不相同。
4. 其它字段都ICMP報(bào)文類型不同而不同。
1》 ICMP報(bào)文的前4個(gè)字節(jié)是統(tǒng)一的格式,共有三個(gè)字段:即類型,代碼和檢驗(yàn)和。
2》 8位類型和8位代碼字段一起決定了ICMP報(bào)文的類型。
類型8,代碼0:表示回顯請求(ping請求)。
類型0,代碼0:表示回顯應(yīng)答(ping應(yīng)答)
類型11,代碼0:超時(shí)
3》16位的檢驗(yàn)和字段:包括數(shù)據(jù)在內(nèi)的整個(gè)ICMP數(shù)據(jù)包的檢驗(yàn)和;其計(jì)算方法和IP頭部檢驗(yàn)和的計(jì)算方法一樣的。
ICMP報(bào)文具體分為查詢報(bào)文和差錯(cuò)報(bào)文(對ICMP差錯(cuò)報(bào)文有時(shí)需要做特殊處理,因此要對其進(jìn)行區(qū)分。如:對ICMP差錯(cuò)報(bào)文進(jìn)行響應(yīng)時(shí),永遠(yuǎn)不會(huì)生成另一份ICMP差錯(cuò)報(bào)文,否則會(huì)出現(xiàn)死循環(huán))
三、ICMP差錯(cuò)報(bào)文(56字節(jié))
1. ICMP差錯(cuò)報(bào)告報(bào)文共有5種
1》 終點(diǎn)不可達(dá):終點(diǎn)不可達(dá)分為:網(wǎng)絡(luò)不可達(dá),主機(jī)不可達(dá),協(xié)議不可達(dá),端口不可達(dá),需要分片但DF比特已置為1,以及源路由失敗等六種情況,其代碼字段分別置為0至5。當(dāng)出現(xiàn)以上六種情況時(shí)就向源站發(fā)送終點(diǎn)不可達(dá)報(bào)文。
說明:
端口不可達(dá):UDP的規(guī)則之一是:如果收到UDP數(shù)據(jù)報(bào)而且目的端口與某個(gè)正在使用的進(jìn)程不相符,那么UDP返回一個(gè)ICMP不可達(dá)報(bào)文。
2》 源站抑制:當(dāng)路由器或主機(jī)由于擁塞而丟棄數(shù)據(jù)報(bào)時(shí),就向源站發(fā)送源站抑制報(bào)文,使源站知道應(yīng)當(dāng)將數(shù)據(jù)報(bào)的發(fā)送速率放慢。
3》 時(shí)間超過:當(dāng)路由器收到生存時(shí)間為零的數(shù)據(jù)報(bào)時(shí),除丟棄該數(shù)據(jù)報(bào)外,還要向源站發(fā)送時(shí)間超過報(bào)文。當(dāng)目的站在預(yù)先規(guī)定的時(shí)間內(nèi)不能收到一個(gè)數(shù)據(jù)報(bào)的全部數(shù)據(jù)報(bào)片時(shí),就將已收到的數(shù)據(jù)報(bào)片都丟棄,并向源站發(fā)送時(shí)間超過報(bào)文。
4》 參數(shù)問題:當(dāng)路由器或目的主機(jī)收到的數(shù)據(jù)報(bào)的首部中的字段的值不正確時(shí),就丟棄該數(shù)據(jù)報(bào),并向源站發(fā)送參數(shù)問題報(bào)文。
5》 改變路由(重定向)路由器將改變路由報(bào)文發(fā)送給主機(jī),讓主機(jī)知道下次應(yīng)將數(shù)據(jù)報(bào)發(fā)送給另外的路由器。
說明:
以下幾種情況都不會(huì)導(dǎo)致產(chǎn)生ICMP差錯(cuò)報(bào)文
1》ICMP差錯(cuò)報(bào)文(但是,ICMP查詢報(bào)文可能會(huì)產(chǎn)生ICMP差錯(cuò)報(bào)文)
2》目的地址是廣播地址或多播地址的IP數(shù)據(jù)報(bào)
3》作為鏈路層廣播的數(shù)據(jù)報(bào)
4》不是IP分片的第一片
5》源地址不是單個(gè)主機(jī)的數(shù)據(jù)報(bào)。即源地址不能為零地址、環(huán)回地址、廣播地址或多播地址。
這些規(guī)則是為了防止過去允許ICMP差錯(cuò)報(bào)文對廣播分組響應(yīng)所帶來的廣播風(fēng)暴。
2.所有的ICMP差錯(cuò)報(bào)告報(bào)文中的數(shù)據(jù)字段都具有同樣的格式。將收到的需要進(jìn)行差錯(cuò)報(bào)告IP數(shù)據(jù)報(bào)的首部和數(shù)據(jù)字段的前8個(gè)字節(jié)提取出來,作為ICMP報(bào)文的數(shù)據(jù)字段。再加上響應(yīng)的ICMP差錯(cuò)報(bào)告報(bào)文的前8個(gè)字節(jié),就構(gòu)成了ICMP差錯(cuò)報(bào)告報(bào)文。提取收到的數(shù)據(jù)報(bào)的數(shù)據(jù)字段的前8個(gè)字節(jié)是為了得到運(yùn)輸層的端口號(對于TCP和UDP)以及運(yùn)輸層報(bào)文的發(fā)送序號(對于TCP)。
注:一下情況不發(fā)送ICMP差錯(cuò)報(bào)告報(bào)文
三、ICMP詢問報(bào)文(40字節(jié))
1.ICMP詢問報(bào)文有四種回送請求和回答,時(shí)間戳請求和回答,掩碼地址請求和回答,以及路由器詢問和通過。
1》ICMP回送請求報(bào)文是由主機(jī)或路由器向一個(gè)特定的目的主機(jī)發(fā)出的詢問。收到此報(bào)文的機(jī)器必須給源主機(jī)發(fā)送ICMP回送應(yīng)答報(bào)文。這種詢問報(bào)文用來測試目的站是否可達(dá)以及了解其有關(guān)狀態(tài)。
2》ICMP時(shí)間戳請求允許系統(tǒng)向另一個(gè)系統(tǒng)查詢當(dāng)前的時(shí)間。該ICMP報(bào)文的好處是它提供了毫秒級的分辨率,而利用其他方法從別的主機(jī)獲取的時(shí)間只能提供秒級的分辨率。請求端填寫發(fā)起時(shí)間,然后發(fā)送報(bào)文。應(yīng)答系統(tǒng)收到請求報(bào)文時(shí)填寫接收時(shí)間戳,在發(fā)送應(yīng)答時(shí)填寫發(fā)送時(shí)間戳。大多數(shù)的實(shí)現(xiàn)是把后面兩個(gè)字段都設(shè)成相同的值。
3》主機(jī)使用ICMP地址掩碼請求報(bào)文可向子網(wǎng)掩碼服務(wù)器得到某個(gè)接口的地址掩碼。系統(tǒng)廣播它的ICMP請求報(bào)文。ICMP報(bào)文中的標(biāo)識符和序列號字段由發(fā)送端任意選擇設(shè)定,這些值在應(yīng)答中將被返回,這樣,發(fā)送端就可以把應(yīng)答與請求進(jìn)行匹配。
4》主機(jī)使用ICMP路由器詢問和通過報(bào)文可了解連接在本網(wǎng)絡(luò)上的路由器是否正常工作。主機(jī)將路由器詢問報(bào)文進(jìn)行廣播(或多播)。收到詢問報(bào)文的一個(gè)或幾個(gè)路由器就使用路由器通過報(bào)文廣播其路由選擇信息
四、Ping程序
1.概述
1》Ping程序是為了測試另一臺主機(jī)是否可達(dá)。該程序發(fā)送一份ICMP回顯請求報(bào)文給主機(jī),并等待返回ICMP回顯應(yīng)答。
2》Ping程序還能測出到這臺主機(jī)的往返時(shí)間,以表明該主機(jī)離我們有多遠(yuǎn)。
2.我們將發(fā)送回顯請求的ping程序?yàn)榭蛻簦Q被ping的主機(jī)為服務(wù)器。
3.ICMP回顯請求和回顯應(yīng)答報(bào)文格式:
1》Unix系統(tǒng)在實(shí)現(xiàn)ping程序時(shí)把ICMP報(bào)文中的標(biāo)識符字段置成發(fā)送進(jìn)程的ID號。這樣即使在同一臺主機(jī)上同時(shí)運(yùn)行了多個(gè)ping程序?qū)嵗?,ping程序也可以識別出返回的信息。
2》序列號從0開始,每發(fā)送一次新的回顯請求就加1。ping程序打印出返回的每個(gè)分組的序列號,允許我們查看是否有分組丟失,失序或重復(fù)。。
3》ping程序通過在ICMP報(bào)文中存放發(fā)送請求的時(shí)間值來計(jì)算往返時(shí)間。當(dāng)應(yīng)答返回時(shí),用當(dāng)前時(shí)間減去存放在ICMP報(bào)文中的時(shí)間值,即是往返時(shí)間。
4》當(dāng)返回ICMP回顯應(yīng)答時(shí),要打印出序列號和TTL,并計(jì)算往返時(shí)間。TTL位于IP首部的生存時(shí)間字段。ping程序通過在ICMP報(bào)文數(shù)據(jù)段中存放發(fā)送請求的時(shí)間值來計(jì)算往返時(shí)間。當(dāng)應(yīng)答返回時(shí),用當(dāng)前時(shí)間減去存放在ICMP報(bào)文中的時(shí)間值,即是往返時(shí)間。
其他:
基本原理:
ICMP稱為internet控制協(xié)議,主要用于傳遞IP網(wǎng)絡(luò)中的差錯(cuò)及其他需要注意的控制信息。RFC 792中描述了ICMP協(xié)議:”ICMP是IP不可缺少的部分,所有的IP軟件必須實(shí)現(xiàn)ICMP協(xié)議?!?/p>
ICMP報(bào)文在以下幾種情況下發(fā)送(RFC 792中提到)
ü 當(dāng)數(shù)據(jù)報(bào)不能到達(dá)目的地
ü 當(dāng)網(wǎng)關(guān)已經(jīng)失去緩存功能
ü 當(dāng)網(wǎng)關(guān)能夠引導(dǎo)主機(jī)在更短路由上發(fā)送
類型:表示ICMP報(bào)文類型
代碼:同類型字段相結(jié)合定義詳細(xì)的ICMP報(bào)文
數(shù)據(jù):根據(jù)不通類型和代碼,數(shù)據(jù)域填充相應(yīng)的內(nèi)容
類型代碼描述
00回顯應(yīng)帶(Ping應(yīng)答)
3
目的不可達(dá)
0網(wǎng)絡(luò)不可達(dá)
1主機(jī)不可達(dá)
2協(xié)議不可達(dá)
3端口不可達(dá)
4需要進(jìn)行分片但設(shè)置了不分片比特
5源站選路失敗
6目的網(wǎng)絡(luò)不認(rèn)識
7目的主機(jī)不認(rèn)識
8源主機(jī)被隔離(作廢不用了)
9目的網(wǎng)絡(luò)被強(qiáng)制禁止
10目的主機(jī)被強(qiáng)制禁止
11由于服務(wù)類型TOS,網(wǎng)絡(luò)不可達(dá)
12由于服務(wù)類型TOS,主機(jī)不可達(dá)
13由于過濾,通信被強(qiáng)制禁止
14主機(jī)越權(quán)
40源端被關(guān)閉(基于流控制)
5重定向
0對網(wǎng)絡(luò)重定向
1對主機(jī)重定向
2對服務(wù)類型和網(wǎng)絡(luò)重定向
3對服務(wù)類型和主機(jī)重定向
80請求回顯(即ping請求)
90路由器通告
100路由器請求
11超時(shí)
0傳輸起見TTL為0
1在數(shù)據(jù)報(bào)文組裝期間TTL為0
12參數(shù)問題
0壞的IP首部(包括各種差錯(cuò))
1缺少必須的選項(xiàng)
130時(shí)間戳請求
140時(shí)間戳應(yīng)答
150信息請求
160信息應(yīng)答
170地址掩碼請求
180地址掩碼應(yīng)答
ICMP協(xié)議分析報(bào)告
評論
查看更多