実践ネットワークエンジニアリングの基礎
カプセル化と階層構造
カプセル化:データを旅に出すための荷造り
ネットワーク通信を理解する上で、OSI参照モデルやTCP/IPモデルといった階層構造は欠かせない地図のようなものです。しかし、重要なのは各層の名前を覚えることではなく、データがどのように階層を旅していくかを理解することです。アプリケーションで作成されたデータが、相手に届くまでの間、各階層を通過するたびに「荷札」や「宛名書き」が追加されていきます。このプロセスを「カプセル化」と呼びます。
カプセル化とは、上位層から渡されたデータに、その階層で必要な制御情報(ヘッダ)を付与して、下位層に渡す処理のことです。
各階層で扱われるデータの単位はPDU(Protocol Data Unit)と呼ばれますが、階層ごとに呼び名が変わります。これは、データの「荷姿」がどんどん変わっていくイメージです。
| 階層 | TCP/IPモデル | PDUの名称 |
|---|---|---|
| L4 | トランスポート層 | セグメント (TCP) / データグラム (UDP) |
| L3 | インターネット層 | パケット |
| L2 | リンク層 | フレーム |
ヘッダの中身を覗いてみる
では、具体的にどのような情報がヘッダとして追加されていくのでしょうか。アプリケーションが送信する「こんにちは」というデータ(ペイロード)を例に、下位層へ降りていく旅を見ていきましょう。
L4: トランスポート層 まずデータはトランスポート層に渡され、TCPヘッダが付与されます。ここでの重要な情報は「ポート番号」です。送信元ポートと宛先ポートを指定することで、コンピュータ内のどのアプリケーション(例:Webブラウザ、メールソフト)間の通信なのかを識別します。これにより、正しいプログラムにデータが届けられます。
L3: インターネット層 次に、TCPセグメントはインターネット層に渡され、IPヘッダが付与されてになります。IPヘッダには「IPアドレス」が含まれます。これはネットワーク上のコンピュータの「住所」に相当し、送信元と宛先のコンピュータを特定します。ルータはこのIPアドレスを見て、データを目的地まで送り届けるための経路を判断します。
L2: リンク層 最後に、IPパケットはリンク層に渡され、Ethernetヘッダとトレーラ(誤り検出用の情報)が付与されて「Ethernetフレーム」が完成します。Ethernetヘッダに含まれるのは「」です。これは、同じネットワーク内(例:家庭内のWi-Fi)で、次にデータを渡すべき隣接する機器を特定するための物理的なアドレスです。
MTUとフラグメンテーション
ネットワークを流れるデータには、一度に送信できる最大サイズ、MTU(Maximum Transmission Unit)という制限があります。道路によって通れる車の大きさが決まっているのと似ています。もし作成されたIPパケットが、通過するネットワークのMTUを超える場合、パケットを小さな断片に分割する必要があります。この処理を「」と呼びます。
分割されたパケットは、宛先のコンピュータで再び組み立てられます。この仕組みがあるおかげで、サイズの異なる様々な物理メディアを経由しても、柔軟にデータを転送できるのです。
非カプセル化:荷物をほどくプロセス
データを受信した側は、送信時とは逆のプロセスを辿ります。これを「非カプセル化」と呼びます。データは下位層から上位層へと渡され、各階層で対応するヘッダが取り除かれていきます。
- リンク層: Ethernetフレームを受け取り、MACアドレスを確認して自分宛てであることを確かめた後、Ethernetヘッダとトレーラを取り除き、中のIPパケットをインターネット層に渡します。
- インターネット層: IPパケットのIPアドレスを確認し、IPヘッダを取り除いて、中のTCPセグメントをトランスポート層に渡します。
- トランスポート層: TCPセグメントのポート番号を確認し、対応するアプリケーションにデータを渡すためにTCPヘッダを取り除きます。
このプロセスを経て、最終的にアプリケーションは送信元が送った「こんにちは」というオリジナルのデータを受け取ることができます。カプセル化と非カプセル化は、複雑なネットワーク通信を階層ごとに役割分担し、確実かつ効率的に行うための、洗練された仕組みなのです。
ネットワーク通信において、送信データが上位層から下位層へ渡される際に、各層で制御情報(ヘッダ)が付加されていくプロセスを何と呼びますか?
TCP/IPモデルにおいて、特定のコンピュータ内のどのアプリケーション間の通信かを識別するために、トランスポート層で付与される情報は何ですか?
