パケットとは
パケットは、ネットワークでデータを運ぶために、宛先などの制御情報を付けて扱う、ひとまとまりのデータです。長い文書や大きな画像も、通信では扱いやすい大きさの単位に分けられて運ばれます。
荷物に配送票を付けるように、パケットには処理に必要な情報を入れるヘッダーと、運びたい内容を入れるペイロードがあります。小分けされた内容と、届けるための情報を組み合わせた単位と考えると全体像をつかめます。
なぜデータを分けて運ぶのか
一つの巨大なデータが回線を長時間占有すると、ほかの通信が割り込みにくくなります。また、ネットワークごとに一度に運べる大きさには上限があります。小さな単位に分ければ、多数の通信を交互に運び、失われた部分だけを再送する設計が可能になります。
分割の仕方や再送の担当は、使うプロトコルによって異なります。TCPを使う通信では、アプリから受け取ったデータをTCPが区切り、順序を管理し、必要なら再送します。IPは、そのデータを宛先アドレスへ向けて運びます。
ルーターは何を見て転送するのか
途中のルーターは、IPヘッダーにある宛先IPアドレスを手掛かりに、次に渡す相手を選びます。通常はWebページの文章全体を理解して経路を選ぶのではありません。それぞれのパケットを受け取り、経路表に従って次の区間へ渡します。
パケットは複数のルーターとネットワークを通ることがあります。経路の混雑や障害で別の道を通ることもあり、同じ相手との通信でも常に一つの固定経路になるとは限りません。
ヘッダーにも容量が必要
送信元・宛先、種類、長さなどの制御情報も通信量に含まれます。アプリが送った本文だけが回線を流れるわけではありません。IPの上にTCP、さらにその上にHTTPというように層を重ねると、それぞれの層が必要な情報を付けます。
IPv4(Internet Protocol Version 4/インターネット・プロトコル・バージョン・フォー)とIPv6(Internet Protocol Version 6/インターネット・プロトコル・バージョン・シックス)では、アドレスの長さやヘッダーの構造が異なります。
パケット、フレーム、セグメント、データグラム
- パケット
- 層を厳密に限定せず、ネットワークで運ぶデータ単位の総称として広く使われます。文脈を確認する必要があります。
- フレーム
- EthernetやWi-Fiなど、直接つながる一区間で扱うリンク層のデータ単位です。IPパケットを中に包んで運びます。
- セグメント
- 一般にTCPが扱うデータ単位を指します。順序番号などTCP用の情報を持ち、IPのペイロードに入ります。
- データグラム
- 独立して扱われる一通のメッセージです。IPデータグラム、UDPデータグラムのように、どの層かを補って使います。
すべてをパケットと呼ぶ説明は会話では通じても、障害調査や仕様を読む場面では層の違いを隠します。「IPパケット」「Ethernetフレーム」のように担当層を付けると正確です。
仕様の確認資料:RFC 8200「Internet Protocol, Version 6 (IPv6) Specification」、RFC 1122