摘要:當發送一份ICMP差錯報文時,報文始終包含IP的首部和產生ICMP差錯報文的IP數據報的前8字節。這樣,接收ICMP差錯報文的模塊就會把它與某個特定的協議(根據IP數據報首部中的協議字段來判斷)和用戶進程(根據包含在IP數據報前8字節中的TCP或UDP報文首部中的TCP或UDP端口號來判斷)聯系起來。下列情況都不會導致產生ICMP差錯報文:(
當發送一份ICMP差錯報文時,報文始終包含IP的首部和產生ICMP差錯報文的IP數據報的前8字節。這樣,接收ICMP差錯報文的模塊就會把它與某個特定的協議(根據IP數據報首部中的協議字段來判斷)和用戶進程(根據包含在IP數據報前8字節中的TCP或UDP報文首部中的TCP或UDP端口號來判斷)聯系起來。
下列情況都不會導致產生ICMP差錯報文:
(1)ICMP差錯報文(但是,ICMP査詢報文可能會產生ICMP差錯報文);
(2)目的地址是廣播地址或多播地址(D類地址)的IP數據報;
(3)作為數據鏈路層廣播的數據報:
(4)不是IP分片的第一片:
(5)源地址不是單個主機的數據報,這就是說,源地址不能為零地址、環回地址、廣播地址或多播地址。
這些規則是為了防止過去允許ICMP差錯報文對廣播分組響應所帶來的廣播風暴。
以下簡要介紹ICMP各類報文的含義。
目標不可到達(類型3):如果路由器判斷出不能把IP數據報送達目標主機,則向源主機返回這種報文。另一種情況是目標主機找不到有關的用戶協議或上層服務訪問點,也會返回這種報文。出現這種情況的原因可能是IP頭中的字段不正確:或是數據報中說明的源路由無效;也可能是路由器必須把數據報分段,但IP頭中的D標志已置位。
超時(類型11):路由器發現IP數據報的生存期已超時,或者目標主機在一定時間內無法完成重裝配,則向源端返回這種報文。
源抑制(類型4):這種報文提供了一種流量控制的初等方式。如果路由器或目標主機緩沖資源耗盡而必須丟棄數據報,則每丟棄一個數據報就向源主機發回一個源抑制報文,這時源主機必須減小發送速率。另一種情況是系統的緩沖區已用完,并預感到行將發生擁擠,則發出源抑制報文。但是與前一種情況不同,涉及的數據報尚能提交給目標主機。
參數問題(類型12):如果路由器或主機判斷出IP頭中的字段或語義出錯,則返回這種報文,報文頭中包含一個指向出錯字段的指針。
路由重定向(類型5):路由器向直接相連的主機發出這種報文,告訴主機一個更短的路徑。例如,路由器R1收到本地網絡上的主機發來的數據報,R1檢査它的路由表,發現要把數據報發往網絡X,必須先轉發給路由器R2,而路由器R2又與源主機在同一網絡中。于是路由器R1向源主機發出路由重定向報文,把路由器R2的地址告訴它。
回聲(請求/響應,類型8/0):用于測試兩個節點之間的通信線路是否暢通。收到回聲請求的節點必須發出回聲響應報文。該報文中的標示符和序列號用于匹配請求和響應報文。當連續發出回聲請求時,序列號連續遞增。常用的ping程序就是這樣工作的。
時間戳(請求/響應,類型13/14):用于測試兩個節點之間的通信延遲時間。請求方發出本地的發送時間,響應方返回自己的接收時間。這種應答過程如果結合強制路由的數據報實現,則可以測量出指定線路上的通信延遲。
地址掩碼(請求/響應,類型17/18):主機可以利用這種報文獲得它所在的LAN的子網掩碼。首先主機廣播地址掩碼請求報文,同一LAN上的路由器以地址掩碼響應報文回答,告訴請求方需要的子網掩碼。通過子網掩碼可以判斷出數據報的目標節點與源節點是否在同一LAN中。
返回目錄:通信工程師考試培訓互聯網技術重點匯總
編輯相關推薦:
[1] [2]
通信工程師備考資料免費領取
去領取
專注在線職業教育25年