ネットワーク

ICMPとは

ICMP(Internet Control Message Protocol)

ICMP(Internet Control Message Protocol:インターネット制御通知プロトコル)とは、IP(Internet Protocol)を利用するTCP/IPのパケット転送において、発生した各種エラー情報を報告するために用いられるプロトコルです。

インターネット層で動作する「IP(Internet Protocol)」は、コネクションレス型(一方的に送る)のプロトコルです。そのためIPパケットの転送に失敗した場合、失敗を検知することができません。

そこで、ICMPは IP をフォローする役割を持ちます。通信エラー発生時には、その場所からパケットの送信元に対してICMPによってエラー情報が通知されます。その結果、パケットの送信元は発生した障害内容を知ることができるわけです。

ICMPのエラー通知

 

ICMPには、IPv4(Internet Protocol version 4)のための 「ICMPv4」、IPv6(Internet Protocol version 6)のための「ICMPv6」が存在します。

また、ICMPプロトコルを使ったコマンド(ツール)では「ping」や「traceroute」などが有名です。

スポンサーリンク

ICMPヘッダ

ICMPヘッダは、MACヘッダ・IPヘッダの後ろに付与されます。ICMPヘッダの内容は次の通りです。

ICMPヘッダ

項目名ビット説明
タイプ(Type)8 bitICMPメッセージの種類の表す
コード(Code)8 bitICMPメッセージの種類内の詳細を表すコード
チェックサム(Checksum)16 bitエラーがないかどうかをチェック

ICMPメッセージの種類

ICMPには様々なメッセージ(通知)があります。主なICMPメッセージの種類は次の通りです。

タイプ(Type)コード(Code)説明
0(エコー応答)0エコー要求に対する応答。
3(宛先到達不可能)0Destination network unreachable(宛先ネットワークに到達できない)
1Destination host unreachable(宛先ホストに到達できない)
2Destination protocol unreachable(宛先プロトコルに到達できない)
3Destination port unreachable(宛先ポートに到達できない)
4Fragmentation required, and DF flag set(フラグメンテーションが必要で、DFフラグが設定されている)
5Source route failed(ソースルートに失敗)
6Destination network unknown(宛先ネットワークが不明)
7Destination host unknown(宛先ホストが不明)
8Source host isolated(分離されたソースホスト)
9Network administratively prohibited(管理上禁止されているネットワーク)
10Host administratively prohibited(管理上禁止されているホスト)
11Network unreachable for TOS(TOSのネットワークに到達できない)
12Host unreachable for TOS(TOSに到達できないホスト)
13Communication administratively prohibited(管理上禁止されている通信)
14Host Precedence Violation(ホストの優先度違反)
15Precedence cutoff in effect(有効な優先度カットオフ)
5(経路変更要求通知)0Redirect Datagram for the Network(ネットワークへの最適経路変更を通知)
1Redirect Datagram for the Host(ホストへの最適経路変更を通知)
2Redirect Datagram for the TOS & network(優先制御でネットワークへの最適経路を通知)
3Redirect Datagram for the TOS & host(優先制御でホストへの最適経路を通知)
8(エコー要求)0エコー要求を指定ホストに対して行う
11(時間切れ)0TTL expired in transit(TTLは転送中に期限切れ)
1Fragment reassembly time exceeded(フラグメントの再組み立て時間が超過)

※TTLとはパケットの最大転送回数。ルータを経由するごとに1減少し、TTLが0になるとパケットは破棄される。

スポンサーリンク

ICMPプロトコルを利用したコマンド

ping

988763445

ICMPプロトコルを利用した代表的なコマンド「ping」は、「エコー要求」と「エコー応答」を用いて、指定コンピュータまでパケットが届くかを確認するコマンドです。

ネットワークの疎通確認で使われる便利なコマンドです。

traceroute

「traceroute」は、指定コンピュータに到達するまでの間、どのような経路を辿っているのか調査するコマンドです。

ここでいう経路とは、コンピュータ間を接続するルータ(ゲートウェイ)のことであり、tracerouteにコマンドにより、経路上にどのようなルータ(IPアドレス)を経由しているかが判断できます。

※Windowsで実行する場合「tracert」コマンドを使用します。

helpful