はじめに
プレゼンテーション層は、OSI参照モデルの第6層に位置する層です。「データ形式を変換する層」と説明されることが多いものの、何をどのように変換するのかが分かりにくく、実際のTCP/IP通信で独立した層が動いているように誤解しやすい部分でもあります。
プレゼンテーション層の中心的な役割は、通信するアプリケーション同士がデータの意味を保ったまま情報を交換できるよう、共通して扱えるデータ表現を用意することです。この記事では、OSI参照モデルでの役割、データ表現をそろえる考え方、TCP/IPモデルでの位置づけに範囲を限定して解説します。
この記事で分かること
- プレゼンテーション層がOSI参照モデルで担当する役割
- データ表現を共通化して情報を交換する考え方
- TCP/IPモデルではプレゼンテーション層をどう捉えるか
プレゼンテーション層とは
プレゼンテーション層は、OSI参照モデルの第6層で、アプリケーション層が扱う情報を通信相手と共通して解釈できる表現にする役割を持ちます。
異なるシステムでは、同じ意味の情報でも内部での表し方が同じとは限りません。そのまま送るだけでは、受信側がデータの構造や形式を正しく解釈できないことがあります。そこで、送受信する双方が理解できる表現を選び、その表現に合わせてデータを扱います。
OSIの基本参照モデルでは、通信で使う表現方法を「転送構文」と呼びます。プレゼンテーション層は、アプリケーション同士が扱いたい情報について、双方が受け入れられる転送構文を選び、必要に応じてデータ表現を変換します。
OSI参照モデル全体で第6層がどこに位置するのかは、「OSI参照モデルとは?TCP/IPモデルとの違いと7階層の役割」で解説しています。
データ表現を共通化する仕組み
プレゼンテーション層の考え方は、「送信側の内部表現をそのまま相手へ押し付けるのではなく、通信で使う共通の表現を介して情報を渡す」と捉えると分かりやすくなります。
流れを単純化すると、次のようになります。
- 送信側のアプリケーションが情報を用意する
- 通信で使用する共通のデータ表現に合わせる
- 相手へデータを送る
- 受信側が共通の表現を解釈し、自分の処理で使える形にする
送信側と受信側の内部表現が同じなら、実際の変換が発生しない場合もあります。重要なのは、必ず何かを変換することではなく、通信相手と合意した表現によってデータの意味を維持できることです。
OSIの基本参照モデルでは、形式の変換に加えてデータ圧縮もプレゼンテーション層で行う変換の例として示されています。一方で、暗号化を単純に「第6層だけの役割」と考えるのは適切ではありません。プレゼンテーション層を理解するときは、まずデータ表現を共通化する役割を中心に捉えるのが分かりやすいでしょう。
データ変換を具体例で考える
現代のアプリケーションを例にすると、二つのアプリケーションが「商品名」「価格」「在庫数」という情報をやり取りする場面を考えられます。送信側のプログラムが内部で使っているデータ構造を、そのままネットワークへ送っても、受信側が同じ構造を使っているとは限りません。
このような場合、通信時には双方が理解できるJSONなどのデータ形式と、文字の表し方を決め、その形式に合わせて送信します。受信側は受け取ったデータを解釈し、自分のプログラムで扱える形へ変換します。
この例で重要なのは、「UTF-8をASCIIへ変換すればよい」といった特定の文字コード変換ではありません。ASCIIでは表現できない文字もあるため、変換すれば必ず情報を維持できるわけではありません。通信する双方が同じ表現方法を理解し、その範囲で情報の意味を保つことが重要です。
なお、現在のインターネット通信では、JSONへの変換や文字の表し方を合わせる処理を「独立したプレゼンテーション層」というソフトウェアが一括して実行するわけではありません。こうした処理は、アプリケーション層のプロトコル、ライブラリ、アプリケーション自身などによって実現されます。
TCP/IPモデルではプレゼンテーション層をどう扱うか
TCP/IPモデルには、OSI参照モデルのような独立したプレゼンテーション層はありません。Internet Protocol Suiteではアプリケーション層が最上位に置かれ、その内部をOSIと同じ形には細分化していません。
そのため、プレゼンテーション層は「現在のTCP/IP通信で必ず独立して存在するソフトウェア部品」ではなく、通信に必要な機能を整理するためのOSI上の役割として理解することが重要です。
実際の通信では、データ形式への変換、文字の表し方、圧縮などの処理を、アプリケーションや使用するプロトコルに応じて実装します。OSI参照モデルでプレゼンテーション層を学ぶ意義は、これらを「データをどのように表現して相手と共有するか」という一つの役割として整理できる点にあります。
TCP/IPモデルのアプリケーション層については、「アプリケーション層とは?OSI・TCP/IPモデルでの役割を解説」を参照してください。
アプリケーション層・セッション層との違い
OSI参照モデルの上位3層は役割が近いため、何が違うのかを整理しておくと理解しやすくなります。
| 層 | 主な役割 |
|---|---|
| アプリケーション層 | アプリケーション同士が交換するメッセージの意味や通信手順を定める |
| プレゼンテーション層 | データを通信相手と共通して解釈できる表現にする |
| セッション層 | 通信の対話や同期など、やり取りの進行を管理する |
例えば、「どの要求を送り、どの応答を返すか」はアプリケーション層の役割です。その要求や応答のデータを「どの表現で交換するか」がプレゼンテーション層の考え方になります。
セッション層はさらに別の役割で、通信中の対話や同期を管理します。詳しくは「セッション層とは?OSI参照モデル第5層の役割と通信管理の仕組みを解説」で解説しています。
まとめ
プレゼンテーション層は、OSI参照モデルの第6層で、アプリケーション同士がデータの意味を保ったまま情報を交換できるよう、共通のデータ表現を扱う層です。
単に「文字コードを変換する層」と覚えるのではなく、送信側と受信側で異なる表現を、通信で合意した表現へ合わせる役割と考えると理解しやすくなります。OSIではデータ形式の変換や圧縮などをこの役割として整理しますが、実際のTCP/IP通信に独立したプレゼンテーション層が存在するわけではありません。
現在の通信では、同じ機能をアプリケーション層のプロトコルやライブラリ、アプリケーション自身が担います。プレゼンテーション層は、通信で扱うデータの「意味」ではなく、「どのような表現で相手へ渡すか」を整理するための考え方です。