Internet Control Message Protocol
2 番目のネットワーク・レベル・プロトコルは、インターネット制御メッセージ・プロトコル (ICMP) です。 ICMP は、すべての IP インプリメンテーションの必須部分です。 ICMP は、IP に関するエラー・メッセージと制御メッセージを処理します。
このプロトコルを使用すると、ゲートウェイとホストはパケット送信側のマシンに問題レポートを送信できます。 ICMP の機能には次のようなものがあります。
- 宛先が作動中で、しかも到達可能であるかどうかをテストします。
- データグラム・ヘッダーに関するパラメーターの問題を報告します。
- クロックの同期と通過時間を見積もります。
- IP アドレスとサブネット・マスクを入手します。
注: ICMP は、 IP の基本サポートを、それより高いレベルのプロトコルであるかのように使用します。 しかし、ICMP は実際には IP の必須部分であり、すべての IP モジュールにインプリメントされていなければなりません。
ICMP は通信環境の問題に関するフィードバックを行いますが、IP の信頼性を保証するわけではありません。 つまり、ICMP は IP パケットが確実に送達されることを保証するものではなく、また、IP パケットが送達されなかったり誤って送達されたときに、ICMP メッセージが送信元ホストに戻ることを保証するものでもありません。
ICMP メッセージは、次のいずれかの状況のときに送信される場合があります。
- パケットを宛先に送達できないとき
- ゲートウェイ・ホストにパケットを転送するためのバッファー容量がないとき
- ゲートウェイが、ホストに対して短い経路でトラフィックを送信するよう指示できるとき
TCP/IPは複数のICMPメッセージタイプを送受信します( メッセージタイプを Internet Control Message Protocol 参照)。 ICMP はカーネルに組み込まれ、このプロトコルへの API は提供されません。