ICMP報文
阿新 • • 發佈:2018-12-31
紫色代表一級目錄
粉紅代表二級目錄
藍色代表三級目錄
紅色代表關鍵字
橙色代表說明
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命令)