文章目錄
- 一、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 五種差錯報告封包 :
① 終點不可達封包 : 路由器 / 主機 不能傳遞資料報時 , 就會向源點 發送 終點不可達封包 ;
② 源點抑制封包 : 路由器 / 主機 擁塞 , 丢棄 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 差錯封包錯誤 : 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 個路由器的位址 ;