インターネット制御メッセージプロトコル(ICMP)は、 インターネットプロトコル(IP)ネットワーキングのためのネットワークプロトコルです。 ICMPは、アプリケーションデータではなく、ネットワーク自体のステータスに関する制御情報を転送します。 IPネットワークでは、適切に機能するためにICMPが必要です。
ICMPメッセージは、 TCPおよびUDPとは異なる特定の種類のIPメッセージです。
実際に最もよく知られているICMPメッセージングの例は、ICMPを使用してリモートホストをプローブしてプローブメッセージの全体的な往復時間を測定するpingユーティリティです。
また、ICMPは、特定の送信元と宛先の間の経路上の中間ルーティングデバイス(「ホップ」)を識別するtracerouteのような他のユーティリティもサポートしています。
ICMPとICMPv6
ICMPサポート元のインターネットプロトコルバージョン4(IPv4)ネットワークの元の定義。 IPv6には、ICMPv6と呼ばれるプロトコルの改訂された形式が組み込まれており、元のICMPと区別されます(ICMPv4と呼ばれることもあります)。
ICMPメッセージタイプとメッセージフォーマット
ICMPメッセージは、コンピュータネットワークの運用および管理に不可欠なデータを運ぶ。 プロトコルは、応答しないデバイス、伝送エラー、およびネットワーク輻輳の問題などの状態を報告します。
IPファミリの他のプロトコルと同様に、ICMPはメッセージヘッダーを定義します。 ヘッダーには、次の順序で4つのフィールドが含まれます。
- タイプ(8 ビット )
- コード(8ビット)
- チェックサム(16ビット)
- ICMPデータ(32ビット)
ICMPは特定のメッセージタイプのリストを定義し、それぞれに固有の番号を割り当てます。
以下の表に示すように、ICMPv4とICMPv6はいくつかの一般的なメッセージタイプ(ただし、異なる番号であることが多い)とそれぞれ固有のメッセージを提供します。 (一般的なメッセージタイプは、IPバージョン間で動作が少し異なる場合があります)。
v4# | v6# | タイプ | 説明 |
---|---|---|---|
0 | 129 | エコー応答 | エコー要求に応じて送信されたメッセージ(下記参照) |
3 | 1 | 行き先に到達できません | さまざまな理由のためにIPメッセージが配信不能であることに応答して送信されます。 |
4 | - | ソースクエンチ | デバイスは、このメッセージを、処理できるよりも速い速度で着信トラフィックを生成している送信者に送り返すことができます。 (他の方法に替わる) |
5 | 137 | リダイレクトメッセージ | ルーティング装置は、IPメッセージが変更されるべきである要求されたルートの変化を検出した場合、この方法を生成することができる。 |
8 | 128 | エコーリクエスト | pingユーティリティがターゲットデバイスの応答性をチェックするために送信するメッセージ |
11 | 3 | 時間超過 | 受信データが "ホップ"カウント制限に達すると、ルータはこのメッセージを生成しました。 tracerouteによって使用されます。 |
12 | - | パラメータ問題 | 受信したIPメッセージの破損または欠落データをデバイスが検出したときに生成されます。 |
13,14 | - | タイムスタンプ(リクエスト、返信) | 2つのデバイス間のタイムクロックをIPv4で同期させるように設計されています(他のより信頼性の高い方法ではなくなりました)。 |
- | 2 | パケットが大きすぎます | ルーターは、長さ制限を超えて宛先に転送できないメッセージを受信すると、このメッセージを生成します。 |
プロトコルは、追加情報を共有するために選択されたメッセージタイプに応じて、コードおよびICMPデータフィールドを埋め尽くします。 たとえば、Destination Unreachableメッセージは、障害の性質に応じてさまざまなCode値を持つことができます。