連載:アニメーションで見るパケット君が住む町(9)
インターネット世界の連絡係


綱野衛二
Roads to Node
2010/5/19
前回、前々回でIPアドレスとルーティングについて説明しました。この2つはTCP/IPにおけるデータ通信の中核といえる技術です。さて今回は、ちょっと違った役割を持つプロトコルを説明します。

トラブルや連絡を伝える

 前々回の記事でパケット君が使う住所である「ビル所在地」について、前回はルート君による「道筋の決定」について説明しました。この2つはこのインターネット世界で別の市区に荷物を配送するために必要な考えです。今回はこの2つを踏まえたうえで、別のキャラクターが登場します。

9-1 報告書を書こう

 さて、パケット君、ルート君が仕事をしている「商品受発注課」ですが、ここにいる2人に、もう一度簡単にこの課の仕事を説明してもらいましょう。

パケット君「ビル所在地を確認して」

ルート君「そこへの道のりを決める」

 ……ちょっと簡単にし過ぎじゃないですか?

 パケット君は、TCP課長かUDP課長から荷物を受け取ります。そして、そこに配送票を付けます。ルート君は、配送票の届け先ビル所在地を確認して、届け先への道のりを決定します。その指示に従って、イーサ配送君に次に中継するステーションへの配送を頼む、と。

パケット君「そうだね。3階商品受発注課の仕事は『市外との荷物のやりとり』のための手続き、だからね」

ルート君「僕とパケット君の2人でそれをやってるってことさ」

 なるほど、お2人が3階商品受発注課の主力メンバーってわけですね。

 ……おや。そこにいるのは誰ですか? 彼もお仲間のように見えますが?

パケット君「ん? あぁ、ICMP君だね。彼も3階商品受発注課の一員さ」

ルート君「おーい、ICMPく〜ん!」

ICMP君「やぁ、どうもどうも。ICMPといいます。以後お見知りおきを」

 これはご丁寧に。では、ICMP君の仕事を聞いてみましょう。

ICMP君「私の仕事は、そう、簡単にいえば連絡係かな。私は荷物を運ぶわけではありません。『パケット君が運んだ結果発生したこと、運ぼうとしたことで発生したこと』を伝える係なんですよ」

 ふむふむ、連絡係。確かに前回までの話を思い出してもらえば分かりますが、パケット君たちは「届ける」ために必要な作業を行います。ですが、届けることに付随する事象に対しては、意外と無頓着だったりしますよね。

 例えば、

  • ステーションの場所が分からないので市外へ送ることができない
  • 届け先まで届かない
  • 届いたとしても、応対する部署がない

などの事態が発生したとしても、パケット君やルート君は何もしませんよね。

パケット君「う……た、確かに何もしない、かな」

ICMP君「そんなふうに、パケット君の仕事がうまくいかなかったことを報告するのが私の仕事の1つ、ということになります」

 なるほど、「パケット君の失敗の報告」ですね。

 ただし、ICMP君の仕事はあくまで「報告書」を作ること。そうして作成された報告書を、「荷物」としてパケット君が運びます。つまり、「パケット君が荷物を運ぶ」「それが失敗する」「ICMP君が報告書を書く」「パケット君が発送元にそれを運ぶ」という流れになるわけですね。

図9-1 連絡係を務めるICMP君の仕事

ICMP君「もう1つ、運輸状況の確認のため、荷物をパケット君に送ってもらうという作業も行います」

 ふむふむ、「運輸の状況を確認」するための「依頼書」か「報告書」を書くということですね。そして、それをパケット君に運んでもらう、と。つまりICMP君がやっているのは、「パケット君の運輸の状態」について「報告書」を書く仕事、ということになりますね。この報告書は

  • 発送元に、運輸がうまくいかなかったことを伝える
  • 現在の状況を調べる

ために使われる、ということになります。

 では、ICMP君の書く報告書の内容を見せてもらいましょう。う〜ん……。

  • 報告分類
  • 分類詳細

ぐらいしか特に目立つものがありません。すごくシンプルな報告書ですね。

 んん? ちょうどステーションにいるICMP君が、発送元に「荷物が届かなかった」という報告書を書いているようです。ちょっと見せてもらいましょう。

図9-2 ICMP君の報告書の内容

 なるほど、これで発送元に「どういう理由で届かなかったか」が報告されるのですね。パケット君も、自分でこれくらい説明すればいいのに。

パケット君「ううぅ」

ICMP君「パケット君を責めないでください。彼の役割は『荷物を届ける』こと。それ以外の仕事は別の人間がやればいいだけです」


 前々回の「インターネット世界の住所の書き方」前回「インターネット世界の地図」でIPとルーティングについて説明しました。

 IPというプロトコルの特徴は「コネクションレス型プロトコル」という点にあります。「コネクションレス型」とは、事前にデータを送ることを伝えたり、データを送った後にそれが到着したかを確認したり、「あて先との打ち合わせ」をまったく行わないデータ通信を行うプロトコルを指します。イーサネット、IP、UDPというTCP/IPネットワークでもよく使われるプロトコルは、いずれもこのコネクションレス型です。いうならば「送りっ放し」のプロトコル、であると考えれば分かりやすいでしょう。

 この話は、先の回のTCPのところでまた出てきますので覚えておいてください。

 コネクションレス型はその特徴から、「ベストエフォート」である、ともいわれます。ベストエフォートとは「最善努力」ともいわれる方式で、「相手に届くように考えてはいるが、届かなかった場合でも何もしない」という通信方式を指します。

 このコネクションレス型のIPというプロトコルでは、「相手に届かなかった」場合でも何もしません。そこで、何らかの「エラー通知」を行うプロトコルが別に用意されています。それがICMP(Internet Control Management Protocol)です。

 ICMPはIPと同じレイヤ3のプロトコルで、IPを使ってメッセージを伝えます。

 このICMPが伝えるメッセージで、その内容は「タイプ」と「コード」から分かるようになっています。タイプには大きく分けて「Query」「Error」の2種類が存在します。

図9-3 ICMPメッセージとタイプ
タイプ 名前 意味 分類
0
Echo Reply エコー応答 Query
3 Destination Unreachable あて先到達不能 Error
4 Source Quench 送信抑制指示 Error
5 Redirect 経路変更 Error
8 Echo Request エコー応答 Query
11 Time Exceeded 時間切れ Error
12 Parameter Problem パラメータ障害 Error
13 Timestamp Request タイムスタンプ要求 Query
14 TimeStamp Reply タイムスタンプ応答 Query
表1 ICMPメッセージのタイプと意味

 この中でも、タイプ「0」「3」「5」「8」「11」はよく使われるメッセージです。

 まず、タイプ「3」の「Destination Unreachable」(あて先到達不能)は、あて先に到達、つまり届かなかった原因を伝えるためのメッセージです。このメッセージは主にルータが送信元に送るメッセージになります。あて先到達不能メッセージでは、タイプの後ろの「コード」の部分に、到達不能の原因の詳細を入れることになります。

 なお、ICMPはあくまで「届かなかった原因」を伝えるだけで、「原因が分かったからどのように対処するか」は、通信するアプリケーションによって異なります。

 また、タイプ「5」の「Redirect」(リダイレクト)も、ルータが通知するメッセージになります。これはパケットを受け取ったルータが、「あて先までの経路として、よりよい経路を持つルータが別にある」ことを伝えるメッセージになります。

図9-4 タイプ3の「Destination Unreachable」とタイプ5の「Redirect」

 これ以外のタイプについては、以後説明していきます。

 

9 インターネット世界の連絡係
トラブルや連絡を伝える
9-1 報告書を書こう
  9-2 相手に届くか確認してみよう
  9-3 保管日数と時間切れを使ってみよう
9-4 おさらい


関連記事
  ネットワーク・コマンド/ツール群の活用法を大紹介
連載 ネット・コマンドでトラブル解決
あなたのLANは健康ですか? 現状改善から一歩進んだ構築術まで
特集:基礎から学ぶネットワーク構築

レスポンスの悪いネットワークシステム どう検証し、解決していくか?
特集:ネットワークトラブルを解決する
運用管理に必須のツール/コマンド群
連載:24×365の運用管理

「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間