Internet控制消息協議(ICMP)是用於Internet協議(IP)網絡的網絡協議 。 ICMP為網絡本身的狀態而不是應用程序數據傳輸控制信息。 IP網絡需要ICMP才能正常工作。
實踐中ICMP消息的最著名的例子是ping實用程序,該實用程序使用ICMP來探測遠程主機的響應能力並測量探測消息的總體往返時間。
ICMP還支持traceroute等其他實用程序,用於識別指定源和目標之間路徑上的中間路由設備(“跳”)。
ICMP與ICMPv6
ICMP支持的Internet協議版本4(IPv4)網絡的原始定義。 IPv6包含了一種通常稱為ICMPv6的協議的修訂形式,以將其與原始ICMP(有時稱為ICMPv4)區分開來。
ICMP消息類型和消息格式
ICMP消息攜帶對計算機網絡的操作和管理至關重要的數據。 該協議報告條件,如無響應設備,傳輸錯誤和網絡擁塞問題。
像IP家族中的其他協議一樣,ICMP定義了一個消息頭。 標題按以下順序包含四個字段:
- 類型(8 位 )
- 代碼(8位)
- 校驗和(16位)
- ICMP數據(32位)
ICMP定義了特定消息類型的列表並為每個消息分配一個唯一的編號。
如下表所示,ICMPv4和ICMPv6提供了一些常見的消息類型(但通常具有不同的數字),並且還提供了各自獨特的消息。 (常見的消息類型也可能在IP版本之間的行為上略有不同)。
v4# | v6# | 類型 | 描述 |
---|---|---|---|
0 | 129 | 迴聲答复 | 為響應回應請求而發送的消息(請參見下文) |
3 | 1 | 目的地無法到達 | 針對由於各種原因無法傳送的IP消息而發送。 |
4 | - | 來源淬火 | 設備可以將此消息發送回以比它可以處理的速度更快的速率生成傳入流量的發件人。 (被其他方法取代) |
五 | 137 | 重定向消息 | 如果路由設備檢測到請求路由中的IP地址更改,則路由設備可以生成此方法。 |
8 | 128 | 迴聲請求 | 通過ping實用程序發送的消息來檢查目標設備的響應性 |
11 | 3 | 超時 | 當傳入數據達到其“跳數”限制時,路由器生成此消息。 由traceroute使用。 |
12 | - | 參數問題 | 當設備檢測到傳入IP消息中的數據損壞或丟失時生成。 |
13,14 | - | 時間戳(請求,回复) | 旨在通過IPv4在兩台設備之間同步時鐘,(被其他更可靠的方法所取代)。 |
- | 2 | 數據包太大 | 路由器在收到由於超出長度限製而無法轉發到目的地的消息時生成此消息。 |
該協議根據選擇的消息類型填充Code和ICMP數據字段以共享附加信息。 例如,根據故障的性質,目標無法到達的消息可以具有許多不同的代碼值。