ICMP / Internet Control Message Protocol


■ ICMP。Internet Control Message Protocol。

  IPネットワーク向けの管理用プロトコル。
  RFC792に規定されている。

  IPはコネクションレス型のプロトコルであり、
  信頼性のある通信を行うようには設計されていない。
  このため、パケット送信後に何らかのエラーが起きても
  送信元ホストはその事実を知ることができない。

  そこでICMPはこれを補完し、
  IPで通信ができなかった場合に送信元にエラー通知をしたり、
  さまざまな制御メッセージを交換するなどの
  メッセージサービスを提供する。

  ICMPは、IPと同じネットワーク層プロトコルである。
  それにもかかわらず、
  ICMPのパケットはIPパケットに格納して運ばれる。
  以下にそのパケットフォーマットを記す。

  IPヘッダのTOSフィールドには全て0が入り、
  またプロトコル番号フィールドには1が入る。
  ICMPパケットのヘッダは8バイトからなり、
  メッセージタイプやコード等のフィールドを備えている。

  
  
■ ICMPのメッセージ。

  ICMPヘッダの先頭1バイトにあるタイプフィールドは、
  ICMPメッセージの種別を表している。
  以下に主なメッセージタイプとそれが表すメッセージ内容を示す。

  +-----------+---------------------------------------------+
  | タイプ    | メッセージ                                  |
  +-----------+---------------------------------------------+
  | タイプ 0  | エコー応答 Echo Reply                       |
  +-----------+---------------------------------------------+
  | タイプ 3  | 宛先到達不能 Destination Unreachable        |
  +-----------+---------------------------------------------+
  | タイプ 4  | 発信抑制 Source Quench                      |
  +-----------+---------------------------------------------+
  | タイプ 5  | 最適経路通知、ルート変更 Redirect           |
  +-----------+---------------------------------------------+
  | タイプ 8  | エコー要求 Echo Request                     |
  +-----------+---------------------------------------------+
  | タイプ11  | 時間超過によるパケット廃棄 Time Exceeded    |
  +-----------+---------------------------------------------+
  | タイプ12  | パラメータ異常 Parameter Problem            |
  +-----------+---------------------------------------------+
  | タイプ13  | タイムスタンプ要求 Timestamp Request        |
  +-----------+---------------------------------------------+
  | タイプ14  | タイムスタンプ応答 Timestamp Reply          |
  +-----------+---------------------------------------------+
  | タイプ17  | アドレスマスク要求 Address Mask Request     |
  +-----------+---------------------------------------------+
  | タイプ18  | アドレスマスク応答 Address Mask Reply       |
  +-----------+---------------------------------------------+

■ 宛先到達不能メッセージ。

  タイプ3のICMPパケットは、
  送信元ホストから配送されたIPパケットが宛先ホストに届かなかった場合に
  ルータまたは宛先ホストから送られるメッセージである。

  ICMPタイプ3のメッセージには、
  コードフィールドと呼ばれる部分があり、
  そこに宛先到達不能エラーの原因、つまり
  どうして配送することができなかったのかという理由が記される。

  以下に具体的なコード値と到達不能原因の対応を記す。
  個々のパケットのコード値は、
  ネットワークアナライザ等で確認することができる。

  +-----------+----------------------------------------------------+
  | コード    | 到達不能の原因                                     |
  +-----------+----------------------------------------------------+
  | コード 1  | ネットワークへ到達不能                             |
  +-----------+----------------------------------------------------+
  | コード 2  | ホストへ到達不能                                   |
  +-----------+----------------------------------------------------+
  | コード 3  | プロトコルに到達不能                               |
  +-----------+----------------------------------------------------+
  | コード 4  | フラグメントが必要だが、不可に設定されている       |
  +-----------+----------------------------------------------------+
  | コード 5  | ソースルートが使用不可                             |
  +-----------+----------------------------------------------------+
  | コード 6  | 宛先ネットワークが不明                             |
  +-----------+----------------------------------------------------+
  | コード 7  | 宛先ホストが不明                                   |
  +-----------+----------------------------------------------------+
  | コード 8  | 送信元ホストが分離されている                       |
  +-----------+----------------------------------------------------+
  | コード 9  | 宛先ネットワークとの通信が禁止されている           |
  +-----------+----------------------------------------------------+
  | コード10  | 宛先ホストとの通信が禁止されている                 |
  +-----------+----------------------------------------------------+
  | コード11  | 指定のサービスタイプでは宛先ネットワークに到達不能 |
  +-----------+----------------------------------------------------+
  | コード12  | 指定のサービスタイプでは宛先ホストに到達不能       |
  +-----------+----------------------------------------------------+

  なお、タイプ3パケットのデータ部分には、
  元のIPパケットのヘッダとペイロード部分の先頭64バイトが格納される。

■ エコー要求/応答メッセージ。

  タイプ0/タイプ8のICMPパケットは、
  通信したい宛先ホストがあるとき、
  そのホストが接続可能な状態かどうかを調べるときに使われる。

  まず送信元がタイプ8のエコー要求メッセージを送る。
  宛先ホストがそのメッセージを受け取ると
  タイプを0に書き換えてエコー応答メッセージを送信元ホストへ返す。

  これが成功すれば接続性はOKなのだが、
  ネットワーク上に障害等があれば、タイプ3が返信されることになる。

  このタイプ0/タイプ8のICMPパケットを利用したツールが、
  よく使われる ping である。
  詳細はこちらを参照のこと。

以上。

2004/01/16 am


HOME |  BACK

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル