OSI参照モデル(データの流れ)

各通信レイヤは、レイヤ固有のPDUを使って同レイヤとピアツーピアで通信を行います。

PDU(Protocol Data Unit)とは、各レイヤが扱うデータの単位のことです。

OSI参照モデルでのデータ通信の流れは、下の図のようになります。

OSI Data Flow

送信元PCのデータは、

 アプリケーション層→プレゼンテーション層→セッション層→トランスポート層→ネットワーク層→データリンク層→物理層

と上位層から下位層へとデータが渡されて行きます。

最後の物理層では、「0」と「1」のビットパターンに符号化され電気信号としてケーブル上に流れて行きます。

そして、宛先PCに到達すると今後は、

物理層→データリンク層→ネットワーク層→トランスポート層→セッション層→プレゼンテーション層→アプリケーション層

下位層から上位層にデータが渡されて行きます。

上位層から下位層へデータを渡す際に、「ヘッダ」と呼ばれる制御情報を付加して渡していきます。

PDU

例えば、通信プロトコルにTCP/IPが使用されているとします。

 データが、トランスポート層まで降りてくると、 ポート番号やシーケンス番号、確認応答番号などの情報を付加してネットワーク層に渡します。

ポート番号・・・アプリケーションを識別する番号です。FTPなら20と21、WWWなら80。
シーケンス番号・・・セグメントの順番を表す番号。

ネットワーク層では、送信元IPアドレス、宛先IPアドレスなどの情報を付加してデータリンク層に渡します。

データリンク層では、MACアドレスなどの情報を付加して物理層に渡します。

物理層では、メディアの伝送に適した「0」と「1」のビットパターンに符号化します。

各層で扱うPDUには名称がついており、下表の通りです。

レイヤPDU名称
アプリケーション層
プレゼンテーション層
セッション層
データ
トランスポート層セグメント
ネットワーク層パケット
データリンク層フレーム
物理層ビット

データのカプセル化

送信のデータは、

アプリケーション層→プレゼンテーション層→セッション層→トランスポート層→ネットワーク層→データリンク層→物理層

と上位層から下位層へとデータが渡されて行きます。

カプセル化

上位層から下位層へデータを渡す際に、「ヘッダ」と呼ばれる制御情報を付加して渡してゆきます。

例えば、通信プロトコルにTCP/IPが使用されているとします。

 データが、トランスポート層まで降りてくると、 ポート番号やシーケンス番号、確認応答番号などの情報を付加してネットワーク層に渡します。

ネットワーク層では、送信元IPアドレス、宛先IPアドレスなどの情報を付加してデータリンク層に渡します。

 データリンク層では、MACアドレスなどの情報の他にトレーラと呼ばれる送信中に起きたエラーをチェックするための情報も付加して物理層に渡します。

物理層では、メディアの伝送に適した「0」と「1」のビットパターンに符号化します。

このように、各レイヤで制御情報を付加して行くことを「カプセル化」と呼びます。

データのデカプセル化

そして、宛先PCに到達すると今後は、

物理層→データリンク層→ネットワーク層→トランスポート層→セッション層→プレゼンテーション層→アプリケーション層

下位層から上位層にデータが渡されて行きます。

データのデカプセル化

 物理層で受け取った「0」と「1」は、データリンク層に渡され、フレームに、そしてフレームヘッダとフレームトレーラが取り除かれ、ネットワーク層に渡されます。

ネットワーク層では、ネットワークヘッダを取り除きトランスポート層に渡します。

以下、各層は、各層が扱う制御情報を取り除いて上の層に渡していきます。

このように、各レイヤで扱う制御情報を取り除くことを「デカプセル化」と呼びます。

ヘッダの階層構造

送信のデータは、

アプリケーション層→プレゼンテーション層→セッション層→トランスポート層→ネットワーク層→データリンク層→物理層

上位層から下位層へデータを渡す際に、「ヘッダ」と呼ばれる制御情報を付加して渡していきます。

カプセル化

上位層から下位層へデータを渡す際に、「ヘッダ」と呼ばれる制御情報を付加して渡していきます。

 ヘッダに記載される内容は、例えば、「送信元の住所」「宛先の住所」、「荷物が届かなかった場合はどうするのか」などが書かれています。

データを受け取った機器は、このヘッダの内容をみて、プロトコルの処理に従って処理を行います。

 各層のプロトコルは、基本的に、受け取ったヘッダを破壊したり、書き換えたりせずに元のヘッダとデータを1つにまとめてカプセル化し、自分のヘッダを付けて、下の層へ渡します。