1. 程式人生 > >ICMP報文

ICMP報文

紫色代表一級目錄
粉紅代表二級目錄
藍色代表三級目錄
紅色代表關鍵字
橙色代表說明

ICMP報文
  為了更有效地轉發 IP 資料報和提高交付成功的機會,在網際層使用了網際控制報文協議 ICMP (Internet Control Message Protocol)。
  ICMP 是網際網路的標準協議。
  ICMP 允許主機或路由器報告差錯情況和提供有關異常情況的報告。
  但 ICMP 不是高層協議(看起來好像是高層協議,因為 ICMP 報文是裝在 IP 資料報中,作為其中的資料部分),而是 IP 層的協議。(但屬於IP層協議
  ICMP 報文的格式
    在這裡插入圖片描述
  ICMP 報文的種類


    ICMP 報文的種類有兩種,即 ICMP 差錯報告報文ICMP 詢問報文
    ICMP 差錯報告報文
      ICMP差錯報文伴隨著丟棄出錯資料產生的。一旦IP發現出錯,首先丟棄出錯的IP資料報,之後發出ICMP差錯報文。
      常用的ICMP 差錯報告報文
        目的地不可達
        超時
        引數錯
        重定向(Redirect)
      ICMP差錯報文— 目的地不可達
        當網路節點認為某資料報的目的地不可達時,就向該資料報的源主機發送一個目的地不可達的ICMP分組。
        在這裡插入圖片描述
      ICMP差錯報文 — 超時

        當網路結點發現某資料報的TTL域為零,需要丟棄此資料報時,需要向該資料報的源主機告知超時出錯。
        當目的主機在分段重組時,規定時間內由於分段丟失未完成重組,需要傳送超時報文。
        在這裡插入圖片描述
      ICMP差錯報文 — 引數錯
        當網路結點或主機發現資料報中的報頭引數出錯(例如選項出錯,無效報頭等)時,傳送引數錯報文。
        在這裡插入圖片描述
      ICMP差錯報文 — 重定向
        在Internet中,主機在啟動時只知道最少的尋徑資訊,保證主機將資料報傳送出去,但未必是最優路由。啟動後,通過ICMP重定向報文,在資料傳輸過程中,主機可以不斷從同一個網路的網路結點中得到新的路由資訊。(尋找最佳路由

        在這裡插入圖片描述
      不應傳送 ICMP 差錯報告報文的幾種情況
        對 ICMP 差錯報告報文不再發送 ICMP 差錯報告報文。
        對第一個分片的資料報片的所有後續資料報片都不傳送 ICMP 差錯報告報文。
        對具有多播地址的資料報都不傳送 ICMP 差錯報告報文。
        對具有特殊地址(如127.0.0.0 或 0.0.0.0)的資料報不傳送 ICMP 差錯報告報文。
    ICMP 詢問報文
      回送請求和回答報文
      時間戳請求和回答報文
      
      ECHO請求和應答
        用於測試目的地址的可達性,ping命令實現了ECHO請求/應答的功能。
        在這裡插入圖片描述
      時間戳請求和應答報文
        用於時鐘同步一個最簡單的方法就是ICMP協議中的時間戳請求/應答報文。ICMP先利用時間戳請求和應答報文從其他機器處得到其當前時間,經過計算後再同步時鐘。(用於時鐘同步
        在這裡插入圖片描述
  ICMP報文型別總結
    
    在這裡插入圖片描述
  有心人可以嘗試ping命令和tracert命令(linux中的tranceroute命令)