HOME > 技術解説 > カプセル化

カプセル化

カプセル化

プロトコルスタックで触れたように、コンピュータ間でデータの受け渡しを行う際、複数のレイヤをまたがって通信します。
また、各コンピュータのそれぞれのレイヤは、同じレイヤ同士で情報の受け渡しを行います。

あるデータがレイヤ間で受け渡しされる時、データがそのまま転送されるだけでは、同じレイヤ同士の通信が成立しません。
その理由は、同じレイヤ同士でやりとりするための"情報"がないからです。

AさんからBさんへプレゼントを送る例で、簡単に考えてみましょう。
AさんとBさんが上位レイヤ、運送会社が下位レイヤとします。

Aさんは、運送会社にBさんへのプレゼントの配送を依頼する時、どうするでしょうか。
運送会社の人が荷物の配送ができるよう、箱の中へ入れて配送伝票を貼り付けます。
そして、運送会社の人は、その配送伝票を見て荷物をBさんへ届けます。
Bさんは荷物を受け取り、配送伝票をはがし、箱の中からプレゼントを取り出します。

同じレイヤ同士でデータの受け渡しをするには、データがレイヤ間で受け渡しをされるたびに、
各レイヤで使用される情報を、付けたり、はずしたりします。
各レイヤの情報を付けることをカプセル化(encapsulation)と言い、外すことをカプセル解除(decapsulation)と言います。

カプセル化/カプセル解除については、日本語では他の言い方もありますが、英語ではencapsulation/decapsulationと言います。
カフェインレスコーヒーの事を、decaf.と言うように、「○○を除去する」という言い方の時に「de」を使います。

実際には、下記のようになります。


■アプリケーション層、プレゼンテーション層、セッション層
ユーザが、送信したいデータを作成します。

■トランスポート層
ポート番号などの情報を追加します。
トランスポート層では、上位層から渡されたデータに、TCPまたはUDPのヘッダを付けます。
TCPヘッダが付けられたものを[セグメント]と呼び、UDPヘッダを付けられたものを[データグラム]と呼びます。

■ネットワーク層
ネットワーク・アドレスを追加します。
ネットワーク層で、送信元と宛先のネットワークアドレス情報を含むヘッダを付けます。
ネットワーク層でヘッダが付けられたものを[パケット]と呼びます。

■データリンク層
MACアドレスをヘッダに追加、エラー検出用にトレーラを追加します。
データリンク層では、パケットに[ヘッダ]と[トレーラ]が追加されます。
ヘッダにはMACアドレスなどの情報が入ります。トレーラには、エラー検出のための情報が入ります。
データリンク層でヘッダが付けられたものを[フレーム]と呼びます。

■物理層
データリンク層から受け取った情報を、フレームをビットに変換して伝送します。
ケーブルや電波を利用して情報を送信するため、0 と 1 の信号(ビット)に変換して送信します。