ICMPヘッダ

 ICMP(Internet Control Message Protocol)とは、通信エラー通知や通信状態の診断を行なうためのネットワーク層のプロトコルです。

 ICMPは、IPと同じネットワーク層にありますが、IPの上位に位置します。IPヘッダのプロトコル番号には、「1」がセットされます。

ICMP
IP

 IPプロトコルは、信頼性の低いプロトコルです。送信したIPパケットが途中で破棄されたり、紛失してしもIPプロトコル自体に、発生した通信エラーに関して報告する機能はありません。

 そこで、IPの欠点を補うために作られたのがICMPです。ICMPでは、通信エラーやネットワークの状況を通知することができます。 ICMPメッセージには、宛先への到達不能や経路変更要求、時間超過、タイムスタンプの要求・応答などのメッセージがあります。

ICMPヘッダの構造

ICMPヘッダの構造は、次のようになっています。

●Type(8ビット)

ICMPメッセージの種類を表す。

●Code(8ビット)

Typeメッセージと共に利用します。

●ICMP Header Checksum(16ビット)

ICMPヘッダを含むICMPメッセージ全体に対するチェックサムです。

ICMP ヘッダの Type 一覧

ICMPのメッセージのタイプを下の表に示します。まだまだ他にたくさんのタイプが存在します。

※もっと詳細な情報を得たい場合は、下のリンク先で確認してみて下さい。

http://www.iana.org/assignments/icmp-parameters

ICMPの種類は2種類あります。

  • エラーを通知するErrorメッセージ
  • pingやtracertなどの調査コマンドに対して返答するQueryメッセージ

※なお、エラー通知は無限ループに陥らないように、ICMPメッセージに対してICMPのエラーメッセージが送られることはありません。

タイプ機能種類
0エコー応答(Echo Reply)Query
3宛先到達不能(Destination Unreachable)Error
4転送抑制指示(Source Quench)Error
5リダイレクト指示(Redirect)Error
8エコー要求(Echo)Query
9ルータ通知(Router Advertisement)Query
10ルータ要求(Router Solicitation)Query
11時間超過(Time Exceeded)Error
12パケットパラメータエラー(Parameter Problem)Error
13タイムスタンプ保持要求(Timestamp)Query
14タイムスタンプ保持要求への返答(Timestamp Reply)Query
17アドレスマスク要求(Address Mask Request)Query
18アドレスマスク応答(Address Mask Reply)Query
Type 3 のコード 一覧

Type 3の場合のコード一覧を下の表に示します。他にもまだコードが存在します。

コード情報意味
0Netwrok Unreachableネットワークに到達不能
1Host Unreachable特定のホストに到達不能
2Protocol Unreachableプロトコルに到達不能
3Port Unreachableポートに到達不能
4Fragmentation Needed and DF setフラグメンテーションが必要
5Source Route Failedソースルート通りにルーティングできない
6Destination Network Unknown宛先ネットワークを知らない
7Destination Host Unknown宛先ホストを知らない
8Source Host Isolated送信元が通信できない
9Network Administartively Prohibited送信先ネットワークが拒否している
10Destinantion Host Administartively Prohibited送信先ホストが拒否している
11Network Unreachable For TOS要求したTOSでネットワークに到達不能
12Host Unreachable For TOS要求したTOSでホストに到達不能
13Communication Administratively Prohibited通信が拒否されている