Internet Control Message Protocol

出典: フリー百科事典『ウィキペディア(Wikipedia)』

ICMP から転送)

Internet Control Message Protocol(インターネット制御通知プロトコル、ICMP)とは、通信処理で使われるプロトコルのひとつであり、インターネット・プロトコルのデータグラム処理における誤りの通知や通信に関する情報の通知などのために使用される。但し、ICMPに関するICMP通知は、通知が無限ループに陥るのを防ぐために送られない。

IPv4 (インターネット・プロトコル・バージョン 4) のための ICMP (ICMPv4) は RFC 792 によって規定され、IPv6 (インターネット・プロトコル・バージョン 6) のための ICMP (ICMPv6) は RFC 4443 によって規定されている。ICMP は TCP、UDP などと同様にインターネット・プロトコルの上位のプロトコルであるが、インターネット・プロトコルと同様のネットワーク層のプロトコルであるかのような特別の処理をされる。

ICMPを利用しているツールにpingがある。

目次

[編集] 通知書式

ICMPヘッダは以下のようにMACヘッダ・IPヘッダの後ろにある。

  +-----------+----------+------------+----------
  | MACヘッダ | IPヘッダ | ICMPヘッダ | データ...
  +-----------+----------+------------+----------

[編集] ICMPヘッダ

ICMPヘッダは一般的に以下の通りとなる。

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     形式      |    コード     |          チェックサム         |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    データ...
  +-+-+-+-+-

ICMP通知は基礎的なIPヘッダーを使用して送られる。 データグラムのデータ部分の最初のオクテットはICMP形式フィールドであり、 このフィールドの値は、以降のICMP通知の書式を決定する。 一部のフィールドは今後の拡張のために、「未使用」というラベルを貼られた上で0が入れられて送られるが、 受信者はこれらのフィールドを(チェックサムに含めることを除いて)使用すべきではない。 個々の型式記述の下で違った形で言及されない限り、インターネットヘッダーフィールドの値は以下の通りとなる。

[編集] バージョン

4

[編集] IHL

32ビットワードでのインターネット・ヘッダー長である。

[編集] サービスの形式

0

[編集] 合計長

オクテット単位での、インターネット・ヘッダーとデータの合計の長さである。 識別、フラグ、断片化オフセット、断片化の中で使用される。

[編集] 存在回数

存在保持回数ともいい、このフィールドはデータグラムが処理されるマシンを通る度に1ずつ減らされる。 そのためこのフィールドの値は少なくともこのデータグラムが通るゲートウェイの数と同じ大きさでなければならない。

[編集] プロトコル

ICMP = 1

[編集] ヘッダー・チェックサム

[編集] 送信元アドレス

ICMP通知を構成するゲートウェイホストアドレスである。 違った形で言及されない限り、これは何れかのゲートウェイのアドレスとなる。

[編集] 宛先アドレス

通知が送られるべきゲートウェイかホストのアドレスである。

[編集] 通知の種類

以下の種類がある。

(通知の後ろの()内は和訳の一例であり、一般的な言い方でない可能性がある)
  • 0 - Echo Reply Message(エコー応答通知)
  • 3 - Destination Unreachable Message(宛先到達不可能通知)
  • 4 - Source Quench Message(送出抑制要求通知)
  • 5 - Redirect Message(経路変更要求通知)
  • 8 - Echo Message(エコー要求通知)
  • 11 - Time Exceeded Message(時間切れ通知)
  • 12 - Parameter Problem Message(不正引数通知)
  • 13 - Timestamp Message(タイムスタンプ要求通知)
  • 14 - Timestamp Reply Message(タイムスタンプ応答通知)
  • 15 - Information Request Message(情報要求通知)
  • 16 - Information Reply Message(情報応答通知)

[編集] Echo Message(エコー要求通知)・Echo Reply Message(エコー応答通知)

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     形式      |    コード     |        チェックサム           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |           識別子              |        連続数                 |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |    データ...
  +-+-+-+-+-

[編集] IPフィールドのアドレス

エコー要求通知の発信元のアドレスはエコー返答通知の宛先である。 エコー返答通知のフォームは、発信元と宛先アドレスが単に入れ替わり、 形式コードは0になり、チェックサムは再計算される。

[編集] 形式

  • 8はエコー要求
  • 0はエコー応答

[編集] コード

0

[編集] チェックサム

[編集] 識別子

  • コードが0の場合、即ち、識別子によってエコー要求とエコー応答が一致する場合、0にすることができる。
  • コードが0の場合、即ち、連続数によってエコー要求とエコー応答が一致する場合、0にすることができる。

[編集] Destination Unreachable Message(宛先到達不可能通知)

[編集] Source Quench Message(送出抑制要求通知)

[編集] Redirect Message(経路変更要求通知)

[編集] Time Exceeded Message(時間切れ通知)

[編集] Parameter Problem Message(不正引数通知)

[編集] Timestamp Message(タイムスタンプ要求通知)

[編集] Timestamp Reply Message(タイムスタンプ応答通知)

[編集] Information Request Message(情報要求通知)

[編集] Information Reply Message(情報応答通知)

[編集] 関連項目

[編集] 外部リンク

  • RFC 792 - Internet Control Message Protocol