実践ネットワークアーキテクチャの核心
データカプセル化の実態
データの旅:カプセル化の仕組み
メールを送信したり、ウェブサイトを閲覧したりする時、作成したデータはそのままネットワークに送られるわけではありません。データは、宛先に正しく届くための「指示書」を付け加えられながら、何層もの封筒に入れられていくようなプロセスをたどります。このプロセスが「カプセル化」です。
アプリケーションで生成されたデータは、まずトランスポート層に渡されます。ここでは、データが分割され、各断片にヘッダが付与されます。このヘッダには、どのアプリケーションの通信なのかを識別するためのポート番号などが含まれます。こうしてできたデータの単位をセグメント(TCPの場合)やデータグラム(UDPの場合)と呼びます。
次に、セグメントはネットワーク層に送られ、さらにIPヘッダが付加されます。このヘッダには、送信元と宛先のIPアドレスが含まれており、ネットワーク全体での最終的な届け先を示します。この段階のデータの単位が「パケット」です。
最後にパケットはデータリンク層に渡り、MACヘッダが付加されて「フレーム」となります。MACヘッダには、同じネットワーク内の隣接する機器へデータを届けるためのMACアドレスが記載されます。こうして完全に荷造りされたフレームが、物理層で電気信号や光信号に変換され、ケーブルなどを通じて送信されるのです。
各層ヘッダの役割分担
カプセル化の各段階で付加されるヘッダは、それぞれ異なる役割を持った情報の連鎖を形成しています。これらが連携することで、データは正確に宛先まで届けられます。
-
L4(トランスポート層)ヘッダ: TCPやUDPのヘッダです。主に「どのアプリケーションにデータを届けるか」を決定します。送信元と宛先のポート番号を使い、コンピュータ内で動いている特定のプロセス(例えば、ウェブブラウザやメールソフト)にデータを振り分けます。
-
L3(ネットワーク層)ヘッダ: IPヘッダがこれにあたります。ネットワークを越えた「最終的な宛先コンピュータ」を特定するのが役割です。送信元と宛先のIPアドレスを含み、ルーターがこの情報を見て、データをどの経路で送るべきか(ルーティング)を判断します。
-
L2(データリンク層)ヘッダ: イーサネットヘッダなどが該当します。これは「次にどの機器にデータを渡すか」という、より短期的な宛先を指定します。同じネットワークセグメント内で、次に中継するルーターや目的のコンピュータのMACアドレスが含まれています。
このように、L3ヘッダが最終目的地への地図だとすれば、L2ヘッダは「次の交差点を曲がる」という具体的な指示のようなものです。そしてL4ヘッダは、目的地に到着した後、「どの部屋に荷物を届けるか」を指定する部屋番号に例えられます。
| 層 | ヘッダの主な情報 | 役割 | データ単位 |
|---|---|---|---|
| トランスポート層 (L4) | ポート番号、シーケンス番号 | プロセス間の通信制御 | セグメント/データグラム |
| ネットワーク層 (L3) | IPアドレス | ネットワーク間のルーティング | パケット |
| データリンク層 (L2) | MACアドレス | 同一ネットワーク内の転送 | フレーム |
MTUとフラグメンテーション
ネットワークには、一度に送信できるデータの最大サイズが決まっています。これを(Maximum Transmission Unit)と呼びます。例えば、一般的なイーサネットネットワークのMTUは1500バイトです。
ネットワーク層に渡されたIPパケットのサイズが、通過するネットワークのMTUを超える場合、パケットはそのままでは送信できません。この時、ルーターはパケットをMTU以下の小さな断片に分割します。この処理を「フラグメンテーション」と呼びます。
分割された各フラグメント(断片)には、元のパケットと同じIPヘッダのコピーが付与され、それぞれが独立したパケットとしてネットワークを旅します。そして最終的な宛先コンピュータに到着した時点で、これらのフラグメントはIPヘッダ内の情報(識別子やオフセット)を元に、再び元の大きなパケットに再構成(リアセンブル)されます。
フラグメンテーションは便利な仕組みですが、いくつかの欠点も持ち合わせています。
- パフォーマンスの低下: パケットを分割し、再構成する処理はルーターや受信側コンピュータに負荷をかけます。
- 通信の信頼性低下: もし分割されたフラグメントの一つでも途中で失われると、パケット全体が失われたことになり、再送が必要になります。
このため、最近の通信では、通信開始時に最適なパケットサイズを決定する仕組み(Path MTU Discovery)を使い、できるだけフラグメンテーションを避ける工夫がされています。
データがネットワークで送信される際の「カプセル化」のプロセスについて、データの単位が変化する順序として正しいものはどれですか?
最終的な宛先コンピュータに到着した後、「どのアプリケーション(例:ウェブブラウザやメールソフト)にデータを届けるか」を決定するために使用されるヘッダはどれですか?
データがネットワークを旅する仕組みを理解することで、通信トラブルの原因究明やパフォーマンス改善に役立てることができます。

