Pict1.順番にヘッダーを付けていく
Pict1.順番にヘッダーを付けていく
[画像のクリックで拡大表示]

 今回から新しく6回の講座を始めましょう。今回の講座のテーマはヘッダーです。ヘッダーはパケットを使った通信で,パケットの先頭に付けられる制御のための情報です。ユーザーが送りたいデータとは別に,制御のためだけに加えられますから,ユーザーから見ると余計な情報です。しかしヘッダーがないと,パケットを正しい相手に適切に送れません。

 ヘッダーはネットワークで使われる通信プロトコルごとに決まっていて,それぞれのヘッダーの構成はプロトコルが提供する機能を実現できるように工夫して作られています。プロトコルの機能はヘッダーに集約されているのです。

 このシリーズではおもに,IPとTCPの機能とヘッダー情報との関係を見ていきます。第1回である今回は,ヘッダーの一般的な構成と役割を改めて確認しておきましょう。

ヘッダー内の制御情報がデータの扱い方を決める

 コンピュータ・ネットワークの仕事は,データを通信相手に適切な形で届けることです。そのためには,いろいろな機能が必要で,通常はこれらの役割を複数の通信プロトコルで分担しています。それぞれのプロトコルが受け取ったデータをどのように扱うか決めるために使うのが,ヘッダーに収めた制御情報です。

 具体的に,データがどういう形でパケットとして送り出されるかを見ていきましょう(pict.1[拡大表示])。

 まず,Webブラウザや電子メール・ソフトといった送信元のアプリケーション・プログラムがデータの先頭にアプリケーション・ヘッダーを取り付けます。アプリケーション・ヘッダーには,パケットを受け取ったあて先のアプリケーションがそのデータをどう扱うかを決めるための情報が含まれています。

 こうして作られた「アプリケーション・ヘッダー+データ」は一つ下のトランスポート層プロトコル(今回の場合はTCP)のプログラムに渡されます。TCPのプログラムはアプリケーションから受け取った「アプリケーション・ヘッダー+データ」の先頭にTCPヘッダーを取り付けます。別の見方をすると,「アプリケーション・ヘッダー+データ」は「TCPのデータ」として扱われるわけです。

封筒で何重にも包んでいくイメージ

 以下,下の階層に渡されるたびに,先頭にヘッダーが付け加えられてパケットが作られていきます。一番下位の物理層までたどり着くと,できあがったパケットが先頭から銅線ケーブルや光ファイバ,無線といった通信媒体を使って相手へ送り出されます。このとき送られるパケットは,先頭から順番にそれぞれの階層のプロトコルのヘッダーが並ぶ形になっています。

 この様子はよく,手紙が二重,三重に封筒に入れられている状態に例えられます。封筒のあて名やスタンプがヘッダーに対応します。あるプロトコルを動かすプログラムは,上位層から受け取ったデータを封筒に収め,必要な情報を表面に書き足して下位のプロトコルのプログラムに渡します。

 受信側で封筒を開くときはまず,封筒に書かれた情報を見て処理を行います。例えば,封筒にメッセージの順番が書いてあれば,上位層に渡すときにその順番をそろえるとか,メッセージに抜けがあれば,送信者にもう一度送るように連絡します。

 受信側のプログラムは,こうした処理を経て,自分の階層のヘッダーを取り除いた中身を上位層のプログラムに渡していきます。封筒を開いて中身だけを上に渡すわけです。


●筆者:水野 忠則(みずの ただのり)氏
静岡大学創造科学技術大学院 大学院長・教授。情報処理学会フェロー,監事。現在の研究分野はモバイル&ユビキタス・コンピューティング,情報ネットワークなど。
●筆者:佐藤 文明(さとう ふみあき)氏
東邦大学理学部情報科学科教授。東北大学大学院工学研究科修了。現在の研究分野は通信ソフトウエアの開発方法,分散処理システムなど。
●イラストレータ:なかがわ みさこ
日経NETWORK誌掲載のイラストを,創刊号以来担当している。ホームページはhttp://creator-m.com/misako/