はじめに
前回の記事「ネットワーク入門: 入門中の入門」から、気づけば2年以上が経っていました。
前回は「ネットワークとは何か」を、糸電話のたとえを使いながら総論として整理しました。「複数のコンピュータやデバイスが互いにデータをやり取りするシステム」という定義までは掴めた、という前提で今回は話を進めます。
今回のテーマは、「じゃあ実際、そのデータってどうやって相手に届いているの?」 です。
対象読者
- 前回の記事を読んだ方、もしくは「ネットワークって聞くけど中身は説明できない」という方
- TCP/IPやパケットという単語は聞いたことがあるが、仕組みまでは説明できない方
- 前提知識はほぼ不要です
データは「小包」で運ばれる
いきなりですが、みなさんが友人に手紙で長編小説を送るとしたら、原稿用紙の束をそのまま封筒に突っ込んで送るでしょうか?
おそらく、ページごとに分けて、何冊かの小包に分けて送るはずです。
1つの小包が届かなくても、その1冊だけ送り直せばいい。
全部を一度に失うリスクを避けられます。
ネットワークの世界でも、これと同じことが起きています。
私たちが送る「データ」は、そのまま丸ごと1個の塊としてネットワークを流れるわけではありません。「パケット」と呼ばれる小さな単位に分割されて送られます。
- 1つの大きなデータを、細かく分割する
- 分割した1つ1つに「宛先」や「順番」などの情報(ヘッダ)を付ける
- バラバラに送り出し、相手側で正しい順番に組み立て直す
なぜこんな面倒なことをするのか。
理由は主に3つです。
- 一部が壊れても、その部分だけ送り直せばいい → 全部やり直しにならない
- 複数の通信で回線を分け合える → 1人が回線を独占しない
- 途中の経路を柔軟に選べる → 1つの道が混んでいたら別の道を使える
「動いているから、ヨシ!」で済ませてしまいがちな私たちエンジニアですが、この仕組みのおかげで、多少の通信エラーがあってもインターネットはビクともせずに動き続けています。
地味ですが、よくできた設計だと思いませんか?
「階層」で考えるとスッキリする
パケットに分けて送る、という話をしましたが、実際の通信では「宛先を書く係」「実際に電線や電波に乗せる係」など、役割ごとに仕事が分かれています。
この役割分担の考え方を「階層」と呼びます。
代表的なのが TCP/IP 4階層モデルです。
いきなり全部を覚えようとすると挫折するので、まずは「4つの係がいる」くらいの温度感で捉えてください。
| 階層 | 役割(ざっくり) | 身近な例 |
|---|---|---|
| アプリケーション層 | 「何を」やり取りするか決める | HTTP(Webページの表示)、メール |
| トランスポート層 | データを届ける・分割する責任を持つ | TCP、UDP |
| インターネット層 | 「どこに」届けるかの住所を管理する | IP |
| ネットワークインターフェース層 | 実際に電線・電波に乗せる | Wi-Fi、イーサネット(IEEE 802) |
❌ 悪い例: 4つの階層を一度に、しかも用語の定義から丸暗記しようとする
✅ 良い例: 「郵便物を送るときの役割分担」に例えて、まず全体の地図を掴む
郵便に例えると、こんな感じです。
- アプリケーション層 = 「手紙の中身を書く人」(何を伝えたいか)
- トランスポート層 = 「郵便局の窓口の人」(正しく届いたか、抜け漏れがないか管理する)
- インターネット層 = 「配達ルートを決める仕分け係」(どの郵便局を経由するか)
- ネットワークインターフェース層 = 「実際にトラックやバイクで運ぶ配達員」
上から下に「手紙を書く→窓口に出す→仕分けされる→配達される」という流れで、データも同じように上の階層から下の階層へと運ばれていきます。
届いた側では逆に、下から上へと積み上げられて、最終的に「アプリケーション層」で中身が読める形に戻ります。
「住所」と「窓口番号」の正体
階層の話で「インターネット層が住所を管理する」と書きましたが、この住所にあたるのが IPアドレスです。
- IPアドレス(例:
192.0.2.1)= 建物の住所 - ポート番号(例:
80,443)= その建物の中の窓口番号
「同じ建物(サーバー)の中でも、Webページを見るための窓口(80番・443番)と、メールを受け取るための窓口(25番など)は別」というイメージを持つと理解しやすいです。1つのサーバーが複数の役割を同時にこなせるのは、この「窓口番号」で通信を仕分けているからです。
ちなみに前回、糸電話のたとえで「線がなくても無線でネットワークは成立する」という話をしました。Wi-Fiの場合も、この「住所」と「窓口番号」の考え方自体は変わりません。運ぶ手段(電線か電波か)が違うだけで、「どこに」「何を」届けるかの仕組みは共通している、というのが今回の大事なポイントです。
まとめ
今回は、前回の「ネットワークとは何か」という総論から一歩進んで、「データがどうやって相手に届くのか」 を見てきました。
- データは「パケット」という小包に分割されて送られる
- 送受信の役割は「階層」で分担されている(TCP/IP 4階層)
- 「どこに」届けるかはIPアドレス、「どの窓口に」届けるかはポート番号が担当している
正直、今回の内容だけでも「へえ、そうだったんだ」くらいの感覚を持ってもらえれば十分です。
次はこの「階層」の中でも、私たちが一番よく目にするアプリケーション層(HTTP・DNSなど) にフォーカスして、「ブラウザにURLを打ち込んでからページが表示されるまで」を追いかけられたらと思います。
それでは、またお会いしましょう。