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