目次
ICMP(Internet Control Message Protocol)
ICMP(Internet Control Message Protocol:インターネット制御通知プロトコル)とは、IP(Internet Protocol)を利用するTCP/IPのパケット転送において、発生した各種エラー情報を報告するために用いられるプロトコルです。
インターネット層で動作する「IP(Internet Protocol)」は、コネクションレス型(一方的に送る)のプロトコルです。そのためIPパケットの転送に失敗した場合、失敗を検知することができません。
そこで、ICMPは IP をフォローする役割を持ちます。通信エラー発生時には、その場所からパケットの送信元に対してICMPによってエラー情報が通知されます。その結果、パケットの送信元は発生した障害内容を知ることができるわけです。
ICMPには、IPv4(Internet Protocol version 4)のための 「ICMPv4」、IPv6(Internet Protocol version 6)のための「ICMPv6」が存在します。
また、ICMPプロトコルを使ったコマンド(ツール)では「ping」や「traceroute」などが有名です。
スポンサーリンク
ICMPヘッダ
ICMPヘッダは、MACヘッダ・IPヘッダの後ろに付与されます。ICMPヘッダの内容は次の通りです。
項目名 | ビット | 説明 |
タイプ(Type) | 8 bit | ICMPメッセージの種類の表す |
コード(Code) | 8 bit | ICMPメッセージの種類内の詳細を表すコード |
チェックサム(Checksum) | 16 bit | エラーがないかどうかをチェック |
ICMPメッセージの種類
ICMPには様々なメッセージ(通知)があります。主なICMPメッセージの種類は次の通りです。
タイプ(Type) | コード(Code) | 説明 |
0(エコー応答) | 0 | エコー要求に対する応答。 |
3(宛先到達不可能) | 0 | Destination network unreachable(宛先ネットワークに到達できない) |
1 | Destination host unreachable(宛先ホストに到達できない) | |
2 | Destination protocol unreachable(宛先プロトコルに到達できない) | |
3 | Destination port unreachable(宛先ポートに到達できない) | |
4 | Fragmentation required, and DF flag set(フラグメンテーションが必要で、DFフラグが設定されている) | |
5 | Source route failed(ソースルートに失敗) | |
6 | Destination network unknown(宛先ネットワークが不明) | |
7 | Destination host unknown(宛先ホストが不明) | |
8 | Source host isolated(分離されたソースホスト) | |
9 | Network administratively prohibited(管理上禁止されているネットワーク) | |
10 | Host administratively prohibited(管理上禁止されているホスト) | |
11 | Network unreachable for TOS(TOSのネットワークに到達できない) | |
12 | Host unreachable for TOS(TOSに到達できないホスト) | |
13 | Communication administratively prohibited(管理上禁止されている通信) | |
14 | Host Precedence Violation(ホストの優先度違反) | |
15 | Precedence cutoff in effect(有効な優先度カットオフ) | |
5(経路変更要求通知) | 0 | Redirect Datagram for the Network(ネットワークへの最適経路変更を通知) |
1 | Redirect Datagram for the Host(ホストへの最適経路変更を通知) | |
2 | Redirect Datagram for the TOS & network(優先制御でネットワークへの最適経路を通知) | |
3 | Redirect Datagram for the TOS & host(優先制御でホストへの最適経路を通知) | |
8(エコー要求) | 0 | エコー要求を指定ホストに対して行う |
11(時間切れ) | 0 | TTL expired in transit(TTLは転送中に期限切れ) |
1 | Fragment reassembly time exceeded(フラグメントの再組み立て時間が超過) |
※TTLとはパケットの最大転送回数。ルータを経由するごとに1減少し、TTLが0になるとパケットは破棄される。
スポンサーリンク
ICMPプロトコルを利用したコマンド
ping
ICMPプロトコルを利用した代表的なコマンド「ping」は、「エコー要求」と「エコー応答」を用いて、指定コンピュータまでパケットが届くかを確認するコマンドです。
traceroute
「traceroute」は、指定コンピュータに到達するまでの間、どのような経路を辿っているのか調査するコマンドです。
ここでいう経路とは、コンピュータ間を接続するルータ(ゲートウェイ)のことであり、tracerouteにコマンドにより、経路上にどのようなルータ(IPアドレス)を経由しているかが判断できます。
※Windowsで実行する場合「tracert」コマンドを使用します。