




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗5 Internet控制報文協(xié)議(ICMP)【實驗?zāi)康摹?. 掌握ICMP協(xié)議的報文格式2. 理解不同類型ICMP報文的具體意義3. 了解常見的網(wǎng)絡(luò)故障【學時分配】2學時【實驗環(huán)境】該實驗采用網(wǎng)絡(luò)結(jié)構(gòu)二【實驗內(nèi)容】一. ICMP簡介IP協(xié)議是一種不可靠無連接的協(xié)議,當數(shù)據(jù)包經(jīng)過多個網(wǎng)絡(luò)傳輸后,可能出現(xiàn)錯誤、目的主機不響應(yīng)、包擁塞和包丟失等問題。為了處理這些問題,在IP層引入了另一個協(xié)議ICMP(Internet控制信息協(xié)議)。ICMP報文有兩種類型:差錯報文和查詢報文。ICMP報文封裝在IP報文里傳輸。ICMP報文可以被IP協(xié)議、傳輸層協(xié)議(TCP或UD
2、P)和用戶進程使用。ICMP與IP一樣,都是不可靠傳輸,ICMP的信息也可能丟失。為了防止ICMP報文無限制的連續(xù)發(fā)送,對于ICMP報文在傳輸中發(fā)生的問題,將不再發(fā)送ICMP差錯報文。二. ICMP報文格式ICMP數(shù)據(jù)包由8字節(jié)的首部和可變長度的數(shù)據(jù)部分組成。如下圖所示,第一個字段是ICMP的類型,它定義了報文類型。第二個字段是代碼字段,它指明了發(fā)送這個特定報文類型的原因。校驗和字段為ICMP數(shù)據(jù)包提供差錯校驗。對于不同類型的ICMP數(shù)據(jù)包,首部的最后4個字節(jié)的格式是不同的,具體的格式將在下面討論。差錯報文的數(shù)據(jù)部分攜帶引起差錯的原始數(shù)據(jù)。查詢報文的數(shù)據(jù)部分攜帶了基于查詢類型的額外信息。圖4-
3、1 ICMP報文的一般格式 類型:8位字段,用于描述特定類型的ICMP報文。 代碼:8位字段,進一步描述某些ICMP報文的具體說明。 校驗和:16位字段,覆蓋這個ICMP報文的校驗和。三. ICMP封裝ICMP報文封裝在IP數(shù)據(jù)報中,具體的封裝方法如下圖所示:圖4-2 ICMP封裝四. ICMP報文類型ICMP報文可分為兩大類:差錯報文和查詢報文,如下圖所示:圖4-3 ICMP報文類型差錯報文報告路由器或主機在處理IP數(shù)據(jù)報時遇到的問題。查詢報文是成對出現(xiàn)的,它幫助主機或網(wǎng)絡(luò)管理員從一個路由器或另一個主機得到特定的信息。例
4、如,主機使用ICMP回顯請求和回顯應(yīng)答報文發(fā)現(xiàn)它們的鄰站。下表列出了每一類ICMP報文。表4-1 ICMP報文五. ICMP查詢報文ICMP查詢報文能夠獲得特定主機或路由器的信息,能夠?qū)δ承┚W(wǎng)絡(luò)問題進行診斷。ICMP查詢報文包括4對不同類型的報文,分別為回顯請求和應(yīng)答報文、時間戳請求和應(yīng)答報文、地址掩碼請求和應(yīng)答報文以及路由器詢問和通告報文,如下圖所示。圖4-4 查詢報文1. 回顯請求和應(yīng)答回顯請求報文和回顯應(yīng)答報文用來確定了兩個節(jié)點(主機或路由器)之間是否能夠正常通信。用戶可以使用這對報文來發(fā)現(xiàn)網(wǎng)絡(luò)問題。主機或路由器可以發(fā)送回顯請求報文給另一個主機或路由器
5、。收到回顯請求報文的主機或路由器產(chǎn)生回顯應(yīng)答報文,并將其返回給原來的發(fā)送端。回顯請求和回顯應(yīng)答報文可用來確定是否在IP這級能夠通信。因為ICMP報文被封裝在IP數(shù)據(jù)報中,發(fā)送回顯請求的主機在收到回顯應(yīng)答報文時,就證明了在發(fā)送端和接收端之間能夠使用IP數(shù)據(jù)報進行通信。另外,這還證明了鏈路中的路由器能夠接收、處理和轉(zhuǎn)發(fā)數(shù)據(jù)報?;仫@請求和回顯應(yīng)答報文還可以用于檢查另一個主機是否可達。用戶可以調(diào)用數(shù)據(jù)包因特網(wǎng)搜尋器(ping)命令做到這一點?,F(xiàn)在,大多數(shù)系統(tǒng)都提供ping命令,它可以產(chǎn)生一連串的回顯請求或回顯應(yīng)答報文。回顯請求和回顯應(yīng)答報文也可以用來驗證某個節(jié)點是否正常工作。可以向被測試的節(jié)點發(fā)送回顯
6、請求報文,該報文的數(shù)據(jù)字段包含一段信息,如果這段信息被測試的節(jié)點在回顯應(yīng)答報文中完全一樣地重復(fù),則說明該節(jié)點工作正常;否則說明該節(jié)點出了問題。下圖給出了回顯請求和回顯應(yīng)答報文的格式。類型值為8表示回顯請求報文,類型值為0表示回顯應(yīng)答報文。標識符和序號字段在協(xié)議中沒有正式定義,可以由發(fā)送端任意使用。圖4-5 ICMP回顯請求和應(yīng)答報文2. 時間戳請求和應(yīng)答兩個機器(主機或路由器)可使用時間戳請求和時間戳應(yīng)答報文來確定IP數(shù)據(jù)報在這兩個機器之間傳輸所需要的時間,也可以用作兩個機器時鐘的同步。這兩個報文的格式如下圖所示。其中,類型值為13表示時間戳請求報文,類型值為14表示時
7、間戳應(yīng)答報文。圖4-6 時間戳請求和應(yīng)答報文在報文格式中3個時間戳字段的長度都是32位。每一個字段都保存一個整數(shù),代表從通用時間(格林尼治標準時間)的午夜起測量出的時間,以毫秒為單位。源節(jié)點在時間戳請求報文的原始時間戳字段填入它的時鐘所顯示的通用時間。其它兩個時間戳字段都填入零。收到時間戳請求報文后,終點將生成時間戳應(yīng)答報文。終點把請求報文中的原始時間戳字段值復(fù)制到應(yīng)答報文的同一個字段中。然后在接收時間戳字段中填入收到這個請求報文時其時鐘所顯示的通用時間。最后,終點在應(yīng)答報文將要發(fā)送時在發(fā)送時間戳字段中填入其時鐘所顯示的通用時間。時間戳請求和時間戳應(yīng)答報文可以用來計算數(shù)據(jù)報從源點到
8、終點所需的時間,還可以用于計算數(shù)據(jù)報再返回到源點所需的時間。3. 地址掩碼請求和應(yīng)答要得到掩碼,主機應(yīng)該向局域網(wǎng)上的路由器發(fā)送地址掩碼請求報文。若主機知道路由器的地址,它就把請求直接發(fā)送給該路由器。若主機不知道路由器的地址,則它就廣播地址掩碼請求報文。路由器收到地址掩碼請求報文后,用地址掩碼應(yīng)答報文進行響應(yīng),向主機提供所需的掩碼。地址掩碼請求和地址掩碼應(yīng)答報文的格式如下圖所示。其中,類型值為17表示地址掩碼請求報文,類型值為18表示地址掩碼應(yīng)答報文。在請求報文中,地址掩碼字段填入全0。當路由器把地址掩碼應(yīng)答發(fā)回給主機時,這個字段就包含真正的掩碼。圖4-7 地址掩碼請求和
9、應(yīng)答報文無盤工作站在啟動時是需要地址掩碼的,它會使用RARP協(xié)議查找完整的IP地址,在收到IP地址以后,無盤工作站就可使用地址掩碼請求報文找出地址掩碼,從而確定IP地址的哪一部分定義了子網(wǎng)號,哪一部分定義了主機號。4. 路由器詢問和通告主機若想把數(shù)據(jù)發(fā)送給另一個網(wǎng)絡(luò)上的主機,就需要知道連接到該網(wǎng)絡(luò)上的路由器的地址。此外,這個主機還需要知道這些路由器是否正常工作。路由器詢問報文和路由器通告報文可以完成這項工作。主機可把路由器詢問報文進行廣播(或多播)。收到詢問報文的一個或幾個路由器就使用路由器通告報文廣播其路由選擇信息。甚至在沒有主機詢問時,路由器也可周期性地發(fā)送路由器通告報文。路由
10、器發(fā)送出通告報文時,它不僅通告了自己的存在,而且也通告了它所知道的所有在這個網(wǎng)絡(luò)上的路由器。下圖給出了路由器詢問報文的格式。圖4-8 路由器詢問報文下圖給出了路由器通告報文的格式。生存期字段表示這個報文在多長時間內(nèi)是有效的。在通告報文中每一個路由器的項目有兩個字段:路由器地址和地址優(yōu)先級。地址優(yōu)先級定義了路由器的等級。優(yōu)先級用來選擇某個路由器作為默認路由器。若地址優(yōu)先級為零,則這個路由器就被認為是默認路由器。若地址優(yōu)先級是0x80000000,則這個路由器永遠不能被選為默認路由器。圖4-9 路由器通告報文六. ICMP差錯報文ICMP差錯報文用來報告差錯。雖然現(xiàn)代的技術(shù)
11、已經(jīng)制造出很可靠的傳輸媒體,但差錯仍然存在,因而必須進行處理。正如在實驗三中所討論的,IP是個不可靠的協(xié)議。這就表示IP不考慮差錯校驗和差錯控制。ICMP就是為了補償這個缺點而設(shè)計的。然而ICMP不能糾正差錯,它只是報告差錯,差錯糾正留給高層協(xié)議去做。ICMP使用源IP地址把差錯報文發(fā)送給數(shù)據(jù)報的源點(發(fā)出者)。一共有5種差錯報文:目的端不可達、源點抑制、超時、參數(shù)問題以及改變路由,如下圖所示。圖4-10 差錯報文差錯報文的數(shù)據(jù)字段包括原始數(shù)據(jù)報(引起差錯的報文)的首部和原始數(shù)據(jù)報數(shù)據(jù)部分的前8個字節(jié)。包括原始數(shù)據(jù)報首部的目的是為了向差錯報文的原始信源給出關(guān)于數(shù)據(jù)報本身的信息。包括
12、數(shù)據(jù)的前8個字節(jié)是因為這前8個字節(jié)提供了關(guān)于端口號(UDP和TCP)和序號(TCP)的信息。根據(jù)這些信息,源點可以把差錯情況通知給上層協(xié)議。1. 目的端不可達當路由器不能夠為數(shù)據(jù)報找到路由或主機,就丟棄這個數(shù)據(jù)報,然后向發(fā)出這個數(shù)據(jù)報的源主機發(fā)送目的端不可達報文。下圖給出了目的端不可達報文的格式。這種類型的代碼字段指明了丟棄該數(shù)據(jù)報的原因。圖4-11 目的端不可達報文2. 源點抑制IP協(xié)議是無連接協(xié)議,因此通信缺乏流量控制。ICMP源點抑制報文就是為了給IP增加一種流量控制而設(shè)計的。當路由器或主機因擁塞而丟棄數(shù)據(jù)報時,它就向數(shù)據(jù)報的發(fā)送端發(fā)送源點抑制報文。第
13、一,它通知發(fā)送端,數(shù)據(jù)報已被丟棄。第二,它警告發(fā)送端,在路徑中的某處出現(xiàn)了擁塞,因而源端必須放慢發(fā)送過程。源點抑制報文的格式如下圖所示:圖4-12 源點抑制報文3. 超時超時報文是在以下兩種情況下產(chǎn)生的: 數(shù)據(jù)報的生存時間字段值被減為0時,路由器丟棄這個數(shù)據(jù)報,并向發(fā)送端發(fā)送超時報文。 當組成報文的所有分段未能在某一時限內(nèi)到達目的主機時,也要產(chǎn)生超時報文。當?shù)谝粋€分段到達時,目的主機就啟動計時器。當計時器的時限到了,目的主機就將所有分段丟棄,并向發(fā)送端發(fā)送超時報文。超時報文格式如下圖所示:圖4-13 超時報文4. 參數(shù)問題
14、當數(shù)據(jù)報在Internet上傳送時,如果路由器或目的主機發(fā)現(xiàn)數(shù)據(jù)報首部中出現(xiàn)了二義性問題,或在數(shù)據(jù)報的某個字段中缺少某個值,它就丟棄這個數(shù)據(jù)報,并向發(fā)送端發(fā)送參數(shù)問題報文。下圖給出了參數(shù)問題報文格式。代碼字段指明了丟棄數(shù)據(jù)報的原因。圖4-14 參數(shù)問題報文 代碼為0時表示在首部的某個字段中有差錯或二義性。指針字段值指向有問題的字節(jié)。 代碼為1時表示缺少所需的選項部分。這種情況下不使用指針。5. 重定向為了提高效率,主機不參與路由選擇更新過程,因此,主機可能會把某數(shù)據(jù)報發(fā)送給一個錯誤的路由器。這時,收到這個數(shù)據(jù)報的路由器會把數(shù)據(jù)轉(zhuǎn)發(fā)給正確的路由器,
15、同時向主機發(fā)送重定向報文,告訴主機正確路由器的地址。下圖給出了重定向報文的格式。圖4-15 改變路由報文七. ICMP校驗和ICMP的校驗和的計算覆蓋了整個ICMP報文(首部和數(shù)據(jù))。1. 校驗和的計算發(fā)送端按以下步驟使用反碼算術(shù)運算計算校驗和:(1)把校驗和字段置為零。(2)把報文按照16位長度分段,使用反碼算術(shù)運算計算所有分段之和。(3)把得到的和求反碼,得到校驗和。(4)把校驗和存儲在校驗和字段中。2. 校驗和的測試接收端按以下步驟使用反碼算術(shù)運算來測試校驗和的正確性:(1)把報文按照16位長度分段,使用反碼算術(shù)運算計算所有分段之和。(2)把得到的和求
16、反碼?!緦嶒灢襟E】實驗要求:1. 按照實驗指導(dǎo)書中要求的實驗步驟完成練習1、3兩項的實驗內(nèi)容;2. 回答出實驗練習1、3中給出的每一個問題;練習1運行Ping命令各主機打開協(xié)議分析器,進入相應(yīng)的網(wǎng)絡(luò)結(jié)構(gòu)并驗證網(wǎng)絡(luò)拓撲的正確性,如果通過拓撲驗證,關(guān)閉協(xié)議分析器繼續(xù)進行實驗,如果沒有通過拓撲驗證,請檢查網(wǎng)絡(luò)連接。本練習將主機A、B、C、D、E、F作為一組進行實驗。實驗開始前主機B首先執(zhí)行命令“staticroute_config”啟動靜態(tài)路由。 1. 主機B、E、F啟動協(xié)議分析器,打開捕獲窗口進行數(shù)據(jù)捕獲并設(shè)置過濾條件(提取ICMP協(xié)議)。2. 主機A ping主機E(17
17、)。3. 主機B、E、F停止捕獲數(shù)據(jù),察看捕獲到的數(shù)據(jù),并回答以下問題: 捕獲的報文對應(yīng)的“類型”和“代碼”字段分別是什么?類型 8 代碼0 分析報文中的哪些字段保證了回顯請求報文和回顯應(yīng)答報文的一一對應(yīng)?新增加的條目,簡述ARP協(xié)議的報文交互過程以及ARP高速緩存表的更新過程。1、代碼、標識號、序列號,協(xié)議數(shù)據(jù)2、練習2 ICMP查詢報文本練習將主機A、B、C、D、E、F作為一組進行實驗。1. 主機A啟動協(xié)議編輯器,編輯一個ICMP時間戳請求數(shù)據(jù)幀發(fā)送給主機C(3)。MAC層:目的MAC地址:C的MAC地址
18、。源MAC地址:A的MAC地址。協(xié)議類型或數(shù)據(jù)長度:0800。IP層:總長度:包含IP層和ICMP層長度。高層協(xié)議類型:1。校驗和:在其它字段填充完畢后計算并填充。源IP地址:A的IP地址。目的IP地址:C的IP地址。ICMP層:類型:13。代碼字段:0。校驗和:在ICMP層其它字段填充完畢后,計算并填充。其它字段使用默認值。2. 主機C啟動協(xié)議分析器進行數(shù)據(jù)捕獲,并設(shè)置過濾條件(提取ICMP協(xié)議)。3. 主機A發(fā)送已編輯好的數(shù)據(jù)幀。4. 主機C停止捕獲數(shù)據(jù)。察看主機C捕獲到的數(shù)據(jù),并填寫下表:表4-2 實驗結(jié)果練習3 ICMP差錯報文本練習將主
19、機A、B、C、D、E、F作為一組進行實驗。1. 目的端不可達(1)主機A、B、C、D、E、F啟動協(xié)議分析器捕獲數(shù)據(jù),并設(shè)置過濾條件(提取ICMP)。(2)在主機A、C、D、E上ping 0(不存在的IP)。 (3)主機A、B、C、D、E、F停止捕獲數(shù)據(jù)。察看捕獲到的數(shù)據(jù),并回答以下問題: 捕獲到的是哪一種目的端不可達報文ICMP2. 超時(1)在主機E上啟動協(xié)議編輯器,編寫一個發(fā)送給主機D(4)的ICMP數(shù)據(jù)幀。其中:MAC層:目的MAC地址:主機B的MAC地址(接口的MAC)。源MAC
20、地址:E的MAC地址。協(xié)議類型或數(shù)據(jù)長度:0800。IP層:總長度:包含IP層和ICMP層長度。TTL:0。高層協(xié)議類型:1。校驗和:在其它字段填充完畢后,計算并填充。源IP地址:E的IP地址。目的IP地址:D的IP地址。ICMP層:類型:8。代碼字段:0。校驗和:在ICMP其它字段填充完畢后,計算并填充。其它字段使用默認值。(2)主機B(的接口)、F啟動協(xié)議分析器捕獲數(shù)據(jù),并設(shè)置過濾條件(提取ICMP協(xié)議)。(3)主機E發(fā)送已編輯好的數(shù)據(jù)幀。(4)主機B、F停止捕獲數(shù)據(jù),察看并分析捕獲到的數(shù)據(jù)。(5)主機B在命令行方式下輸入recover_config命令,停止靜態(tài)路由
21、服務(wù)?!舅伎紗栴}】練習21. 能否根據(jù)時間戳計算出當前的時間?能2. 使用時間戳得到的時間比從系統(tǒng)得到的時間有什么好處?比系統(tǒng)得到的精確練習31. 為什么要設(shè)置TTL字段?用來判斷收到的包是否有效2. 為什么要限制由失效的ICMP差錯報文再產(chǎn)生一個ICMP報文?對源點通知高層協(xié)議是有用。3. 什么樣的ICMP報文是由路由器發(fā)送出的?什么樣的ICMP報文是由目的主機發(fā)送出的?4. 主機A向主機B發(fā)送數(shù)據(jù)報,主機B從未收到該數(shù)據(jù)報,而主機A也從未收到出問題的通知。試給出可能發(fā)生情況的兩種不同解釋。 論文設(shè)計題目 ICMP協(xié)議及
22、應(yīng)用研究 The ICMP Protocol and Its Application Study 作 者 張 李 華 二級學院、專業(yè) 信息工程學院 計算機科學技術(shù) 班 級 計001 指導(dǎo)教師職稱 詹國華教授 論 文 字 數(shù) 10202 論文完成時間 2008年5月 教務(wù)處制 本科畢業(yè)論文 ICMP協(xié)議和應(yīng)用研究 2 目 錄 摘要3 Abstract4 第一章 引言5 第二章 基于IPv4的ICMP的認識5 2.1 OSI參考模型和TCP/IP參考模型的比較 5 2.2 TCP/IP 在網(wǎng)絡(luò)中的地位和作用6 2.3 ICMP的介紹7 2.3.1 ICMP 協(xié)議報頭7 2.3.2 ICMP協(xié)議的消
23、息8 2.3.3 ping命令8 2.3.4 路由跟蹤traceroute8 2.4 ICMP 攻擊影響網(wǎng)絡(luò)安全8 第三章ICMP部分功能的模擬實現(xiàn)10 3.1 背景10 3.1.1 ping命令的深入認識10 3.2存在的問題12 3.3 CPing的功能特點13 3.3.1網(wǎng)絡(luò)的連通13 3.3.2可視化界面13 3.3.3 顯示簡單對一般用戶容易看懂13 3.3.4 容量小易攜帶13 3.4模擬環(huán)境14 3.5.1硬件環(huán)境14 3.5.2軟件環(huán)境14 3.5 實現(xiàn)14 3.5.1 文件組成14 3.5.2 網(wǎng)絡(luò)套接字16 3.6 操作過程及結(jié)果的顯示16 第四章ICMP的發(fā)展趨勢基于Ip
24、v6的ICMP18 參考文獻19 本科畢業(yè)論文 ICMP協(xié)議和應(yīng)用研究 3 摘要 本文較深入地研究了TCP/IP協(xié)議組中的ICMP協(xié)議。ICMP是“Internet Control Message Protocol”Internet控制報文協(xié)議的縮寫是一個非常重要的協(xié)議。ICMP是一種與IP協(xié)議并行運行在網(wǎng)絡(luò)層的協(xié)議用于在IP主機、路由器之間傳遞控制消息??刂葡W(wǎng)絡(luò)通不通、主機是否可達、路由是否可用等網(wǎng)絡(luò)本身的消息。本文還深入研究了在常用操作系統(tǒng)下(如UNIXWindowsDOS)利用ICMP協(xié)議實現(xiàn)的ping命令它是用來測試網(wǎng)絡(luò)是否通暢主機是否可達以及用Visual C+制作模擬pin
25、g命令的小軟件PingDemo它雖小但是簡便面向一般用戶。 關(guān)鍵詞ICMPTCP/IPping 本科畢業(yè)論文 ICMP協(xié)議和應(yīng)用研究 4 Abstract The paper searches the ICMP protocol in TCP/IP deeply.ICMP is Internet Control Message Protocolwhich plays a very important role. ICMP that works in the same degree as IP protocolis used to pass the control message between
26、 ip-host and rounters.The control message tells you that is the net linkedhas the host been arrivedor is the rounter working and so on.In additionthe paper also searches the ping command in the common OS with ICMP.The ping command is to check that the host exists or not.And moreusing Visual C+ to ma
27、ke a soft called PingDemo as similar as ping.It faces to everyone though it is small. Keywords: ICMPTCP/IPping 本科畢業(yè)論文 ICMP協(xié)議和應(yīng)用研究 5 第一章 引言 隨著科學技術(shù)的飛速發(fā)展21世紀的地球人已經(jīng)生活在信息時代。20世紀人類兩大科學技術(shù)成果-計算機技術(shù)和網(wǎng)絡(luò)技術(shù)均已深入到人類社會的各個領(lǐng)域Internet把“地球村”的居民緊密聯(lián)系在一起“天涯若比鄰”已然成為現(xiàn)實?;ヂ?lián)網(wǎng)之所以能這樣迅速蔓延被世人接受是因為它具備特有的信息資源。近年來Internet的迅速發(fā)展給人們的日常生
28、活帶來了全新的感受“網(wǎng)絡(luò)生存”已經(jīng)成為時尚同時人類社會諸如政治、科研、經(jīng)濟、軍事等各種活動對信息網(wǎng)絡(luò)的依賴程度已經(jīng)越來越強“網(wǎng)絡(luò)經(jīng)濟”時代已初露端倪。 ping命令早已是耳熟能詳?shù)臋z查網(wǎng)絡(luò)暢通的得力方法之一但是ping命令是來自于哪個網(wǎng)絡(luò)層次的哪個協(xié)議就不是每個人能說得上的了。同樣對于TCP/IP協(xié)議我們一定非常熟悉但是對于ICMP協(xié)議可能就一無所知了。ICMP協(xié)議是一個非常重要的協(xié)議它對于網(wǎng)絡(luò)安全、網(wǎng)絡(luò)的正常運作具有極其重要的意義。它被用于在IP主機、路由器之間傳遞控制消息如網(wǎng)絡(luò)通不通、主機是否可達、路由是否可用等。這些控制消息雖然并不傳輸用戶數(shù)據(jù)但是對于用戶數(shù)據(jù)的傳遞起著重要的作用。而且I
29、CMP協(xié)議本身的特點又決定了它非常容易被用于攻擊網(wǎng)絡(luò)上的路由器和主機造成CPU疲于奔命系統(tǒng)癱瘓主機死機。以上所言ICMP的研究將會帶領(lǐng)我們進入一個豐富多彩的未知領(lǐng)域。 第二章 基于IPV4的ICMP的認識 2.1 OSI參考模型和TCP/IP參考模型的比較 盡管OSI模型在各種場合得到了廣泛的應(yīng)用但由于其建立時間過早各種網(wǎng)絡(luò)的發(fā)展不斷突破了OSI參考模型特別是互聯(lián)網(wǎng)的發(fā)展對OSI模型是一個巨大的挑戰(zhàn)。OSI參考模型的教訓是首先引入時間過晚建立標準時TCP/IP已在大學使用而后來又被廣泛使用其次在技術(shù)上不能完全適應(yīng)網(wǎng)絡(luò)發(fā)展現(xiàn)狀如會話層在大多數(shù)應(yīng)用中很少使用表述層幾乎是空的。相反數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層
30、內(nèi)容過多有時不得不分成子層每一子層賦予不同的功能。OSI的另一個問題是有些功能在不同的層一再出現(xiàn)如編址、流量控制、糾錯等等。有些功能放在那里很難達成一致意見如安全性、加密及網(wǎng)絡(luò)管理層很難達成一致而干脆未包括在內(nèi)。同時OSI完全忽略了無連接業(yè)務(wù)的相應(yīng)的協(xié)議而這在LAN和演播室局域網(wǎng)中得到了廣泛的應(yīng)用只是后來才加以補充。另一個嚴重問題是OSI主要考慮通信而計算機世界有相當多的不同點。最后在OSI的實現(xiàn)和政策上都有一些問題。 我們再來看一下TCP/IP參考模型如圖1。 本科畢業(yè)論文 ICMP協(xié)議和應(yīng)用研究 6 可以看到其中不存在會晤層和表述層主要面向連接的網(wǎng)絡(luò)層也被以包交接為基礎(chǔ)的無連接互聯(lián)網(wǎng)絡(luò)層代
31、替稱為互聯(lián)網(wǎng)層數(shù)據(jù)鏈路層和物理層也大大簡化為主機到網(wǎng)絡(luò)層Host-To-Network除了指出主機必須使用能發(fā)送IP包的協(xié)議外并不規(guī)定什么。在互聯(lián)網(wǎng)層中定義了包結(jié)構(gòu)和相應(yīng)的協(xié)議稱為互聯(lián)網(wǎng)協(xié)議IPInternet Protocol主要作用是將IP包送到相應(yīng)的地址。TCP/IP傳送層的作用類似于OSI傳送層的作用是使源和目標設(shè)備相互對話。 TCP/IP定義了兩種端到端協(xié)議第一種是傳輸控制協(xié)議TCPTransmission Control Protocol是可靠的面向連接的協(xié)議能確保拜特流無誤碼從源設(shè)備傳送到互聯(lián)網(wǎng)中的其他設(shè)備。它將輸入拜特流分割成較小的信息并將其每一個都放入互聯(lián)網(wǎng)層在接收端接收TC
32、P重組所接收的信息還原成原拜特流。TCP還進行流量控制確保較高速的發(fā)送端不會使較低速的接收設(shè)備過載。第二種協(xié)議是用戶數(shù)據(jù)報協(xié)議UDPUser Datagram Protocol是一個非確保的無連接協(xié)議用于那些不需要TCP順序和流量控制的應(yīng)用廣泛用于單項數(shù)據(jù)傳輸、服務(wù)器用戶類型的應(yīng)答應(yīng)用。在這些應(yīng)用中即時傳送比精確傳送更重要典型的應(yīng)用就是語言和視頻傳輸。 2.2 TCP/IP在網(wǎng)絡(luò)中的地位和作用 TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型是一種通信協(xié)議的7層抽象的參考模型其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理
33、層、數(shù)據(jù)鏈路層、網(wǎng)路層、傳輸層、話路層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了4層的層級結(jié)構(gòu)每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。這4層分別為應(yīng)用層、傳輸層、互連網(wǎng)絡(luò)層、網(wǎng)絡(luò)接口層。 網(wǎng)際協(xié)議IP是TCP/IP的心臟也是網(wǎng)絡(luò)層中最重要的協(xié)議。IP層接收由更低層網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動程序發(fā)來的數(shù)據(jù)包并把該數(shù)據(jù)包發(fā)送到更高層-TCP或UDP層相反IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的因為IP并沒有做任何事情來確認數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機的地址源地址和接收它的主機的地址目的地址。 圖1 OSI參考
34、模型和TCP/IP參考模型 本科畢業(yè)論文 ICMP協(xié)議和應(yīng)用研究 7 面向連接的服務(wù)例如Telnet、FTP、rlogin、X Windows和SMTP需要高度的可靠性所以它們使用了TCP。 2.3 ICMP的介紹 ICMP是“Internet Control Message Protocol”Internet控制報文協(xié)議的縮寫是一個非常重要的協(xié)議它對于網(wǎng)絡(luò)安全具有極其重要的意義。ICMP消息是隨IP數(shù)據(jù)包一起傳輸?shù)牡撓⒈旧硪彩且环N與IP協(xié)議并行運行在網(wǎng)絡(luò)層的協(xié)議。 它是TCP/IP協(xié)議族的一個子協(xié)議用于在IP主機、路由器之間傳遞控制消息??刂葡⑹侵妇W(wǎng)絡(luò)通不通、主機是否可達、路由是否可用
35、等網(wǎng)絡(luò)本身的消息。這些控制消息雖然并不傳輸用戶數(shù)據(jù)但是對于用戶數(shù)據(jù)的傳遞起著重要的作用。 我們在網(wǎng)絡(luò)中經(jīng)常會使用到ICMP協(xié)議只不過我們覺察不到而已。比如我們經(jīng)常使用的用于檢查網(wǎng)絡(luò)通不通的Ping命令這個“ping”的過程實際上就是ICMP協(xié)議工作的過程。還有其他的網(wǎng)絡(luò)命令如跟蹤路由的Tracert命令也是基于ICMP協(xié)議的。 2.3.1 ICMP協(xié)議報頭 ICMP消息使用了一種簡單的數(shù)據(jù)結(jié)構(gòu)其報頭部分由三個字段組成作為報頭第一項的類型type字段占用了一個字節(jié)用來表示該協(xié)議消息所實現(xiàn)的功能而占用一個字節(jié)長度的代碼code字段則用來進一步對消息內(nèi)容進行分類。 ICMP協(xié)議報頭最后一項是兩個字節(jié)
36、長度的校驗和而其后的ICMP消息內(nèi)容則與消息功能有關(guān)但所有消息內(nèi)容中都必須帶有引發(fā)錯誤消息和數(shù)據(jù)報的IP報頭和前個字節(jié)而且這些信息足以使其上層協(xié)議對自己的報頭進行檢查并根據(jù)ICMP消息內(nèi)容來執(zhí)行適當?shù)牟僮?。最重要的是ICMP協(xié)議不支持數(shù)據(jù)糾錯功能該協(xié)議只是通過向數(shù)據(jù)源回送錯誤消息來告訴路由錯誤。 類型 代碼 名稱 含義 0 * Echo replay 對ping的回應(yīng) 3 * Destination Unreachable 主機或路由器返回信息一些包未達到目的地 0 Net Unreachable 路由器配置錯誤或錯誤指定IP地址 1 Host Unreachable 最后一個路由器無法與主機
37、進行ARP通訊 4 * Source Quench Internet 阻塞 5 * Redirect 有人試圖重定向你的默認路由器可能Hacker試圖你 進行“man-in-middle”的攻擊使你的機器通過他們的機器路由。 8 * Echo Request ping 9 * Router Advertisement hacker可能通過重定向你的默認的路由器DoS攻擊你的Win9x 或Solaris。鄰近的Hacker也可以發(fā)動man-in-the-middle的攻擊 IP 報頭 類型 代碼 校驗和 至少字節(jié) 字節(jié)字節(jié) 字節(jié) ICMP消息內(nèi)容長度和格式不定 本科畢業(yè)論文 ICMP協(xié)議和應(yīng)用研
38、究 8 11 * Time Exceeded In Transit 因為超時包未達到目的地 12 * Parameter Problem 發(fā)生某種不正??赡苡龅搅斯?2.3.2 ICMP協(xié)議的消息 為了提前預(yù)防協(xié)議可能引發(fā)的問題ICMP協(xié)議技術(shù)規(guī)范中事先對消息進行了若干限制。比如說規(guī)定一個ICMP錯誤消息不能引發(fā)另一個ICMP錯誤消息。 1) 路由消息 ICMP路由消息大多用于請求得到可使用的路由器的清單或?qū)φ埱蟮膽?yīng)答應(yīng)答中包括可用路由器的清單清單中的每個路由都有優(yōu)先級別。 一類路由是在路由器過載情況下產(chǎn)生的。如果一個主機向路由器發(fā)送過量數(shù)據(jù)或者多個主機同時向路由器發(fā)送大量數(shù)據(jù)都可以導(dǎo)致路由
39、器癱瘓。但是這時路由器可以向發(fā)送方回送請求減速消息。每當路由器無法對接收的數(shù)據(jù)報進行處理時路由器就把該數(shù)據(jù)報丟棄并同時回送給數(shù)據(jù)源一個減速消息請求高速傳輸主機降低發(fā)送速率。收到減速消息的源主機將逐步降低速率直到錯誤消息消失為止然后再逐步提高發(fā)送速率直到錯誤消息出現(xiàn)為止。 另一類情況是發(fā)生在向一個錄由器發(fā)送數(shù)據(jù)報時另一個路由器可借助ICMP消息廣播一個更好的路由。稱為路由重新定向。 2) 無法到達消息 ICMP無法到達的消息表示在對數(shù)據(jù)報進行尋址過程中尋址失敗而引發(fā)的錯誤信息。舉個簡單的例子目標地址有誤的數(shù)據(jù)報可以引發(fā)ICMP協(xié)議將無法到達的消息回送給該數(shù)據(jù)報的原始發(fā)送主機。該消息一般用來指出目
40、標主機或網(wǎng)絡(luò)不存在或沒有應(yīng)答。引發(fā)該類錯誤消息的主要原因包括主機處于關(guān)機狀態(tài)網(wǎng)絡(luò)鏈路故障以及無法使用特定的協(xié)議等。 2.3.3 ping命令 ICMP協(xié)議提供的網(wǎng)絡(luò)工具之一就是網(wǎng)絡(luò)管理員最常使用的ping命令。ping命令可以把一個ICMP回顯請求發(fā)送給一個指定的主機接收該命令的主機通過回送一個ICMP回顯應(yīng)答來對收到的ICMP回顯請求進行應(yīng)答。ping命令的目的是測試主機是否存在。其實 ping命令是測試網(wǎng)絡(luò)中兩個主機是否可以實現(xiàn)最低級別的連通性。 2.3.4 路由跟蹤traceroute 路由跟蹤程序traceroute借助于ICMP TTL超時消息來巧妙地收集客戶端與服務(wù)器之間的路右信息
41、。該程序可輸出所有參與轉(zhuǎn)發(fā)數(shù)據(jù)包的路由器的名稱以及消息從主機到該路由器的往返傳輸時間。 網(wǎng)絡(luò)管理員可借助該工具來對響應(yīng)速度較慢的連接進行診斷通過觀察數(shù)據(jù)包從一個主機到另一個主機的傳輸路徑有助于幫助管理員確定網(wǎng)絡(luò)瓶頸的具體位置也就是應(yīng)答速度最慢的路由器或不合理的傳輸路徑。 與ping命令類似雖然路由跟蹤程序不能為網(wǎng)絡(luò)管理提供全面解決方案但該工具作為診斷工具來說還是非常有用的。 2.4 利用ICMP惡意攻擊影響網(wǎng)絡(luò)安全 當今世界上平均每20秒鐘就有一起黑客事件發(fā)生僅在美國每年造成的經(jīng)濟損失就超過100億美圓。ICMP協(xié)議對于網(wǎng)絡(luò)安全具有極其重要的意義。ICMP協(xié)議本身的特點決定了它非常容易被用于攻
42、擊網(wǎng)絡(luò)上的路由器和主機。服務(wù)拒絕攻擊DoS企圖通過使服務(wù)計本科畢業(yè)論文 ICMP協(xié)議和應(yīng)用研究 9 算機崩潰或把它壓跨來阻止提供服務(wù)服務(wù)拒絕攻擊是最容易實施的攻擊行為。由于在早期的階段路由器對包的最大尺寸都有限制許多操作系統(tǒng)對TCP/IP棧的實現(xiàn)在ICMP包上都是規(guī)定64KB并且在對包的標題頭進行讀取之后要根據(jù)該標題頭里包含的信息來為有效載荷生成緩沖區(qū)當產(chǎn)生畸形的聲稱自己的尺寸超過ICMP上限的包也就是加載的尺寸超過64K上限時就會出現(xiàn)內(nèi)存分配錯誤導(dǎo)致TCP/IP堆棧崩潰致使接受方當機。這就是所說的“ping of death”現(xiàn)在網(wǎng)絡(luò)上很多號稱能夠致使系統(tǒng)死機的軟件都是基于這個原理我們所熟悉
43、的工具“Winnuke”就是一例。對路由器而言向Intel Express Switch或其后的主機發(fā)送一畸形的ICMP包可能導(dǎo)致系統(tǒng)崩。通過本地或遠程發(fā)送的畸形包能蒙騙服務(wù)器。當服務(wù)器收到畸形的ICMP包時它將繼續(xù)檢查才對然而它將丟失所有的路由功能而且不將檢查其它連接了。主要影響Intel Express Switch 500 系列。另外Windows也有拒絕服務(wù)漏洞對 Win98 NT4/SP56 Win2K都有影響當如上系統(tǒng)受到非法碎片包包含不合法碎片 ICMP ECHOs (pings)和UDP packets 攻擊Windows 系統(tǒng)會拒絕服務(wù)。直至CPU占用率達到100%最后系統(tǒng)崩
44、潰。ICMP重定向提供了一種相當有效的DoS。不象ARP入口這些特定主機路由入口永不過期。注意攻擊沒有要求必須從局域網(wǎng)內(nèi)發(fā)起事實可以從廣域網(wǎng)上發(fā)起。如果子網(wǎng)所用DNS位于網(wǎng)關(guān)外產(chǎn)生一個到該DNS的錯誤路由是很容易的通過在Pwin98 下測試由ICMP 重定向包產(chǎn)生的路由都是掩碼為55的特定主機路由沒有辦法產(chǎn)生諸如這樣掩碼下的網(wǎng)絡(luò)路由。此外由ICMP重定向包產(chǎn)生的路由還是會過期的會被刪除但耗時很長。許多桌面操作系統(tǒng)線性搜索自己的路由表如果你利用ICMP重定向包加了太多特定主機路由到它們的路由表中極其容易造成系統(tǒng)的癱瘓。對于Unix系統(tǒng)雖然搜索路由表
45、時不是線性搜索但過多的特定主機路由會消耗大量的內(nèi)存空間。 于是就有了海信“設(shè)擂”50萬其欲為何的報道8月21日海信集團在中關(guān)村當代商城舉行新聞發(fā)布會海信“8341防火墻”懸賞“50萬”接受全國及至全球的計算機、網(wǎng)絡(luò)界高手檢測。雖然結(jié)果是沒有人能夠拿到防火墻后面的密碼但是防火墻遭到大量的ICMP攻擊導(dǎo)致防火墻的IP地址ping不通造成大量攻擂者以為海信公司言而無信取消了測試轉(zhuǎn)而怒牽于海信公司主頁于是8月24日海信集團網(wǎng)站被“黑”。海信公司自己提供的防火墻遭攻擊記錄如下 攻擊類型 攻擊次數(shù) 1 ICMP攻擊 334050 2 碎片攻擊 25524 3 端口掃描 4365 4 WEB服務(wù)攻擊 122
46、7 5 UDP攻擊 234 6 拒絕服務(wù)攻擊 12 事實可以看到造成海信服務(wù)器“拒絕服務(wù)”的絕大多數(shù)攻擊來自于ICMP攻擊。 此外向目標主機長時間、連續(xù)、大量地發(fā)送ICMP數(shù)據(jù)包也會最終使系統(tǒng)癱瘓。大量的ICMP數(shù)據(jù)包會形成“ICMP風暴”使得目標主機耗費大量的CPU資源處理疲于奔命。 不過對于防止拒絕服務(wù)攻擊有關(guān)部門也采取了一些相應(yīng)的措施 對于信息淹沒攻擊我們應(yīng)關(guān)掉可能產(chǎn)生無限序列的服務(wù)來防止這種攻擊。比如我們可以在服務(wù)器端拒絕所有的ICMP包或者在該網(wǎng)段路由器上對ICMP包進行帶寬限制控制其在一定的范圍內(nèi)。 第三章 ICMP部分功能的模擬實現(xiàn) 本科畢業(yè)論文 ICMP協(xié)議和應(yīng)用研究 10 3
47、.1 背景 3.1.1 ping命令的深入認識 ICMP協(xié)議提供的網(wǎng)絡(luò)工具之一就是網(wǎng)絡(luò)管理員最常使用的ping命令。ping命令可以把一個ICMP回顯請求發(fā)送給一個指定的主機接收該命令的主機通過回送一個ICMP回顯應(yīng)答來對收到的ICMP回顯請求進行應(yīng)答。 ping命令的目的是測試主機是否存在。其實ping命令是測試網(wǎng)絡(luò)中兩個主機是否可以實現(xiàn)最低級別的連通性。 它的格式是 ping <IP主機名|IP地址> (注:若只用IP主機名的話則該命令不僅可用來校驗兩個主機之間的連通性而且還可以測試本地主機是否可以對主機名正確解析) 例如使用ICMP協(xié)議來進行主機探測 -1ICMP ECHO(
48、Type 8) 和ECHO Reply (Type 0) 我們使用一個ICMP ECHO數(shù)據(jù)包來探測主機地址是否存活當然在主機沒有被配置為過濾ICMP形式通過簡單的發(fā)送一個ICMP ECHO(Type 8)數(shù)據(jù)包到目標主機如果ICMP ECHO Reply(ICMP type 0)數(shù)據(jù)包接受到說明主機是存活狀態(tài)。 如果沒有就可以初步判斷主機沒有在線或者使用了某些過濾設(shè)備過濾了ICMP 的REPLY。 - | | | - ICMP ECHO request -| | |HOST| -> |HOST| | | | A | - | B | | | | | 如果存活或者沒有過濾 | | | |
49、- 將返回ICMP RCHO REPLY - | | | - 這種機制就是我們通常所用的ping命令來檢測目標主機是否可以ping到。 下面是兩個LINUX機器的演示 rootxundi /root# ping PING () from : 56(84) bytes of data. 64 bytes from : icmp_seq=0 ttl=255 time=4.4 ms 64 bytes from : icmp_seq=1 ttl=255 time=5.9 ms 64 bytes from : icmp_seq=2 ttl=255 time=5.8 ms - ping statistics - 3 packets transmitted 3 packets received 0% packet loss round-trip
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園小班數(shù)學活動教案掛燈籠
- 2025年國際商務(wù)專業(yè)考試題及答案
- 2025年公共政策分析師資格考試題及答案
- 地鐵幼兒科普課件
- 2025年中華文化與傳統(tǒng)藝術(shù)專業(yè)能力深化考試試卷及答案
- 2025年社區(qū)治理專業(yè)職業(yè)能力測試試題及答案
- 2025年船舶工程與設(shè)計技術(shù)試卷及答案
- 2025屆韶關(guān)市重點中學八年級英語第二學期期中質(zhì)量跟蹤監(jiān)視模擬試題含答案
- 山東省淄博市臨淄區(qū)召口鄉(xiāng)中學2025年英語七下期末復(fù)習檢測試題含答案
- 《春》課件 統(tǒng)編版七年級上冊語文
- 杭州市富陽區(qū)衛(wèi)健系統(tǒng)事業(yè)單位招聘筆試真題2024
- 2023-2024學年貴州省黔南州都勻市統(tǒng)編版三年級下冊期末考試語文試卷
- 2025鋼管租賃合同樣本
- 2024年福建省廈門市思明區(qū)初中畢業(yè)班適應(yīng)性練習(二)地理試卷
- 醫(yī)學多學科診療制度
- 游泳救生員勞務(wù)合同協(xié)議
- 國家開放大學2025春《公共部門人力資源管理》形考任務(wù)1-4參考答案
- 本人飲酒免責協(xié)議書
- 2025年臨床執(zhí)業(yè)醫(yī)師考試重要技能試題及答案
- 歷史七年級歷史下冊期末測試卷(1~21課) 2024-2025學年七年級歷史下(統(tǒng)編版2024)
- 住宅性能評定技術(shù)標準
評論
0/150
提交評論