プロトコルの持つ役割の中で最も大きいものが
「カプセル化」
と「非カプセル化」
です。ネットワークの通信では、OSI参照モデルのレイヤーを超えるたびに、データを入れ物(カプセル)に入れたり出したり
します。カプセルに入れる処理がカプセル化
、カプセルから取り出す処理が非カプセル化
です。これら2つの処理は、ロシアのお土産で有名なマトリョーシカ人形とよく似ています。カプセル化と非カプセル化は、アプリケーションデータを送り出すサーバーと受け取るクライアントについて考えると理解しやすくなります。以下、その流れを見ていきましょう。
サーバーで行う処理がカプセル化です。サーバーはレイヤーの上流から下流に向けて、
カプセル化の処理を行い、転送用のデータを作っていきます
。サーバーアプリケーションは、アプリケーションデータを作ると、そのままの状態でトランスポート層に渡します
。トランスポート層は、受け取ったアプリケーションデータをTCP/UDPのカプセル(セグメント)に入れて、ネットワーク層に渡します
。ネットワーク層は、受け取ったセグメントをIPのカプセル(パケット)に入れて、データリンク層に渡します
。データリンク層は、受け取ったパケットをイーサネットのカプセル(フレーム)に入れて、物理層に渡します
。物理層は受け取ったフレームを、信号に乗せやすいビットに変換した後、電気信号や光信号にして送ります。
それに対して、クライアントで行う処理が非カプセル化です。クライアントはレイヤーの下流から上流へ向けて非カプセル化の処理を行い、オリジナルのアプリケーションデータに戻していきます。物理層で電気信号、光信号を送ると、ビットに変換した後、フレームにして、データリンク層へと渡します。データリンク層は、受け取ったフレームからパケットを取り出して、ネットワーク層へと渡します。ネットワーク層は受け取ったパケットからセグメントを取り出して、トランスポート層へ渡します。トランスポート層は、受け取ったセグメントからデータを取り出して、オリジナルのアプリケーションデータをクライアントアプリケーションに渡します。
データの呼び名の違い
「フレーム」、「パケット」「セグメント」という呼び名は、OSI参照モデルのどの階層のデータであるかを示しているだけです。
- レイヤー5〜7はアプケーションデータ
- レイヤー4はセグメント
- レイヤー3はパケット
- レイヤー2はフレーム
感想
階層の違いでデータの呼び方が違うことがわかったのでスッキリした。