ICMP(Internet Control Message Protocol)その1
目次
ICMPの役割
TCP/IP階層のインターネット層には、IPだけでなくさまざまなプロトコルが存在しています。その中でもIPを補佐する役目を持っているのが、ICMP(InternetControl Message Protocol)です。
IPはコネクションレス型プロトコルなので信頼性はあまり高くないです。もし、IPパケットが経路上でなくなったとしてもIP自体にはそのエラーを検出する仕組みは備わっていません。
ICMPには、もしもエラーが発生してパケットを正しく送り届けることができなくなってしまった場合、そのエラーを報告するエラーレポート機能が備わっています。また、ネットワーク管理者の方ならよく使う機会があると思いますが、PINGできちんと通信相手が動作しているのかという診断メッセージを送ることができます。PINGはトラブルシューティングには必須の機能ですね。
ICMPヘッダ構成
ICMPは階層的には、IPの上位に位置します。一応、IPと同じくインターネット層に含まれるプロトコルなんですが、IPパケットの中にICMPが入っています。
ICMPは8バイトのヘッダがあります。
この8バイトのうち、4バイトの共通ヘッダと各メッセージごとの固有のヘッダ部分に分かれています。
共通ヘッダは1バイトのタイプ、1バイトのコード、2バイトのチェックサムから構成されています。
タイプ、コードによってICMPのどんなメッセージなのかということを表しています。タイプは大分類、コードは小分類を表します。タイプとコードの一覧は次のとおりです。
タイプ | コード | 機能 |
0/8 | 0 | エコー応答/エコー要求 |
3 | 0-12 | 到達不能メッセージ |
4 | 0 | 送信元抑制メッセージ |
5 | 0-3 | リダイレクトメッセージ |
11 | 0-1 | 時間超過メッセージ |
12 | 0 | パラメータ異常 |
13/14 | 0 | タイムスタンプ要求/応答 |
17/18 | 0 | サブネットマスク要求/応答 |
そして2バイトのチェックサムによってエラーチェックを行うことができます。
次回以降、各タイプごとにどういう機能を持っているのかを具体的に解説していきます。