インターネットに接続している最中に通信できなくなってしまったときなど,pingコマンドを使ってルーターやサーバーにきちんと接続できるかどうかを確かめた経験がある人は多いだろう。

 このpingコマンドで使われているのがICMP(intenet control message protocol)というプロトコルである。ICMPは,pingで使われるようにIPの通信ができるかどうかを確かめるほか,目的のサーバーまでの経路を調べたり,ネットワーク上で発生しているエラーを通知するといった機能を持つ。

確実に通信するためのサポート役

 ICMPは,ネットワークにトラブルが発生したときやネットワークの稼働状況を調べるなどの場面で活躍する。ネットワークのどこかでパケットが送れないといったエラーが発生したときには,エラーを検知したルーターが詳細な状況を付けて送信元に通知してくれる。このように,ICMPはIPによる通信を手助けする重要な存在なのである。

 ICMPのしくみがわかれば,pingを使ってトラブル原因を突き止めるのに役立つ。また,ルーターがどのようなICMPメッセージを送っているのかを知ることで,IPによる通信のしくみをより深く理解できるようになる。あまり表立って見えてこないが,ICMPはネットワークを理解するためには押さえておきたいプロトコルである。

 そこで今回は,ICMPのしくみやICMPを使う際の注意点について詳しく見ていく。ICMPのしくみを理解するために,ICMPでやりとりするメッセージのフォーマットに加えて,pingなどのコマンドの裏側でICMPがどうやって情報を集めているのかといったポイントに注目して読み進めてほしい。

悪用される危険性も知っておこう

 Lesson1では,ICMPの役割を説明する。ICMPがなぜIPにとって重要なのか,ICMPはどのような働きをするのかを押さえよう。

 続くLesson2では,ICMPのメッセージの構造とメッセージの内容を具体的に見ていく。ICMPメッセージはIPパケットで運ばれる。IPパケットのデータ部分にメッセージが書き込まれているのだ。

 Lesson3では,ICMPを実装したコマンドを二つ取り上げて,そのしくみを解説する。ICMPのメッセージを使ってどのように情報を集めているのかを知ろう。

 最後のLesson4では,ICMPを悪用する攻撃を説明する。ICMPを利用するpingコマンドは,悪意あるユーザーに悪用されるケースがある。また,その対処方法についても触れる。

 修了テストでは,ICMPの役割やICMPを実装したコマンドの知識,ICMPを利用する上での注意点など,ICMPの基礎的な知識をチェックする内容を出題する。それほど難易度は高くないので,ぜひ修了テストに挑戦して四つのLessonで説明した内容の理解度を確かめてほしい。