
インターネットは、どうしてデータを小分けにするの?
写真も文章も、通信の途中では小さなデータのまとまりになって運ばれるよ。パケットという単位と、回線の共有・順番・送り直しの工夫を見てみよう。

まず、ひとことで
データをパケットという小さなまとまりで送ると、回線をほかの通信と共有しやすくなるよ。ただし、小分けにするだけで順番や到着が保証されるわけではない。TCPなど、受け取りを確かめて整える別の仕組みも必要なんだ。
写真が、そのまま空を飛んでいくわけではない
スマートフォンから写真を送ると、離れた相手の画面に同じ写真が現れるね。でも、紙の写真の小さなコピーが、電線や空の中を飛んでいくわけではないよ。コンピューターが扱う写真や文章は、数字で表したデータなんだ。そのデータを、通信で運べる信号にして送り、受け取る側が使う。ここでは、途中でデータを小分けにする工夫に注目しよう。
インターネットでは、データをパケットというまとまりで運ぶ。大きな写真や長いデータが、必ず一つのまとまりのまま最後まで進むわけではないんだ。たとえるなら、長い手紙を何枚かのカードに分けて届けるようなものだよ。ただし、本物のカードや箱を使うのではなく、数字の列と、それを運ぶ信号の話をしているんだ。小分けにする理由と、小分けにしたあとに必要な仕事を順に見てみよう。
中身だけでなく、行き先の情報も付く
パケットには、送りたいデータのほかに、通信のための情報が付いているよ。この付加情報の部分をヘッダーという。たとえばIPという通信の決まりでは、送り元や送り先を示すアドレスが含まれる。アドレスは、データをどこへ運ぶかを考えるための手がかりなんだ。本文だけを書いた手紙と、宛先も付いた手紙を比べると、情報を添える意味が分かりやすいね。
途中には、ルーターという中継する装置がある。行き先などの情報を使い、次にどちらへ渡すかを決めるんだ。ただし、一つの装置が写真全体の意味を理解して、相手の画面へ直接置いてくれるという話ではないよ。途中で運ぶ仕事と、最後に受け取ったデータを写真として使う仕事は違う。通信にはいくつかの役割が重なっていて、ヘッダーにも役割ごとの情報があるんだ。
同じ大きさの箱一つを送るのに、仮の一単位の時間がかかる模型。ヘッダーなどは省略し、実測の通信時間や実際の送る順の保証を表していないよ。
出典資料に基づきEggplanetが作成した模式図小分けなら、途中に別の通信を入れられる
一つの回線を、二人の通信が使いたい場面を考えよう。大きなデータAと、小さなデータBがある。Aを全部送り終わるまで一切区切れないとしたら、Bはその間、待つことになるね。Aをいくつかのまとまりへ分けておけば、その区切りでBを送る余地ができる。小分けのデータを順に扱うことが、回線を分け合う工夫につながるんだ。
最初の図では、Aを三つ、Bを一つの同じ大きさの箱として、二通りの送る順を並べたよ。どの箱も仮の一単位の時間がかかるとしている。Bを途中へ入れた方では、Bを送り終える時点が早くなる。ただし、全部を送り終えるまでの時間は同じなんだ。小分けにするだけで回線そのものが速くなる、という図ではないよ。また、現実にいつもこの順番で公平に送られるという約束でもないんだ。
到着した順と、もとの順は違うことがある
小分けにして送ると、受け取る側にも仕事ができるよ。途中の待ち時間などの違いで、もとの順番と違って届くことがあるし、届かないまとまりもあるんだ。IPはデータを運ぶ基本の仕組みだけれど、それだけで、すべてが順番どおり確実に届くことを保証してはいない。宛先が書いてあることと、ちゃんと届いたと確かめることは、別の働きなんだね。
ここで「一番目、二番目、三番目」と書いたカードを考えよう。三番目が先に来ても、目印があれば、もとの位置を考えられるね。目印がなければ、届いた順に置いてよいのか判断しにくい。数字はデータを運ぶだけでなく、受け取ったあとで整えるためにも役立つよ。ただし、実際の通信で使う目印の付け方は、この三枚のカードより細かいんだ。
TCPは、データの位置を使って整える
その工夫を持つ代表的な決まりがTCPだよ。TCPは、順番のあるデータの列を、受け取る側のアプリへ渡す仕組みを用意している。データの位置を表す番号などを使い、順番を確かめ、同じデータが重なって届いた場合も扱うんだ。ここで注意したいのは、実際のTCPの番号が、単に一番目のパケット、二番目のパケットという枚数ではないことだよ。
TCPでは、データをバイトという単位で数え、その位置を基に番号を付ける。1バイトは8ビット分の情報の単位だよ。詳しい番号の決め方は省くけれど、大きさが違うまとまりでも、どこに続くデータかを考えられるんだ。二つ目の図では、順を考えるためだけに、カードを一、二、三とした模型にしている。実際のヘッダーや番号を写した図ではないことを、覚えておこう。
来なかったデータは、送り直す工夫がある
TCPでは、受け取りの確認や時間の経過などを手がかりに、届いていないと考えられるデータを送り直す。再送という仕事だよ。二つ目の図で二番目のカードが届かなかったとしたら、一番目と三番目があるだけでは、全部の内容は完成しない。足りないカードが届けば、もとの順へそろえられる。運ぶ仕事と、欠けたところを補う仕事を組み合わせるんだね。
ただし、相手や回線が使えないままなら、送り直せば必ず最後まで成功するわけではないよ。通信が失敗したと判断されることもある。また、確認することにも、待つことにも時間がかかる。小分け、番号、確認、再送は、瞬間的に何でも届ける魔法ではないんだ。どの働きが、どの困りごとに対処しているのかを分けると、通信の仕組みが分かりやすくなるよ。
順番と不足を考えるためのカード模型。実際のTCPはパケットの枚数ではなくバイトの位置を基に番号を使うよ。確認や再送の細かな判断手順、実際のヘッダーは省いているよ。
出典資料に基づきEggplanetが作成した模式図細かければ細かいほど、よいのかな
小分けが便利なら、データを限りなく小さくすればよいのかな。でも、まとまりごとにヘッダーなどの付加情報を送る必要がある。小さい中身ばかりにすると、付加情報の割合が大きくなる場合があるんだ。通れるデータの大きさには回線などの条件もある。実際には、いろいろな条件に合わせて大きさや送り方を決める必要があり、細かさだけで良さは決まらないよ。
すべての通信がTCPを使うわけでもない。たとえばUDPという決まりは、それ自体ではTCPのような到着や順番の保証を用意しないんだ。その上でどんな工夫を足すかは、アプリなどの設計にもよる。だから動画やゲームなどを見て、全部がこの記事の再送の図どおりだと決めつけないようにしよう。同じインターネットでも、用途によって、必要な働きの組み合わせが違うんだね。
どっとと考えよう:三番目が先に届いたら?
紙のカードを三枚用意し、もとの順に一、二、三と目印を付けよう。別の紙を受け取り場所にして、三、一の順にカードを置いてみる。二が届かなかったとき、何が足りないと分かるかな。次に二を足して、順をそろえてみよう。これは順番と不足を考える模型で、TCPのバイト番号や、実際に再送を判断する手順を再現する実験ではないよ。
最初の図へ戻り、A、A、A、Bという順と、A、B、A、Aという順も比べよう。Bが早く終わるとき、Aが終わる時点はどう変わるかな。誰がどれだけ待つかを見れば、全部の時間だけでは気づかない違いがあるね。小分けにして共有する、受け取って整える、欠けたデータを補う。いつもの写真や文章のやり取りは、役割の違う工夫が支えているんだ。

ことばのメモ
- パケット
- ネットワークでデータを運ぶまとまり。中身のほかに、通信に使う情報が付くよ。
- ヘッダー
- 行き先など、データを運んだり扱ったりするための付加情報の部分。
- ルーター
- 行き先などの情報を使い、パケットを次へ渡す中継装置。
- TCP
- 順番のあるデータの列を届けるため、番号・確認・再送などの工夫を使う通信の決まり。
- 再送
- 届いていないと考えられるデータなどを、もう一度送ること。
もとになった資料・もっと知りたい人へ
下記の資料をもとに、説明と考える問題を独自に構成しています。外部資料には英語のページもあります。どっとの画像は案内用のイラストで、観測写真や科学的な図ではありません。
- Internet Society:A Brief History of the Internet(パケット通信の考え方)
- IETF RFC 791:Internet Protocol(行き先・ヘッダーと配送の限界)
- IETF RFC 9293:TCP(データ列・番号・確認・再送)
- IETF RFC 768:UDP(到着や順番の保証との違い)
分かりやすくするために、説明を短くしたり、たとえ話を使ったりしています。まちがいを見つけたらお問い合わせへお寄せください。制作方法は編集方針、いっしょに読むときのヒントは保護者・先生へで紹介しています。