ICMPとは?
ICMP(Internet Control Message Protocol)は、IPプロトコルの「エラー通知」や「制御メッセージ」を転送するためのプロトコル。TCP/IPが実装されたコンピュータ間で、通信状態を確認するために使用される。ICMPはインターネット層で動作するプロトコル。
ICMPのフォーマット
※(参考元リンク)[https://www.infraeye.com/study/linuxz49.html]
ICMPメッセージは「タイプ」「コード」「チェックサム」「データ」の4つフィールドにより構成される。
各フィールド | 英語表記 | ビット数 | 各フィールドの説明 |
---|---|---|---|
タイプ | Type | 8bit | ICMPメッセージの機能タイプの値が入る。 |
コード | Code | 8bit | ICMPメッセージの詳細な機能コードの値が入る。 |
チェックサム | Checksum | 16bit | エラーがないかどうかチェック |
データ | Data | 可変長 | ICMPの「タイプ」により長さが異なる |
ICMPの2種類のメッセージ
ICMPメッセージには大きく分類して2種類ある。
- 問い合わせ(Querry)のメッセージ
QUerryにより、あるノードから特定のノードに対する通信状態を確認することができる。(ping, traceroute) - エラー通知(Error)のメッセージ
ノード間の通信で経路途中でパケットが廃棄された場合に、その原因を送信元のノードにエラー通知する。
- ICMPメッセージのタイプ一覧
|タイプ|内容意味|種類|
|---|---|---|---|
|0|Echo Reply|エコー応答|Query|
|3|Destination Unreachable|Error|
|5|Redirect|Error|
|8|Echo Request|Query|
|11|Time Exceeded|Error|
- ICMPメッセージのコード一覧
タイプが「0」= 「Echo Reply」の時
コード | 内容 | 意味 | 種類 |
---|---|---|---|
0 | Echo Reply | エコー応答 |
タイプが「3」= 「Destination Unreachable」の時
コード | 内容 | 意味 | 種類 |
---|---|---|---|
0 | Net Unreachable | 宛先ネットワークに到達できない | Error |
1 | Host Unreachable | 宛先ホストに到達できない | |
2 | Protocol Unreachable | プロトコルに到達できない | Error |
3 | Port Unreachable | ポートに到達できない | Error |
4 | Fragment Needed and DF was Set | パケットの分割が必要であるが分割禁止フラグ(DF)が立っているので、パケットを破棄 | Error |
5 | Source Route Failed | ソースルーティングが失敗 | Error |
6 | Destination Network Unknown | 宛先ホストが不明 | Error |
7 | Source Host Unknown | 送信元ホストが使用されていない | Error |
8 | Source Host Isolated | 送信元ホストが使用されていない | Error |
9 | Communication with Destination Network is Administratively Prohibited | 宛先ネットワークとの通信が管理上禁止されている | Error |
10 | Communication with Destination Host is Administratively Prohibited | 宛先ホストとの通信が管理上禁止されている | Error |
11 | Destination Network Unreachable for ToS | 指定された優先制御値では、宛先ネットワークに到達できない | Error |
12 | Destination Host Unreachable for ToS | 指定された優先制御値では、宛先ホストに到達できない | |
13 | Communication Administratively Prohibited | 通信が管理上禁止されている | Error |
14 | Host Precedence Violation | ホストの優先度が違反している | Error |
15 | Precedence cutoff in effect | 優先制御が事実上切断された | Error |
タイプが「5」= 「Redirect」の時
コード | 内容 | 意味 | 種類 |
---|---|---|---|
0 | Redirect Datagram for the Network | ネットワークへの最適経路変更を通知 | Error |
1 | Redirect Datagram for the Host | ホストへの最適経路変更を通知 | Error |
2 | Redirect Datagram for the ToS and Network | 優先制御でネットワークへの最適経路を通知 | Error |
3 | Redirect Datagram for the ToS and Host | 優先制御でホストへの最適経路を通知 | Error |
タイプが「8」= 「Echo Request」の時
コード | 内容 | 意味 | 種類 |
---|---|---|---|
0 | Echo Request | エコー要求 | Query |
タイプが「11」= 「Time Exceeded」の時
コード | 内容 | 意味 | 種類 |
---|---|---|---|
0 | Time to Live exceeded in Transit | 転送中にTTLの値が超過した | Error |
1 | Fragment Reassemly Time Exceeded | 分割パケットを組み立て中に時間が超過した | Error |