Protocolのデータグラム処理における誤りの通知や通信に関する情報の通知などのために使用される。ICMPに関するICMP通知は、通知が無限ループに陥るのを防ぐために送られない。よって規定されている。Protocolと同様のインターネット層のプロトコルであるかのような特別の処理をされる。ICMPを利用しているツールにpingやtraceroute[1]などがある。外部リンク通知書式[編集]ICMPヘッダは以下のようにMACヘッダ・IPヘッダの後ろにある。+------------+-----------+-------------+-----------ICMPヘッダ[編集]ICMPヘッダは一般的に以下の通りとなる。チェックサムデータデータグラムのデータ部分の最初のオクテットはICMPタイプフィールドであり、このフィールドの値は、以降のICMP通知の書式を決定する。「未使用」とラベル付けされているフィールドは今後の拡張のために予約されており、送信時には0を入れなければならないが、受信者はこれらのフィールドを(チェックサムに含めることを除いて)使用すべきではない。チェックサムは、ICMPヘッダの先頭から(すなわちタイプから)データの末尾までを対象に、16ビット単位で算出される。チェックサムフィールド自身も計算対象に入っているが、計算時には0として扱う。バイト数が奇数の場合は末尾に0のバイトがあるものとして計算する。いくつかのタイプでは、ICMP通知が発生する原因となった元データグラムの先頭部分をコピーしている。この種のタイプは以下の形式をとる。792では長さフィールドは未使用で、元データグラムの先頭部分は64ビット(8オクテット)と決まっていた。4443において、MTUの最小限として保障されるサイズ(IPv4は576オクテット、IPv6は1280オクテット)まで拡張された。4884において長さフィールドが追加され、この可変長領域の長さを32ビット単位で記述することになった。ICMP通知は基礎的なIPヘッダーを使用して送られる。個々の型式記述の下で違った形で言及されない限り、ICMPヘッダに先行するIPヘッダーフィールドの値は以下の通りとなる。バージョン4IHL32ビットワードでのインターネット・ヘッダー長である。サービスの形式0合計長オクテット単位での、インターネット・ヘッダーとデータの合計の長さである。いい、このフィールドはデータグラムが処理されるマシンを通る度に1ずつ減らされる。そのためこのフィールドの値は少なくともこのデータグラムが通るゲートウェイの数と同じ大きさでなければならない。1ヘッダー・チェックサム送信元アドレスICMP通知を構成するゲートウェイかホストのアドレスである。違った形で言及されない限り、これは何らかのゲートウェイのアドレスとなる。宛先アドレス通知が送られるべきゲートウェイかホストのアドレスである。通知の種類[編集]以下の種類がある。シーケンス番号データ(可変長)エコー要求はタイプ=8で送信される。現在のところ定義されているコードは0だけである。識別子は送信元で適当な値を決める。要求したプロセスのプロセスIDなどが使われる。シーケンス番号は、同じ識別子で繰り返しエコー要求を送信した場合の通し番号である。宛先となっているホストがエコー要求を受け取ると、発信元と宛先のアドレスを入れ替え、タイプを0(エコー応答)に書き換え、チェックサムを再計算する。識別子とシーケンス番号はエコー要求で指定された値をそのまま返し、どの要求に対応する応答なのかを発信元で判別する際に使う。データフィールドも要求の内容をそのまま返す。Replyメッセージを使っている。元データのデータグラムの先頭部分コードは状況に応じて以下の値をとる。1122において、以下のコードが追加されている。1812では、以下のコードが追加されている。優先度が低すぎるコード9および10は特殊な用途のために定義されており、通常のルーターは13を発生させるよう求めている。1191で導入された。コード=4のときに設定され、経路MTU探索のために使われる。タイプ=3、コード=4のICMPパケットをファイアウォール等でフィルタしてしまうと、経路MTU探索ブラックホールと呼ばれる問題が発生する。受信能力を超えた早さでデータグラムが届き、破棄してしまったことを通知する。ゲートウェイおよび宛先ホストのどちらでも発生する可能性がある。元データのデータグラムの先頭部分ゲートウェイから送信元に対して、今後は他のゲートウェイを使うよう指示する。元のデータグラムも破棄せずに転送する。経路変更要求ICMPメッセージを受け取ったホストはルーティングテーブルに追記し、該当する次のデータグラムからは指示されたゲートウェイへ送るようになる。コードは以下の値をとる。1256で追加された。デフォルトゲートウェイのアドレスを通知する。ルーターアドレス数で指定した数だけ列挙することができ、優先度(2の補数表現による符号付き32ビット整数)が大きいものほど優先度が高い。1アドレスあたりの長さは32ビット単位で指定し、このバージョンの形式では2(すなわち1エントリあたり64ビット)となる。有効期限は応答時点からの秒単位で指定する。live(TTL;存在回数)が0になっても宛先ホストに到達しなかったことを通知する。コード1は、断片の再統合を行う際、制限時間内に断片が揃わなかったことを通知する。ネットワーク診断用コマンドtracerouteは、TTLを1から順に増やして行き、各中継点からの時間切れ通知から経路を調べる。元データのデータグラムの先頭部分パラメータに問題があって、元のデータグラムを破棄したことを通知する。ポインタは元データのうち問題となった箇所を、先頭からのオクテット数で指定する。起点タイムスタンプ受信タイムスタンプ送信タイムスタンプタイムスタンプ要求はタイプ=13で送信される。現在のところ定義されているコードは0だけである。識別子およびシーケンス番号はエコー要求と同じ要領で使う。0:00からの経過ミリ秒で設定する。日付は含まれておらず、毎日0に戻ることに注意。宛先となったホストはタイムスタンプ要求を受け取ると、タイプ=14で応答する。識別子、シーケンス番号、起点タイムスタンプは、要求にセットされていた値をそのままコピーする。要求を受信した際のタイムスタンプを受信タイムスタンプに、応答を送信する際のタイムスタンプを送信タイムスタンプにセットする。要求を送信したホストは、応答を受信した際のタイムスタンプと、格納されている起点タイムスタンプを比較することで、往復に要した時間を知ることができる。シーケンス番号タイプ=15の情報要求通知はアドレス0に対して送られる。要求を受信した各ホストおよびゲートウェイは、タイプ=16の情報応答通知を返す。tracerouteは、ICMPではなくUDPを使った実装もある。2013年1月7日閲覧。ピアソン・エデュケーション、2000年12月20日(原著1994年)、新装版。4-89471-320-9。光ケーブルこの項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。