用語辞典・IPv6・接続方式

カプセル化

カプセル化とは

カプセル化は、ある層のデータを下の層のペイロードとして包み、その層で配送や識別に必要なヘッダーなどを付け加える処理です。英語表記はencapsulation(エンキャプスレーション)です。上位のデータへヘッダー、場合によってはトレーラーを付けます。

Webのデータは、いきなり電波やケーブルへ流れるわけではありません。送信側では、トランスポート層、IP層、リンク層の順に制御情報が加わります。受信側は反対の順に確認して取り外し、目的のアプリケーションへ届けます。この取り外す処理を非カプセル化(decapsulation/デカプセレーション)といいます。

ある層から見た「中身」は、上の層ではヘッダーを含む完成した通信単位です。ヘッダーとペイロードの境界は、どの層から観察するかで変わります。

送信側では外側へ順番に包み、受信側では逆順に開く各層のヘッダーは、その層の相手へ渡すための制御情報
アプリケーションのデータがトランスポート層、IP層、リンク層の順に色の異なる外装へ包まれ、受信側で逆順に取り出されるカプセル化の図解
図1外側ほど、実際の伝送路に近い層です。受信側は各ヘッダーの種類や宛先、長さ、検査情報を読み、その内側を適切な上位プロトコルへ渡します。

同じデータでも、層ごとに呼び名と担当が変わる

内側のデータを保ったまま、配送に必要な外装を追加する呼び名は代表例。プロトコルによって細部は異なる
アプリケーションメッセージ/データ

Web文書や名前解決の問い合わせなど、利用目的に応じた内容

トランスポートセグメント/データグラム

ポート番号や順序制御など、アプリケーション間の配送情報を加える

インターネットIPパケット

IPアドレスなど、ネットワークを越える転送情報を加える

リンクフレーム

同じリンク上で次の装置へ渡すためのアドレスや検査情報を加える

図2TCPではセグメント、UDPではデータグラムという呼び分けがあります。「PDU」は各層が扱うプロトコル・データ単位をまとめて指す言葉です。

ルーターでは、リンク層の外装が付け替えられる

端末が送ったパケットは、まずリンク層のフレームに入って家庭のルーターへ届きます。ルーターは受信フレームを確認してIPパケットを取り出し、IPヘッダーを基に次の転送先を決めます。その後、出力先のEthernetや無線LANに合う新しいフレームへ包み直します。

したがって、送信端末から最終端末まで同じフレームが通り抜けるわけではありません。リンクが変わるたびに外側は替わります。一方、IPパケットは基本的に同じ通信単位として進みますが、ホップ上限など転送時に更新される項目や、NATで変更される項目があります。

ヘッダーは無駄ではなく、各担当を分離するためにある

リンク層は隣の装置まで、IP層は複数ネットワークを越えた宛先まで、トランスポート層は端末内のアプリケーションまでを主に担当します。層ごとに情報を分けることで、アプリケーションは有線か無線かを逐一意識せず、リンク層もWeb文書の意味を理解せずに運べます。

その代わり、ヘッダー分のMTUを消費します。アプリケーションが送れる量と、回線上に流れる総量は同じではありません。暗号化、VLAN、トンネルなどを重ねると外装がさらに増えるため、実効的なペイロードは小さくなります。

トンネルは、完成済みの通信単位をもう一度包む応用

通常の階層化でもカプセル化は行われます。これに対してトンネルは、IPパケットやフレームなどすでに完成している通信単位全体を別のプロトコルへ包み、離れた終端間の仮想リンクとして運びます。

「カプセル化されているからトンネル」とは限りません。また、カプセル化は暗号化を意味しません。中身を包んでも、方式に暗号機能がなければ内容が読めることがあります。

仕様の確認資料:RFC 1122「Requirements for Internet Hosts」RFC 8200「Internet Protocol, Version 6」RFC 2473「Generic Packet Tunneling in IPv6」

関連用語