網際控制報文協議ICMP(Internet Control Message Protocol)(詳解)

一、回顧下TCP/IP協議棧

在這裏插入圖片描述

二、ICMP(Internet Control Message Protocol)協議概述

在這裏插入圖片描述
在這裏插入圖片描述

三、ICMP協議的組成

在這裏插入圖片描述

四、ICMP差錯報告報文(5種):

  1. 終點不可達:當路由器或主機不能交付數據報時就向源點發送終點不可達報文。(無法交付)
  2. 原點抑制:當路由器或主機由於擁塞而丟棄數據報時,就向源點發送源點抑制報文,使源點知道應當把數據報的發送速率放慢。(擁塞丟數據)(現在已不再使用)
  3. 時間超過:當路由器收到生存時間TTL=0的數據報時,除丟棄該數據報外,還要向源點發送時間超過報文。當終點在預先規定的時間內不能收到一個數據報的全部數據報片時,就把已收到的數據報片都丟棄,並向源點發送時間超過報文。(TTL=0)
  4. 參數問題:當路由器或目的主機收到的數據報的首部中有的字段的值不正確時,就丟棄該數據報,並向源點發送參數問題報文。(首部字段有問題)
  5. 改變路由(重定向):路由器把改變路由報文發送給主機,讓主機知道下次應將數據報發送給另外的路由器(可通過更好的路由)。(值得擁有更好的路由)

4.1 ICMP差錯報告報文的數據字段:

ICMP不是高層協議,而是網際層(或稱IP層)的協議。
ICMP報文被封裝在IP數據報中發送
在這裏插入圖片描述

4.2 不應發送ICMP差錯報文的情況:

  1. 對ICMP差錯報告報文不再發送ICMP差錯報告報文。
  2. 對第一個分片的數據報片的所有後續數據報片都不發送ICMP差錯報告報文。
  3. 對具有組播地址的數據報都不發送ICMP差錯報告報文。
  4. 對具有特殊地址(如127.0.0.0或0.0.0.0)的數據報不發送ICMP差錯報告報文。

五、ICMP詢問報文:

  1. 回送請求和回答報文:主機或路由器向特定目的主機發出的詢問,收到此報文的主機必須給源主機或路由器發送ICMP回送回答報文。測試目的站是否可達以及瞭解其相關狀態。
  2. 時間戳請求和回答報文:請某個主機或路由器回答當前的日期和時間。用來進行時鐘同步和測量時間。
  3. 掩碼地址請求和回答報文(現在已經不再使用)
  4. 路由器詢問和通告報文(現在已經不再使用)

六、ICMP的應用

  1. PING:測試兩個主機之間的連通性,使用了ICMP回送請求和回答報文
  2. Traceroute:跟蹤一個分組從源點到終點的路徑,使用了ICMP時間超過差錯報告報文ICMP回送請求和回答報文
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章