ICMP(Internet Control
Message Protocol)の詳細
2001/07/03(火)
牧之内研 B4 宇徳 浩二
ICMPの機能と役割
・何らかの理由でデータグラムが配信できないとき、あるいは、デー
グラムに問題が発見されたとき、またより適したルートが利用可能に
なったことをホストに知らせる。
ICMPはエラー報告に使われるが、エラーメッセージを運ぶデータグラム
がまたエラーを起こした場合は、エラーメッセージは生成されない。
これによって、エラーメッセージが反復して生成されるのを防ぐ。
同様に、複数にフラグメントされたデータグラムは、先頭フラグメントに
対してだけエラーが報告され、他のフラグメントはすべて警告なしに
廃棄される。
第2層ヘッダ LLCヘッダ 情報 2層終了デミタリ
12 16 20 24 28 32
バージョン ヘッダ長 サービスエリア ケット
フラグ ラグメントオフセット
生存時間 プロトコル
ICMP = 01 ヘッダチェックサム
送信元アドレス
宛先アドレス
オプション パディング
IPデータ
メッセージヘッダとデータ
16 24 31
ICMPタイプ コード ェックサム
ICMPデータ
任意の長さ、メッセージタイプに依存
ICMPメッセージのカプセル化
ICMPメッセージのタイプ
ICMPメッセージは、2つのクラスに区分される。
1.ICMPエラーメッセージ
宛先到達不能、ルート変更、発信抑制、時間超過、パラメータ異常
2.問い合わせメッセージ
エコー(要求と応答)、情報(要求と応答)、タイムスタンプ
およびアドレスマスク(要求と応答)
タイプコード
(10進数)
タイプコード
(16進数) 内容
3
0
4
5
8
11
12
13
14
15
16
17
18
00
03
04
05
08
0B
0C
0D
0E
0F
10
11
12
エコー応答
宛先到達不能
発信抑制
ルート変更
エコー要求
データグラムの時間経過
データグラムのパラメータ異常
タイムスタンプ要求
タイムスタンプ応答
情報要求 使用されなくなっている)
情報応答 使用されなくなっている)
アドレスマスク要求
アドレスマスク応答
表:ICMPメッセージの
タイプ
1.ICMP宛先到達不能メッセージ
・ルーターと宛先ホストのどちらも送信元ホストに送る。
ルーター・・・ルートを決定できないか、データグラムを配信できない場合
1.受信したデータグラムに指定されている宛先アドレスが、不明または、接続
できないネットワークである場合。
2.データグラムは、ネットワークが直接接続されているルーターによって受信
されたが、ホストが利用できないとルーターが判断した場合。
3.ルーターがデータグラムをフラグメント化しないと送出できないのに、フラグメ
ンテーション不可フラグが設定されていたり、ソースルーティングオプション
が機能しない場合。
ホスト・・・IPヘッダで指定されたプロトコルが利用できない場合。
利用不能なポートを上層プロトコルが指定している場合。
2.ICMP時間超過メッセージ
・ルーター
宛先までのルート上にあるルーターをデータグラムが通過するごとに
IPヘッダ内のTTLフィールドの値が減っていき、0になると、どのルータ
ーもそのデータグラムを廃棄して時間超過メッセージを送信元ホストに
通知する。
・宛先ホスト
データグラムの先頭フラグメントを受信すると、タイマーを起動し、タイ
マーが終了するまでに受信が終わらないとそれまでに到着している
フラグメントは廃棄され、時間超過メッセージが送信元ホストに送ら
れる
3.ICMPパラメータ異常メッセージ
IPデータグラムのヘッダパラメータに異常を発見すると、ルーターや
ホストはすべてICMPパラメータ異常メッセージを送る。
データグラムは廃棄され、ICMPパラメータ異常メッセージを送信元
ホストに送る。
4.ICMP発信抑制メッセージ
・インターネットに使われるフロー制御の基本フォーム。
データグラムの着信速度が処理能力を超えると、ICMP発信抑制
メッセージが送信元ホストに送られ、データグラムの再送が必要な
ことを知らせる。
これを受け取ると、送信元ホストは、発信抑制メッセージが来なくなる
までデータグラムの送信速度を落とすことにより、フロー制御を行う。
5.ICMPルート変更メッセージ
・ルーターだけがICMPルート変更メッセージを送信元ホストに送るように
なっている。
宛先ネットワークまでにもっともよいルートがあることを教えるもの。
A
1
2
3
4
新しいルータ
図:ICMPート変更の例
6.ICMPエコー要求メッセージ/
ICMPエコー応答メッセージ
リモートのネットワークやホストに到達できるかどうかを知るためには
小さなテストパケットを送ると便利。ICMPエコー要求メッセージとICMP
エコー応答メッセージの対はこの単純な機能を効果的に実行する。
・動作の基本的方法
ICMPエコー要求を遠隔ルーターやホストに送る
宛先マシンはメッセージを受け取ると、ICMPエコー応答を使って
メッセージ内にあるすべての情報をそのまま送信元マシンに送る。
7.ICMPタイムスタンプ要求メッセージ/
ICMPタイムスタンプ応答メッセージ
ラウンドトリップ遅延時間とホストシステムの混雑度を効果的に計算
するために、この対は用意される。
送信元ホスト・・・32ビットの開始タイムスタンプフィールドに、要求を送
信した時刻を示す。
宛先ホスト・・・32ビットの受信タイムスタンプフィールドにメッセージの
受信時刻を入れ、メッセージを返却する準備をする。
そして、タイムスタンプ応答メッセージの送信開始直前に
32ビット送出タイムスタンプフィールドに時刻を入力し、
チェックサムの計算を行う。
8.ICMP情報要求メッセージ/
ICMP情報応答メッセージ
RARPBootPにとって代わられるまで、送信元ホストが、起動時に自分
のネットワークアドレスを決定するために使用されていた。
IPヘッダの送信元アドレスフィールドと宛先アドレスフィールドの
ネットワークアドレス部は、要求では0に設定されて自ネットワークを
示し、応答で完全な指定が行われる。
9.ICMPアドレスマスク要求メッセージ/
ICMPアドレスマスク応答メッセージ
要求フォーマットを使うことによって、ホストが要求をブロードキャストし、
自分のサブネットマスクを決めることができる。
ブロードキャストに応えてくれるのは、あらかじめきめられている情
提供ホストで、ルーターがこれになっているのが一般的。