大きなデータを小分けにすると回線を共有できる
Webページや動画のデータを、送信開始から終了まで一本の巨大なかたまりとして扱うと、その通信が回線を長く占有してしまいます。そこでパケット通信では、データを扱いやすい大きさに分け、複数の通信のパケットを同じ回線へ順番に流します。ある通信がデータを送っていない時間には、別の通信のパケットを運べます。限られた通信路を多くの利用者や機器で共有しやすい仕組みです。
通信相手との間に専用の経路を固定してから情報を流す方式は、回線交換と呼ばれます。一方、パケット交換では、中継機器が届いたパケットを宛先に近い次の中継先へ転送します。そのため、送信側は途中にあるすべての機器と直接つながる必要がありません。家庭や学校など限られた範囲のネットワークと、離れた地域を結ぶネットワークの違いは、LANとWANを合わせて見ると整理できます。
荷札に当たるヘッダと中身のペイロード
パケットには、運びたいデータだけでなく、通信を制御するための情報も付加されます。先頭側に置かれる制御情報が「ヘッダ」、実際に運ばれる中身が「ペイロード」です。郵便物に宛名を書いた荷札を付ける関係に似ています。ただし、ヘッダに何が入るかは、使う通信プロトコルによって異なります。すべてのパケットに同じ項目があるわけではありません。
インターネットで使われるIPのパケットでは、送信元と宛先のIPアドレスなどがIPヘッダに入ります。ルータは主に宛先IPアドレスを調べ、経路表と照らし合わせて次の転送先を決めます。この処理が中継地点ごとに繰り返され、パケットは目的のネットワークへ近づいていきます。
ヘッダも通信量の一部なので、パケットを極端に小さく分けると、データ本体に対するヘッダの割合が大きくなります。反対に、大きすぎるパケットは、その通信路で一度に運べる上限を超えることがあります。この上限はMTU(最大転送単位)と呼ばれます。効率よく送るには、データ本体の量だけでなく、通過するネットワークで扱える大きさも関係します。
Webページが届くまでに何層もの情報で包まれる
Webページを受け取る場面では、一つのデータが段階ごとの規則に従って包まれます。たとえばTCPを使う通信では、アプリケーションが扱うデータにTCPの制御情報が付き、それがIPの情報を持つ単位に収められます。さらにLANを通るときは、機器同士で運ぶための情報が加わり、「フレーム」と呼ばれる単位になります。
このように、層によって呼び名と役割が異なります。日常的にはネットワークを流れる小さなデータ単位を広く「パケット」と呼ぶことがありますが、厳密にはTCPの単位をセグメント、IPの単位をパケットまたはデータグラム、データリンク層の単位をフレームと呼び分けます。受信側では外側の制御情報から順に確認し、最終的にアプリケーションが利用するデータを取り出します。
また、暗号化された通信でも、パケットを届けるために必要な制御情報まで一律に見えなくなるわけではありません。暗号化が保護する範囲は方式や通信の層によって異なります。データの内容を読めないようにする仕組みと、宛先へ転送する仕組みは、分けて考える必要があります。
パケットは消えることも順番が入れ替わることもある
IPは、各パケットを宛先へ届けようとしますが、到着そのものを保証する仕組みではありません。経路の混雑で中継機器の処理能力や一時的な保存領域が足りなくなれば、パケットが捨てられることがあります。通信途中の障害などでも失われる可能性があります。これがパケットロスです。また、経路や混雑の状態がパケットごとに異なれば、送った順番とは違う順番で到着する場合もあります。
そこで、正確さを優先する通信ではTCPなどが不足したデータの再送を求め、順番を整えてからアプリケーションへ渡します。一方、音声通話やオンラインゲームのように、遅れて届く古いデータの再送が役立ちにくい場面では、UDPを使って遅延を抑える構成もあります。ただし、「TCPなら必ず速い」「UDPなら必ず映像用」という意味ではありません。必要な信頼性や遅延の条件に応じて、アプリケーション側の設計と組み合わせて選ばれます。
通信品質を見るときも、回線速度だけでは十分ではありません。パケットが往復するまでの遅延、遅延時間のばらつき、失われる割合などが、操作感や音声・映像の滑らかさに影響します。表示上の最大速度が同じネットワークでも、混雑や経路の状態によって体感が異なるのは、このためです。
「小包」という名前が示すパケットの性格
英語のpacketには、小包やひとまとめにしたものという意味があります。データ本体に配送用の情報を付け、独立して運べる形にするという特徴をよく表した名前です。ただし、現実の宅配便と違い、同じデータから分かれたパケットが常に同じ経路を通るとは限りません。中継機器はその時点の経路表に基づいて転送するため、途中の経路が変わる可能性があります。
パケットの様子は、パケットキャプチャという方法で観察できます。これは端末が送受信した通信の制御情報などを記録し、プロトコルの種類や通信相手、データ量、応答の流れを調べる方法です。障害の原因調査やネットワークの学習に役立つ一方、記録には通信相手などの情報が含まれ得ます。自分が管理する機器や、明確に許可された環境だけで行い、記録の保存や共有にも注意が必要です。