icmp協議的功能主要有:
確認ip包是否成功到達目標位址
通知在傳送過程中ip包被丟棄的原因
注意:icmp是基於ip協議工作的,但是它並不是傳輸層的功能,因此仍然把它歸結為網路層協議
icmp只能搭配ipv4使用,如果是ipv6的情況下, 需要是用icmpv6
icmp報文格式和各個欄位的含義
icmp報文的格式如下:
icmp協議封裝在ip協議中,icmp有很多報文型別,每乙個報文型別又各自不相同,所以無法找到乙個統一的報文格式來進行說明,但是他們的前四個位元組的報文格式是相同的。
如圖所示:
1.校驗和:佔兩個位元組,是對整個報文的報文資訊的校驗。
2.型別:佔乙個位元組:用來表示icmp的訊息型別。
3.**:佔乙個位元組:用來對型別的進一步說明。
icmp資料報型別
報告ip資料報在傳輸中的差錯是icmp報文最基本的功能,icmp差錯報文有如下特點:
(1) icmp差錯報文都是由路由器傳送到源主機的,因為ip資料報中含有源主機的ip位址,報告給源主機是最可行的方案,另外,發出ip資料報的源主機最需要知道資料是否到達目標主機。
(2) icmp差錯報文只提供ip資料報在傳輸過程中的差錯報告,並不規定對各類差錯應採取什麼樣的處理措施。具體對差錯的處理,由收到icmp差錯報文的源主機將相應的差錯與應用程式聯絡起來才能進行相應的差錯處理。
(3) icmp差錯報文不享受任何優先權,也沒有特別的可靠性保證措施,與普通的ip資料報一樣進行傳輸,傳輸過程中可能被丟失、損壞,甚至被拋棄。
(4) icmp差錯報文是伴隨著拋棄出錯的ip資料報而產生的。
(5) 當路由器傳送乙份引數錯誤等的icmp差錯報文時,icmp報文資料區始終包含產生icmp差錯報文的ip資料報的頭部和其資料區的前8個位元組(64位)。
icmp控制報文
1.擁塞控制與源站抑制報文
當乙個路由器接收ip資料報的速度比其處理ip資料報的速度快,或乙個路由器傳入資料報的速率大於傳出資料報的速率時,就會產生擁塞(congestion)現象。
這時路由器可以通過傳送源站抑制(source quench)報文來抑制源主機傳送ip資料報的速率,避免可能產生的差錯。
源站抑制報文的型別欄位為4,**字段只能為0。源站抑制技術進行擁塞控制的方法如下:
(1) 當路由器發生擁塞時,便發出icmp源站抑制報文。擁塞的判別可以用三種方法:一是檢查路由器快取區是否已滿;二是給快取區輸出佇列設定乙個閾值,判斷佇列中資料報的個數是否超過閾值;三是檢測某輸入線路的傳輸率是否過高。
(2) 源主機收到抑制報文後,按一定的速率降低發往目標主機的資料報傳輸率。
(3) 如果在一定的時間間隔內源主機沒有收到抑制報文,便認為擁塞已解除,源主機可以逐漸恢復到原來資料報的流量。
2. 路由控制與重定向報文
假如源主機要向目標主機傳送ip資料報,源主機的預設路由是路由器1,則源主機先把ip資料報送到路由器1,再由路由器1進行路由選擇。路由器1經過選路後,把ip資料報送到路由器2。
同時路由器1也發現源主機要傳送到目標主機的ip資料報以後可以直接傳送到路由器2(因為路由器1和路由器2同在乙個網路中),則路由器1向源主機傳送乙個icmp重定向報文,告訴它可以直接把ip資料報送到路由器2。這樣,就使源主機始終保持著乙個動態的、既小且優的路徑表。
面試題 ICMP協議簡介
l icmp網際控制報文協議,通過它可以知道故障的具體原因和位置。l 由於ip不是為可靠傳輸服務設計的,icmp的目的主要是用於在tcp ip網路中傳送出錯和控制訊息。l icmp的錯誤報告只能通知出錯資料報的源主機,而無法通知從源主機到出錯路由中途所的所有路由器。l icmp資料報是封裝在ip資料...
關於ICMP的小總結
icmp分屬於網路層,用來傳遞差錯報文以及其他需要注意的資訊。ping程式中就是通過icmp報文資料中存放傳送請求的時間值來計算往返時間。traceroute程式是通過icmp和ip報文中的ttl選項結合起來來實現的 ttl是由傳送端初始設定的乙個8bit欄位 請求端傳送乙個ttl欄位為1的ip資料...
網路層協議簡介之ICMP和ARP
二 icmp與封裝 三 arp協議與arp欺騙 總結1.定義了基於ip位址的邏輯位址 2.連線不同的媒介 3.選擇資料傳輸的最佳路徑 協議欄位的上五層 紅色圈出來的五層 總共佔20個位元組。icmp資料的封裝過程 arp address resolution protocol 即位址解析協議,是根據...