PR

 IPはIPデータグラムをルーター間でバケツリレーのように中継してあて先に送り届けます。しかしIPは通信経路自体には無頓着です。途中でエラーが起こって配送に失敗したことを送信元のホストに知らせたり,使いたい経路が生きているかどうかを調べる機能はIPにありません。こうした制御メッセージのやり取りはICMP(アイシーエムピー:Internet Control Message Protocol)という別のプロトコルの役目です。

ICMPはIPの「お助け役」

 ICMPはIPを使ってルーターやホストの間でメッセージを交換します。ICMPのメッセージには15種類のタイプがあり,大きく二つのグループ(クラスと呼びます)に大別できます。

 一つ目のクラスはICMPエラー・メッセージです。 ルーターやホストはIPデータグラムの配送中に何か問題が起こったらICMPエラー・メッセージで送信元に報告します。「あて先到達不能」「発信抑制」「時間超過」といったメッセージがあります。

 あて先到達不能メッセージはデータグラムがあて先まで配送できないときに送ります。あて先IPアドレスで指定されたネットワークへ経路がないときや,分割(フラグメント)しないと転送できないサイズのデータグラムが届いたけれども,分割禁止が指定してあるときなどです。

 未送出のパケットが貯まり,新たなパケットを受信できない状態にあるルーターは「もうこれ以上送るな」という発信抑制メッセージを送信元に通知します。また,受け取ったデータグラムのTTL(Time To Live=生存時間)が0になって,データグラムを廃棄するときは,ルーターが時間超過メッセージを送信元に送ります。

 ICMPメッセージもIPデータグラムとして運ばれます。このためICMPメッセージの配送がエラーを起こすこともあり得ます。しかし,こうした場合は新たにエラー・メッセージを生成しません。エラー・メッセージが反復して生成され,ネットワークが混雑するのを避けるためです。

拡大表示
 IPネットワークはルーターとルーターの間をバケツリレー方式でIP データグラムを転送します。ICMPはルーター間の通信を円滑にするために,伝言を送るプロトコルです。
 図では分割しないと送れない荷物がルーターに届いた様子を描いています。子供(IP)が持っているお母さん(ホスト)へのメッセージがICMPエラー・メッセージです。
 何らかの理由でIPデータグラムを転送できないとか,ネットワークの混雑を避けるためにデータグラムの送信を止めて欲しいとき,他に適切な経路があることを知らせたいときなどにICMPメッセージが送られます。ICMPメッセージを使うことで,ルーターは適切なデータグラムの配送制御を行えるのです。