目次
ICMPとは
- ICMP(Internet Control Message Protocol)
→ IPの仲間で、通信エラーの通知 や 制御メッセージ をやり取りするためのプロトコル。 - TCP/IPネットワークで 通信状態を確認 するときに使われる。
- OSI参照モデルでは「ネットワーク層」に位置する。
「ping(ピング)」や「traceroute(トレースルート)」でよく登場するのがICMP。
ICMPのフォーマット
ICMPメッセージは以下の4つで構成されます。
| フィールド | 英語表記 | ビット数 | 説明 |
|---|---|---|---|
| タイプ | Type | 8bit | メッセージの種類(エコー要求、到達不能など) |
| コード | Code | 8bit | メッセージの詳細内容 |
| チェックサム | Checksum | 16bit | エラー検出用 |
| データ | Data | 可変長 | タイプごとに異なる追加情報 |
💡 イメージ
「タイプ=大きなくくり」「コード=細かい理由」「データ=おまけ情報」
ICMPの2種類のメッセージ
- 問い合わせ(Query)系
- 通信状態を確認するためのメッセージ。
- 代表例:ping(Echo Request / Echo Reply)、traceroute。
- エラー通知(Error)系
- 通信できなかったときの理由を送信元に知らせる。
- 代表例:「宛先に到達できない」「TTL超過」など。
主なICMPメッセージ例
| タイプ | コード | 内容 | 意味 | 種類 |
|---|---|---|---|---|
| 0 | 0 | Echo Reply | pingの応答 | Query |
| 3 | 0 | Net Unreachable | 宛先ネットワークに到達できない | Error |
| 3 | 1 | Host Unreachable | 宛先ホストに到達できない | Error |
| 5 | 0 | Redirect | 最適な経路を通知 | Error |
| 8 | 0 | Echo Request | pingの要求 | Query |
| 11 | 0 | Time Exceeded | TTLが0になった(パケット破棄) | Error |
初心者向けまとめ
- ICMP = ネットワークの郵便局からの通知表
- 「この住所(IP)は届きません」= Destination Unreachable
- 「配達ルートを変えてください」= Redirect
- 「生存時間切れ(TTL超過)」= Time Exceeded
- ping は「手紙を送って返事が来るか」を確認する仕組み。
- traceroute は「配達経路を調べる」仕組み。