ICMPとは(ICMPの説明とタイプ/コード一覧)

ICMPとは(ICMPの説明とタイプ/コード一覧)

ICMPの基礎について説明します。

目次

ICMPとは

ICMPとは、「Internet Control Message Protocol」の略で、IPを利用したネットワークにおいて、経路上の状態確認やエラー通知に利用されるプロトコルです。ICMPはOSI参照モデルのネットワーク層で動作するプロトコルで、ネットワーク状態の確認コマンドである、「ping」や「traceroute」で利用されています。

ICMPのデータフォーマット

データフォーマットしては、IPヘッダの後ろにICMPヘッダとデータ部が付与される形となります。

ICMPのデータフォーマット
スクロールできます
項目サイズ説明必須
Type1Byte(8bit)ICMPメッセージタイプ ※詳細は別表参照
Code1Byte(8bit)ICMPメッセージタイプの詳細コード ※詳細は別表参照
チェックサム2Byte(16bit)エラーチェック
ID2Byte(16bit)ICMPリプライ・リクエストの場合の識別子ICMPタイプにより不要
シーケンス番号2Byte(16bit)ICMPリプライ・リクエストの場合のシーケンス番号ICMPタイプにより不要
その他可変ICMPタイプにより、タイムスタンプ等が格納されるICMPタイプにより異なる

ICMPメッセージの種類

ICMPメッセージには、「Query(問い合わせ)」と「Error(エラー通知)」の2種類があります。

スクロールできます
種類説明
Query
(問い合わせ)
メッセージを送信し通信状態を確認ICMPエコー・リプライ
Error
(Error通知)
経路途中でパケットが破棄された場合に、理由とともにパケットの送信元へ通知宛先到達不能メッセージ

ICMPタイプとコード

ICMPにはTCPやUDPのようなポート番号は存在しません。その代わり、下記に示すようなタイプとコードにより、メッセージに役割や意味を持たせています。

【一覧】ICMPタイプとコード

良く利用されるタイプ・コードを色付けしています。

スクロールできます →

タイプ機能コード意味説明種類
0echo reply
(エコー応答)
0エコー要求に対する応答(Type8への応答)Query
3destination unreachable
(宛先到達不能)
0net unreachable宛先ネットワークに到達不能Error
1host unreachable宛先ホストに到達不能
2protocol unreachableプロトコルに到達不能
3port unreachableポートに到達不能
4fragment needed and DF was setパケットの分割(フラグメント)が必要だが、
分割禁止フラグが有効のため分割不可
5source route failedソースルーティング不可
6destination network unknown宛先ネットワークが不明
7destination host unknown宛先ホストが不明
8source host isolated送信元ホストが孤立(隔離)
9destination
network is
administratively prohibited
宛先ネットワークとの通信が管理上禁止
10destination
host is
administratively prohibited
宛先ホストとの通信が管理上禁止
11destination network unreachable for ToS指定したToS値では宛先ネットワークに到達不能
12destination host unreachable for ToS指定したToS値では宛先ホストに到達不能
13communication administratively prohibited通信が管理上禁止
14host precedence violation優先度の値が許可されていない
15precedence cutoff in effect優先度の値が許可されている最小値よりも低い
4source quench
(クエンチ)
0輻輳のためデータの送信速度を下げるように要求
※TCPのフロー制御の方が優れているため、
あまり利用されていない。
Error
5redirect
(リダイレクト)
0redirect datagram for the networkネットワーク単位での最適経路変更を通知Error
1redirect datagram for the hostホスト単位での最適経路変更を通知
2redirect datagram for the ToS and network特定優先度のネットワーク単位での最適経路変更を通知
3redirect datagram for the ToS and host特定優先度のホスト単位での最適経路変更を通知
8echo request
(エコー要求)
0到達性の確認(Type0の応答を要求)Query
9router advertisement
(ルーター広告)
0normal router advertisementルーターが自身をデフォルトゲートウェイとして利用できることを通知Query
16Does not Route
Common Traffic
デバイスがモバイルエージェントのみで、
通常のトラフィックを処理する予定がない場合
10router solicitation
(ルーター要請)
0router advertisement を送信するようにルーターに要求Query
11time exceeded
(時間超過)
0time to live exceeded in transitTTL値を超過したためパケットを破棄したことを通知Error
1fragment reassembly time exceededフラグメントされたパケットの再構築中に、
後続パケットが届かないままタイムアウトしたことを通知
12parameter problem
(パラメーター異常)
0pointer indicates the errorIPヘッダのパラメータに問題があったためパケットを破棄したことを通知Error
1missing a required option必要なオプションが含まれていないためパケットを破棄したことを通知
2bad lengthパケット全体の長さが正しくないためパケットを破棄したことを通知
13timestamp
(タイムスタンプ)
0このパケットを送信した時刻を通知Query
14timestamp reply
(タイムスタンプ応答)
0Type13への応答(自身の送信時刻を通知)Query
15information request
(情報要求)
0廃止済み(DHCP等で代替可のため)Query
16information reply
(情報応答)
0
17address mask request
(マスク要求)
0サブネットマスクを要求Query
18address mask reply
(マスク応答)
0サブネットマスク要求に対する応答(Type17への応答)Query
42extended echo request
(拡張エコー要求)
0拡張エコー要求(RFC8335で定義されたPROBEというプロトコルで利用)Query
43extended echo reply
(拡張エコー応答)
0no error拡張エコー要求への通常応答Query
1malformed queryクエリの形式が不正
2no such interfaceインターフェースが存在しない
3no such table entryテーブルエントリーが存在しない
4multiple interfaces satisfy query複数のインターフェースがクエリを満たしている

以上で、ICMPとは(ICMPの説明とタイプ/コード一覧)の説明は完了です!

ICMPを利用したコマンドについては、下記を参照してください。

ICMPリダイレクトの詳細については、下記を参照してください。

  • URLをコピーしました!
  • URLをコピーしました!
目次