ネットワークでやりとりするデータはパケットやフレームと呼ばれる単位に分割され、回線上を行き来する。同じものを指してパケットといったり、フレームといったりするが、厳密には別モノだ。

 インターネット技術の標準化を推進する任意団体IETF(Internet Engineering Task Force)の用語解説「RFC 1983 Internet Users' Glossary」によると、パケットは「すべてのプロトコルスタックで、ネットワークを行き交うデータの単位として使われる一般的な用語」と紹介されている。つまりどのようなプロトコルでも、データの一固まりはすべてパケットである。

 一方フレームは、「データリンク層を流れるパケット」と紹介されている。現状ではデータリンク層といえばイーサネットがほとんどなので、フレームは「イーサネットでやりとりするデータの最小単位」となる。そのためフレームを、MACフレーム、イーサネットフレームなどと呼ぶ。

 ここで下図のようなHTTPのやりとりを考えてみよう。HTTPを利用するアプリケーションは、(1)のHTTPパケットを作成する。HTTPパケットは、HTTPのアプリケーションデータとHTTPヘッダーから成る。HTTPパケットはTCPを利用するので、HTTPパケットにはTCPヘッダーが付けられる。この状態が(2)のTCPパケットだ。TCPパケットはIPを利用するので、TCPパケットにはIPヘッダーが付けられる。この状態が(3)のIPパケットだ。IPパケットをイーサネットで転送するためにMACヘッダーを付けたものが(4)のMACフレームである。データリンク層なのでMACパケットとは呼ばずに、MACフレームというのである。

[画像のクリックで拡大表示]

 MACフレームは大きく三つのパーツに分けられる。ヘッダー、ペイロード、トレーラーだ。ヘッダーはフレームの先頭にあり、フレームの送受信先となるアドレス情報などが入る場所だ。トレーラーはフレームの最後にあり、データが正確に受信できているかといった整合性を検証するためのFCSというデータが入っている場所だ。そしてヘッダーとトレーラーに挟まれているペイロードが、送受信したいデータそのものである。このペイロードが、先ほどのIPパケットに当たる部分だ。

 このようにパケットとフレームは別モノなのだが、業務の現場ではフレームのことをパケットと呼ぶことも多い。また、データの一固まりを説明する用語は、プロトコルの規格によって異なることがある。例えばTCPではセグメント、IPやUDPではデータグラム、HTTPではメッセージと呼んだりする。ネットワークでやりとりするデータの単位にはいろんな呼び名があることを気にとどめておこう。