地図のここ
前回、住所(IPアドレス)と郵便局(ルーター)を使って遠くのネットワークへ届ける世界を見た。
今回は、地図の終点である YouTubeのサーバー へ届いたパケットを追う。
パケットは届いた。けれど、届いただけでは動画は見えない。どうやって「動画をください」と頼むのか。相手が受け取れる状態か、どう確かめるのか。
届いた先で、どうやって会話してるの?


届いただけでは始まらない
パケットがYouTubeのサーバーに到着しても、サーバー内ではウェブページを返す係、メールを受け取る係など、複数のサービスが同時に動いている。届いたデータに「○○課宛」と書かれていなければ、OSはどのプロセスへ渡せばいいか判別できない。
この「○○課」にあたる識別番号が ポート番号 だ。
ウェブページなら80番、メールなら25番。サーバーの中でどのサービスに繋ぐかを番号で指定する。会社の代表電話にかけ、内線○○番を呼び出すしくみだ。
送信元のPC側にも一時的なポート番号が割り当てられる。サーバーが返信を届けるための受け口だ。「折り返しはこちらの内線へ」と伝えることで双方の番号が確定し、通信の準備が整う。
3ウェイハンドシェイク——繋がることを確かめてから話す
内線番号が決まっても、いきなりデータを送り始めない。先に互いの番号と受信可否を確かめてから送り始める。この手続きが 3ウェイハンドシェイク だ。
- PCから「もしもし、繋がりますか?」(SYN)と送る。
- サーバーが「はい、そちらも聞こえますか?」(SYN+ACK)と返す。
- PCが「聞こえます」(ACK)と応じる。
なぜ3回も往復するのか。ネットワーク上ではパケットが消えたり、古い通信が紛れ込んだりする。互いが今この瞬間に送受信できる状態だと双方向で確かめるには、3回のステップが要る。
このやり取りを終えると コネクション(接続)が確立する。回線が繋がり、ここからデータの送信が始まる。
届いた?——番号を振って確認する
コネクションが確立し、データを送る。しかしネットワークでは、送ったパケットが途中で消えたり、順番が入れ替わったりする。通話品質が悪いと声が途切れるように、データも欠落する。
この問題を、番号 と 確認 で解決する。
送信側はデータにシーケンス番号(ページ番号)を振って送る。「1ページ目」「2ページ目」「3ページ目」——受信側は受け取ると「3ページ目まで届いた」と確認応答(ACK)を返す。
もし「2ページ目」が消えたら、受信側は「1ページ目まで届いた」としか返さない。送信側は、2ページ目の確認が来ないことから欠落を検知し、もう一度送る。これが 再送 だ。確認が返るまでデータを持ち、取りこぼしを拾い直す。
番号と確認、再送の仕組みにより、途中でデータが欠落しても順番が入れ替わっても、最終的にすべてのデータが正しい順序で揃う。
FIN——両側で確かめて接続を切る
データの送信が終わると切断処理に入る。いきなり通信を断つガチャ切りはしない。
- PCから「こちらからの送信は以上です」(FIN)と送る。
- サーバーが「了解しました、こちらも以上です」(FIN+ACK)と返す。
- PCが「確認しました」(ACK)と応じる。
互いに送るデータがないことを確認してからコネクションを閉じる。片方の通信が突然途切れても、もう片方は返事が来ないことで異常を検知できる。
TCP——層が積み重なった確実な会話
内線を選び、繋がりを確認し、届いたか確認しながら話して、終わったら切る——電話の通話とよく似た手順を定めているのが TCP(Transmission Control Protocol)だ。名前のとおり、データの伝送を確実に行うための規格である。
物理層は「道」。データリンク層は「届け先」。ネットワーク層は「住所」。今回のトランスポート層は「確実な会話」。道の上を、名前を付けて、住所を書いて、届いた先で確実に会話する。通信の層がまた一段、積み重なった。
次に見る世界——名前を調べて、安全に頼む
TCPによって回線は繋がり、確実なデータ送受信が可能になった。
けれど、まだ足りないものがある。
そもそも相手のIPアドレスはどう調べたのか。会話を誰かに盗み聞きされていないか。「動画をください」と頼むとき、どんな言葉を使うのか。
次は、名前を調べて、安全に頼む世界 を見てみよう。