天天看點

【計算機網絡】網絡層 : ICMP 協定 ( ICMP 差錯封包 | 差錯封包分類 | ICMP 詢問封包 | ICMP 應用 | Ping | Traceroute )

文章目錄

  • 一、ICMP 協定
  • 二、ICMP 協定 簡介
  • 三、ICMP 五種差錯報告封包
  • 四、ICMP 差錯封包形成
  • 五、ICMP 差錯封包 不發送 情形
  • 六、ICMP 詢問封包
  • 七、ICMP 應用

一、ICMP 協定

網絡層 協定 :

① IP 協定 : IP 協定是 網絡層 核心協定 ;

② ARP 協定 : ARP 協定 是 網絡層 與 資料鍊路層 之間的協定 , 通過 IP 位址查找 實體位址 ;

③ ICMP 和 IGMP 協定 : ICMP 和 IGMP 協定 是 網絡層 與 傳輸層 之間的協定 ; 目的是更加有效的轉發 IP 資料報 , 提高傳遞的成功率 ;

二、ICMP 協定 簡介

ICMP 協定 簡介 :

① ICMP 協定 全稱 : 網際控制封包協定 ;

② ICMP 協定 功能 :

  • 差錯報告 : 對應 發送 差錯封包 ;
  • 網絡探尋 : 對應 發送 探尋封包 ;

③ ICMP 封包 在 IP 資料報中位置 : ICMP 封包 屬于 IP 資料報 的 資料部分 ;

ICMP 封包内容 : 其中的類型是 差錯封包 / 探詢封包 ;

【計算機網絡】網絡層 : ICMP 協定 ( ICMP 差錯封包 | 差錯封包分類 | ICMP 詢問封包 | ICMP 應用 | Ping | Traceroute )

三、ICMP 五種差錯報告封包

ICMP 五種差錯報告封包 :

① 終點不可達封包 : 路由器 / 主機 不能傳遞資料報時 , 就會向源點 發送 終點不可達封包 ;

② 源點抑制封包 : 路由器 / 主機 擁塞 , 丢棄 IP 資料報 , 向源點發送源點抑制封包 , 讓源點降低發送速率 ;

③ 時間超過封包 :

  • 生存周期為

    0 : 路由器 生存周期 TTL =

    0 時 , 丢棄該封包 , 同時向源點發送 時間超過封包 ;

  • 分組丢失 : 終點 在預定時間内 沒有收到 資料報的全部資料分組時 , 就會将已收到的資料分組全部丢棄 , 向源點發送時間超過封包 ;

④ 參數問題封包 : 路由器 / 主機 收到的 資料報 首部 字段由錯誤值 , 丢棄該資料報 , 向源點發送 參數問題封包 ;

⑤ 改變路由封包 : 路由器 将 改變路由封包 發送給主機 , 讓主機下次将資料報發送給另外的路由器 ; 又稱為 “重定向封包” ;

四、ICMP 差錯封包形成

ICMP 差錯封包形成 :

① 取出 IP 資料報内容 : 取出 IP 資料報 首部 , 以及 資料部分的 前

8

8

8 位元組 ;

② ICMP 差錯封包 組成 : ICMP 前

8

8

8 個位元組 + IP 資料報 首部 + IP 資料報資料部分前

8

8

8 位元組 ;

③ 組裝 IP 資料報 : 将 ICMP 資料報 裝入 IP 資料報 資料部分 ;

【計算機網絡】網絡層 : ICMP 協定 ( ICMP 差錯封包 | 差錯封包分類 | ICMP 詢問封包 | ICMP 應用 | Ping | Traceroute )

五、ICMP 差錯封包 不發送 情形

ICMP 差錯封包 不發送 情形 :

① ICMP 差錯封包錯誤 : IP 資料報 中 , 如果 ICMP 差錯封包部分出錯 , 就不用再發送 ICMP 差錯報告封包了 ;

② 後續資料報分片 : ICMP 差錯封包隻針對資料報的第一個分片 , 後續分片就不發送 ICMP 差錯報告封包了 ;

③ 多點傳播位址 : 如果 IP 資料報的位址是 多點傳播位址 , 不發送 ICMP 差錯封包 ;

④ 特殊位址 : 如果 IP 資料報的位址是 特殊位址 , 不發送 ICMP 差錯封包 ; 如 : 預設路由位址 等 ;

六、ICMP 詢問封包

ICMP 詢問封包 :

① 回送請求 和 回答封包 : 主機 / 路由器 詢問特定主機 , 目的主機收到該封包後 , 必須給源主機 發送 ICMP 回答封包 ; 目的是 測試該 目的主機是否可達 ;

② 時間戳請求 和 回答封包 : 請求 主機 / 路由器 目前的日期 和 時間 ; 用于進行時鐘同步 和 時間測量 ;

七、ICMP 應用

ICMP 應用 :

① PING : 測試連通性 , 使用 ICMP 回送請求 和 回答封包 ;

② Traceroute : 追蹤 分組 從原點 到 終點 路徑 , 使用 ICMP 時間超過差錯報告封包 ;

Traceroute 應用 細節 :

源主機 與 目的主機之間 有

n

n

n 個路由器 ;

1

1

1 個資料報 TTL =

1

1

1 , 第

1

1

1 個路由器收到該資料報 , 發現其生存周期為

0 , 向源主機回送 ICMP 時間超過差錯報告封包 , 這樣就得到了第

1

1

1 個路由器的位址 ;

繼續閱讀