目 次
目 次/関連項目

2.1 ICMPの機能と役割

 IPはコネクションレス型のプロトコルであり、信頼性のある通信を行うようには設計されていない。つまり、IPパケットの送信時にエラーが起きても送信元ホストはその事実を知る事ができない。このようなエラーメッセージや制御メッセージを送信元に通知するのがICMP(Internet Control Message Protocol)の役割である。ICMPはRFC792で規定されている。

 ICMPはIPと同じネットワーク層のプロトコルだが、ICMPメッセージは必ずIPヘッダを利用して送信される。図2.1.1にICMPパケットを示す。ICMPパケットをIPパケットに実装するときは、IPヘッダのTOSフィールドには全て0が入り、IPヘッダのプロトコルフィールドには1が入る。また、IPデータフィールドにICMPヘッダとICMPデータが入る。

 ICMPヘッダの最初のフィールドはTypeである。このフィールドの値はこのICMPパケットはどのメッセージなのかを表す。メッセージタイプごとの違いを次の節で説明する。


0 8 16 24
31
Version
(バージョン)
IHL
(ヘッダ長)
TOS (サービスタイプ)
全て0
Total Length
( パケット長)
Identification
(識別子)
Flags
(フラグ)
Fragment Offset
(フラグメントオフセット)
Time to Live
(生存時間)
Protocol (プロトコル)
1
Header Checksum
(ヘッダチェックサム)
Source Address
(送信元IPアドレス)
Destination Address
(宛先IPアドレス)
Options
(オプション)
Padding
(パディング)
Type
(メッセージタイプ)
ICMP Header + ICMP Data
(ICMPヘッダ + ICMPデータ)
 

図2.1.1:ICMPパケット