第八章 ICMP

Internet控制報文協議
與IP結合使用,以便提供與IP協議層配置和IP數據包處置相關的診斷和控制信息。

常被人為是在網絡層,但實際上該協議通過ip協議傳輸。但確切的說他位于網絡層和傳輸層之間的。

ICMP報文可有網絡層,傳輸層或者用應用觸發(fā)執(zhí)行。并不能為ip層提供可靠性,只能表明某些類別的故障和配置信息。
丟包不會觸發(fā)ICMP報文。

報文

ICMP IPv4

上面的圖貌似不準確啊。
頭部屬于IP頭部,然后后面跟地址之類的啊。
然后才是ICMP報文

這個靠譜

ICMP報文使用的是IP報文封裝,在IP頭部協議號為1。
IP報文的數據部分為ICMP報文。
其種類型和代碼從下表中查詢:

類型&代碼

當發(fā)送一個ICMP差錯報文,它包含了一個完整的源自引起差錯的數據報IP頭部副本(即生成導致錯誤的數據報的IP頭部,包括任何IP選項),再加上原始數據報的IP有效載荷區(qū)中的任何其他數據,同時要確保生成的IP/ICMP的數據報的大小不會超過一個特定的值。IPv4,這個值是576字節(jié)。

ICMP報文處理

當接收到ICMP報文時,如果是請求類的報文被操作系統(tǒng)自動處理。
而差錯類報文則傳遞個傳輸層處理。
當接收到ICMP重定向報文時,主機更新路由表。

ICMP差錯報文

盡管在大多數情況下,錯誤的包傳送應該給出ICMP報文,但是在特殊情況下,是不產生ICMP錯誤報文的。如下:
ICMP差錯報文不會產生ICMP差錯報文(出IMCP查詢報文)(防止IMCP的無限產生和傳送)
目的地址是廣播地址或多播地址的IP數據報。
作為鏈路層廣播的數據報。
不是IP分片的第一片。
源地址不是單個主機的數據報。這就是說,源地址不能為零地址、環(huán)回地址、廣播地 址或多播地址。

上面的規(guī)則都是為了防止ICMP數據包無限重復。

限制生成ICMP差錯報文的原因是限制生成所謂的廣播風暴。

重定向

當一個路由器收到一個來自主機的數據報,當他發(fā)現發(fā)送方應該有更好的投遞或者跳轉ip時,會向發(fā)送方發(fā)送重定向報文,并將數據報投遞到正確的路由。
主要是在一個子網中存在兩個路由器,而發(fā)送方第一跳的路由不是最佳選擇時,路由器會發(fā)送該報文。
發(fā)送方接收到重定向報文,然后更新自己的路由表。

重定向報文

重定向報文

ICMP查詢報文

目前唯一保存下來的廣泛使用的ICMP查詢/信息類報文是回顯請求/應答報文,通常稱為ping,以及路由器發(fā)現報文。
ICMP協議不像傳輸層協議那樣有端口號。
所以區(qū)別不同進城的ping。
linux中,發(fā)送進程的進程ID通常被放置在標識符字段。
window中不知道放的是什么玩意。

在window下兩個cmd進行ping


window ping

該字段放的應該是區(qū)分線程的,(同一個cmd不同時間的ping不同,因為ping以后fork了一個單獨的進城)。
圖中66,和61,為發(fā)送順序,接受時會帶有該序號。

還可以ping廣播地址,能用于快速廣播本主機系統(tǒng)的ARP表。
響應的目標系統(tǒng)位于同一個子網內時,將會觸發(fā)ARP請求查找請求發(fā)送者的鏈路層地址。這么做,將會在每個響應者和請求發(fā)送者之間交換。這也導致回顯請求報文的發(fā)送者學習所有響應者的鏈路層地址。

IPv4的路由器發(fā)現

也是采用ICMP來實現的。
TTL= 1 ,這樣路由器會返回超時。
路由器發(fā)現的主要目的是讓一臺主機學習到它所在的本地子網中的所有路由器,因此它能夠從中選擇一臺作為默認路由

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,195評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,375評論 6 174
  • 9.1 引言 選路是IP最重要的功能之一。圖9-1是IP層處理過程的簡單流程。需要進行選路的數據報可以由本地主機產...
    張芳濤閱讀 1,251評論 0 2
  • 11.1 引言 UDP是一個簡單的面向數據報的運輸層協議:進程的每個輸出操作都正好產生一個UDP數據報,并組裝成一...
    張芳濤閱讀 2,971評論 1 6
  • 第二章 物理層 頻分復用:頻分復用的用戶在同樣的時間占用不同的帶寬資源(頻率帶寬) 時分復用:時分復用的用戶在不同...
    PramaWells閱讀 4,026評論 1 3

友情鏈接更多精彩內容