ICMP深入理解_第1頁
ICMP深入理解_第2頁
ICMP深入理解_第3頁
ICMP深入理解_第4頁
ICMP深入理解_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、ICMP稱為internet控制協(xié)議,主要用于傳遞IP網(wǎng)絡(luò)中的差錯及其他需要注意的控制信息。RFC 792中描述了ICMP協(xié)議:”ICMP是IP不可缺少的部分,所有的IP軟件必須實(shí)現(xiàn)ICMP協(xié)議?!盜CMP報(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 &

2、#160;目的不可達(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 超時0傳輸起見TTL為01在數(shù)據(jù)報(bào)文組裝期間TTL為012 參數(shù)問

3、題0壞的IP首部(包括各種差錯)1缺少必須的選項(xiàng)130時間戳請求140時間戳應(yīng)答150信息請求160信息應(yīng)答170地址掩碼請求180地址掩碼應(yīng)答   第二節(jié):Ping測試案例Ping命令用于測試目的主機(jī)是否可達(dá),該命令發(fā)送ICMP回顯請求報(bào)文給目的主機(jī),并等待返回ICMP回顯應(yīng)答。本節(jié)中將使用Ping命令作為診斷工具深入分析ICMP協(xié)議。 案例一:請求回顯/回顯應(yīng)答 在主機(jī)192.168.0.103上運(yùn)行Ping 192.168.0.101的命令,主機(jī)192.168.0.103將會收到從192.168.0.101返回的ICMP回顯應(yīng)答。如下圖所示: &#

4、160;通過本地抓包工具分析,我們可以看出從本地發(fā)出的ICMP報(bào)文是請求回顯。  而從返回給本地的ICMP是回顯報(bào)文:  案例二:請求超時 我們ping一個不存在的地址,顯示如下:通過抓包工具的分析,可以看出:主機(jī)本地主機(jī)的ARP緩存中沒有192.168.1.222 MAC地址的記錄,所以本地主機(jī)首先會向網(wǎng)絡(luò)廣播ARP請求來獲得的MAC地址。由于主機(jī)并不存在,所以本地主機(jī)不可能收到ARP響應(yīng)。因此在執(zhí)行完P(guān)ing命令后,如果主機(jī)本地主機(jī)在規(guī)定的時間內(nèi)沒有收到的ICMP回顯響應(yīng),那么將會在命令行界面中顯示請求超時。  案例三:

5、MTU探測 MTU探測是探測方與通信方之間不用分片IP數(shù)據(jù)包就能交流MTU大小的功能,ICMP可以實(shí)現(xiàn)MTU探測。以Windows系統(tǒng)為例,首先,探測方向目的主機(jī)送IP數(shù)據(jù)包時,先設(shè)置IP首部的分片禁止標(biāo)志然后再發(fā)送。如下圖所示,探測方發(fā)送大于1500字節(jié)的數(shù)據(jù)包,通信路徑上MTU為1000 字節(jié)的節(jié)點(diǎn)將不允許超過1000字節(jié)的數(shù)據(jù)包通過。此節(jié)點(diǎn)嘗試將IP數(shù)據(jù)包分片,但是因?yàn)閿?shù)據(jù)包設(shè)置為禁止分片,所以不能分片。此節(jié)點(diǎn)就將該IP數(shù)據(jù)包丟棄,并用ICMP報(bào)文通知探測方“想分片,但不能分片”,同時也會將MTU=1000的信息告訴探測方。當(dāng)探測方收到該ICMP 報(bào)文后就知道了不分片所能夠傳送

6、的數(shù)據(jù)大小,重新發(fā)送IP數(shù)據(jù)包。通過重復(fù)以上的步驟,就可以得到路徑的MTU值的大小。 Ping命令可以實(shí)現(xiàn)MTU探測。選項(xiàng)“-l”指定發(fā)送ICMP報(bào)文的長度,“-f”設(shè)置分片禁止。在此案例中,網(wǎng)關(guān)的地址為,首先在網(wǎng)關(guān)上設(shè)置MTU為800,當(dāng)主機(jī)(外網(wǎng)地址)時,就會收到“數(shù)據(jù)包需要分片,但是分片禁止”的響應(yīng)消息。通過wireshark103發(fā)送了ICMP響應(yīng)的數(shù)據(jù)報(bào),顯示目的不可達(dá),需要分片。  案例四:記錄路由 Ping命令使用“-R”選項(xiàng),為我們提供了查看IP記錄路由(RR)的機(jī)會。它使得Ping命令在發(fā)送出去的IP數(shù)據(jù)包中設(shè)置RR選項(xiàng)(該IP數(shù)據(jù)包包

7、含ICMP回顯請求報(bào)文)。這樣,每個處理該數(shù)據(jù)包的路由器都把它的IP地址放入選項(xiàng)字段中。當(dāng)數(shù)據(jù)包到達(dá)目的端時,IP地址清單將會復(fù)制到ICMP回顯應(yīng)答的報(bào)文中,這樣返回途中所經(jīng)過的路由器地址也會被加入清單中。當(dāng)收到回顯應(yīng)答時,就會打印出這份IP地址清單。 記錄路由的IP地址清單位于IP頭中的選項(xiàng)數(shù)據(jù)中,如下圖所示,由于IP頭長度的限制,只能記錄9個IP地址。 code(1字節(jié)),指明IP選項(xiàng)的類型。對于RR選項(xiàng)來說,它的值為7。 len是RR選項(xiàng)總字節(jié)長度,在這種情況下為39。 ptr稱作指針字段。它是一個基于1的指針,指向存放下一個IP地址的位置。它的最小值為4,指向存放第一個IP地址的位置。

8、隨著每個IP地址存入清單,ptr的值分別為8、12、16,最大到36。當(dāng)記錄下9個IP地址后,ptr的值為40,表示清單已滿?!?R”選項(xiàng)所支持記錄路由長度的范圍是19,意味著最多只能記錄9個IP地址。下面通過一個案例來分析記錄路由是如何工作的。使用Ping命令,并設(shè)置“-R”選項(xiàng)為8,表示只記錄路由中的前八個IP地址。從下圖中可以看出,主機(jī)收到一個回顯響應(yīng)的ICMP數(shù)據(jù)報(bào),IP頭中的記錄路由選項(xiàng)中包含了路由中的8跳IP地址。通過抓包分析可以看出,當(dāng)主機(jī)收到ICMP回顯響應(yīng)時,在記錄路由選項(xiàng)中,8個IP地址已經(jīng)填充好了,這也是用戶在命令行界面中所看到的IP地址清單。  Tr

9、aceroute 在上一節(jié)中描述了IP記錄路由選項(xiàng)。為什么不使用這個選項(xiàng)而使用Traceroute命令呢?首先,并不是所有的路由器都支持記錄路由選項(xiàng),因此該選項(xiàng)在某些路徑上不能使用(Traceroute不需要中間路由器具備任何特殊的或可選的功能)。其次,最主要的原因是IP首部中留給選項(xiàng)的空間有限,在IP首部選項(xiàng)字段中最多只能存放9個IP地址。在原先的ARPANET中這是足夠的,但是對于現(xiàn)在的網(wǎng)絡(luò)來說是遠(yuǎn)遠(yuǎn)不夠的。Traceroute程序使用ICMP報(bào)文和IP首部中的TTL字段(生存周期)。當(dāng)路由器收到的IP數(shù)據(jù)包TTL字段是0或1,路由器將該數(shù)據(jù)包丟棄,并給源主機(jī)發(fā)ICMP“超時”信

10、息。Traceroute的關(guān)鍵在于包含這份ICMP報(bào)文的IP數(shù)據(jù)包的源地址是該路由器的IP地址。源主機(jī)發(fā)送TTL字段為1的IP數(shù)據(jù)包給目的主機(jī),處理此數(shù)據(jù)包的第一個路由器將TTL值減1,丟棄該數(shù)據(jù)包,并發(fā)回一份超時ICMP報(bào)文。這樣就得到了該路徑中的第一個路由器的地址。然后Traceroute發(fā)送TTL值為2的數(shù)據(jù)包,這樣就可以得到第二個路由器的地址。重復(fù)這個過程直至到達(dá)目的主機(jī)。 案例五:traceroute in windows在Windows系統(tǒng)下,使用Tracert命令實(shí)現(xiàn)了Traceroute的功能。 抓包分析:   案例六:traceroute在linux Linux系統(tǒng)下,主機(jī)并不是直接發(fā)送ICMP協(xié)議的數(shù)據(jù)報(bào)文,而是發(fā)送UDP數(shù)據(jù)包。那么該如何判斷UDP數(shù)據(jù)包已經(jīng)到達(dá)目的主機(jī)了呢?Traceroute命令使用UDP數(shù)據(jù)包的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論