定義
パケット(Packet)とは、インターネットやコンピューターネットワークでデータをやり取りする際に使われる、最も基本的な伝送単位のことです。容量の大きなファイルや動画を細かく分割して小さな荷物箱に詰め、宛先で元の形に組み立て直す仕組みで動いています。
巨大なファイルも細かく分ければスムーズに通れます
インターネットで高画質の映画をダウンロードするとき、その巨大なファイルが丸ごと1本の通信回線を通って一気に流れ込んでくるわけではありません。もし大きなデータの塊を丸ごと送ってしまうと、それが通過する間、他の人全員のインターネット通信が完全に遮断されてしまいます。道路を巨大な超大型トラックが独占して、他の車が一切通れない状況と同じです。
そこでコンピューターは、大きなデータを細かく切り分けて別々の小箱に詰め込みます。このように小さく分割されたデータの包みを「パケット」と呼びます。小さくなったパケットなら、他の人のパケットと順番を譲り合いながら同じ回線をシェアできます。もし途中の道が混雑していたり途切れたりしても、ルーターが別のルートへと迂回させてくれます。
そのおかげで、1本のネットワーク回線を大勢のユーザーが仲良く分け合って使うことができます。動画を見ている最中でも、隣の部屋の家族がストレスなくウェブ閲覧を楽しめるのは、まさにデータを細かく分割して送る仕組みがあるからなのです。
パケットの先頭には伝票が貼られています
宅配便を発送するとき、荷物の箱には送り主や届け先の住所、荷物番号などが書かれた伝票(送り状)を貼りますよね。パケットもこれとまったく同じ構造になっています。パケットは大きく分けて、実際に届けるデータが入った「本体」と、案内情報が書かれた「先頭部分」で構成されています。
ITの世界では、この先頭部分を「ヘッダー(Header)」、実際の中身を「ペイロード(Payload)」と呼びます。ヘッダーには何重もの情報が含まれており、IPヘッダーには送信元と宛先のIPアドレスが、TCPなどの伝送方式のヘッダーにはデータの組み立て順序を示す番号が記録されています。
この伝票情報があるからこそ、Wi-Fiルーターや通信機器がパケットを見てどの道に送り出すべきかを判断できます。また、宛先のコンピューターはバラバラに届いたパケットを、TCPヘッダーの順序番号を手がかりにして元のファイルへと正確に組み立て直すのです。
もう少し詳しく:迷子になっても再送してもらえます
もう少し詳しく見ると、パケットは一つひとつが独立して送られます。ルーターは宛先アドレスを見て次の経路へパケットを渡すため、多くは同じルートを通りますが、状況によっては別々のルートを通ったり、送信順とは違う順番で届いたりすることもあります。先に出発した1番のパケットより、後から出た2番のパケットのほうが先に届くことすらあるのです。
さらに、電波や通信状況が悪いと、途中でパケットが消えてしまう「パケットロス」が発生することもあります。そんなとき、信頼性を重視するTCPという仕組みでは、ヘッダーに書かれた順序番号を照合して抜けがないかチェックします。もし3番のパケットが届いていなければ、送信元に「3番だけもう一度送って」と再送を要求して穴埋めをします。
もちろん、リアルタイムの音声通話やオンラインゲームのように、極限のスピードが最優先される場面では、失われたパケットの再送を待たずにそのまま進める通信方式(UDPなど)も使われます。場面に応じてルールを使い分けながら、データを安全かつスピーディーに届けているのです。
よくある誤解
インターネットでファイルを送るときは、1本の回線を通ってファイル全体が一本道で一気に転送される。
データは無数のパケットに細かく分割されてそれぞれ独立して転送され(ときには別々のルートを通ることもあります)、宛先で再び組み立て直されます。
日常で出会う場面
YouTubeなどの動画を視聴するとき、映像が途切れずに再生され続けるのは、動画のパケットが絶え間なく届いて裏で組み立てられているからです。
オンラインゲームでラグが発生したりキャラクターがワープしたりする現象は、パケットの到着が遅れたり(遅延)、途中で消えてしまったり(パケットロス)することで主に起こります。
つまり ひとことで
パケットはデータを小分けにした宅配ボックスのようなもので、宛先や順番が記されたヘッダーのおかげで回線を大勢でシェアでき、信頼性を重視する通信では宛先で漏れなく組み立て直されます。