この連載ではこれまで、OSI参照モデルの物理層からトランスポート層までの役割、プロトコルについて学習してきました。今回は上位の3階層について、その役割を確認します。
OSI参照モデルとTCP/IPの階層モデル
OSIの参照モデルでは、コンピュータの通信動作を以下のような7つの階層に分けてそれぞれの役割を定義しています。
前回までの記事で、現在のインターネット通信の土台となる仕組みとして、ネットワーク層の「IP」、トランスポート層の「TCP」や「UDP」について紹介してきました。また、「TCP/IPプロトコルスイート(以下、TCP/IP)がさまざまななプロトコルの組み合わせで成り立っているということについても、第3回の記事で紹介しています。
TCP/IPにおける上位階層のプロトコルについて考えるにあたり、改めてOSI参照モデルとTCP/IPの考え方を比較してみましょう。
OSI参照モデルの上位3層は、送信元と宛先との間で行う情報交換の仕組みにおいて、トランスポート層以下の機能よりも詳細かつ具体的な役割を指定することを目的としています。
それらは「セッション(会話)」、「プレゼンテーション(提供形式)」、「アプリケーション(適用と応用)」の3つに分けられ、それぞれOSI参照モデルにより定義されています。一方、TCP/IPにおけるアプリケーション層では、OSI参照モデルの上位3階層のような詳しい区別を行っていません。
そのため、OSI参照モデルの上位3層がどういった役割を持つかを理解し、それがTCP/IPのアプリケーション層プロトコルでどのように実現されているかをイメージできることが大切です。そのうえで、トランスポート層より下の階層のプロトコルとの役割分担も含めた通信動作の全体像を把握することで、ネットワークをより深く理解できるでしょう。
次のセクションから、OSI参照モデルの上位3階層それぞれの役割についてもう少し整理していきましょう。
セッション層
OSI参照モデルにおけるセッション層は、アプリケーション同士がセッション(会話)を確立し、維持し、終了するまでの手順を実現する役割を持ちます。ここでいうセッションとは、次のような一連の処理をいいます。
- ユーザがサービス(通信という機能)を要求する
- サービスを提供する側は要求された内容を承認する
- サービスの提供中はその継続状況を監視する
- サービスの提供が終わったら速やかに切断処理を行う
プレゼンテーション層
プレゼンテーション層の役割は、アプリケーション間でやり取りするデータの表現形式を定めることです。
例えば同じ2進数の値でも、それが英語や日本語などの文字なのか、写真なのか、音声なのか、用途の違いで意味合いが大きく異なります。
そのため、送信側と受信側の双方が、アプリケーションで使用する情報の内容や、それらがどういった形式で作られているかを正しく認識し合うことが重要になります。形式の認識が違う場合、情報の処理方法や手順が変わるため、結果として私たちの期待する動作が正しく行われないことになってしまいます。
具体的には、以下のような区別が行われています。
(1)文字データの記述形式
(2)画像データの記述形式
(3)音声データの記述形式
アプリケーションによっては、データの形式が固定されている場合や、いくつかの候補を持っている場合もあります。
プレゼンテーション層でのデータ形式を確認する方法は、プロトコル全体でその仕組みが用意されます。以下のような手順が考えられます。
(1)あらかじめ送信側で利用できる形式を認識している場合はその形式で送信し、受信側はそのデータが理解できるものなのかを判断する。
(2)送信側が受信側にサポートされている形式を問い合わせ、確認したうえで形式を選択して送信する。
アプリケーション層
OSI参照モデルの第7層のアプリケーション層は、ユーザ(利用者)にサービスを提供する機能を定義するための層です。ユーザが正しくサービスを利用できるためには、どんな内容の情報をどのような手順で交換する必要があるかを定義することが重要です。加えて、それらの情報がユーザに分かりやすく理解できる形や順番で提供される必要もあります。
また、ユーザ自身が利用したいサービスの種類を選択、指定できるようにするためには、必要な情報の入力をユーザに促す必要があります。ユーザがサービスを利用するための、情報の入出力を担う機能は「ユーザインターフェイス」といいます。アプリケーション層は、ユーザインターフェイスを使ってアプリケーションの動作に必要な情報の入出力を行う役割も担います。情報の入出力の方法として、次のような方法が一般的に利用されています。
・文字の出力や入力、選択など
・画像のスクロールによる切り替え
・ボタン、入力用のテキストボックス
・選択用のチェックボックスや、プルダウン
・情報のポップアップや、動画の自動再生
文字列の入出力のみで成り立つアプリケーションもあれば、多くの機能を組み合わせたものもあります。表示する情報が多く、一度に画面上表示しきれないという場合は、改ページやスクロール機能を使用して表示することも必要になります。これらの機能を定義し、サービスをユーザに利用し易くすることも、アプリケーション層の役割として挙げられます。
ユーザインターフェイスの種類には大きく「コマンドラインインターフェイス」と「グラフィカルユーザインターフェイス」があります。その違いを下図で確認しておきましょう。
(1)コマンドラインインターフェイス
(2)グラフィカルユーザインターフェイス
TCP/IPのアプリケーション層
ここまで紹介したOSI参照モデルの上位3階層の役割をまとめ、一手に担っているのがTCP/IPのアプリケーション層です。ユーザに適切な通信サービスを提供するため、次のような3種類の動作を行います。
・ユーザから適切な情報を取り交わす一方、宛先側のアプリケーションとも適切な情報を取り交わす
・送信元と宛先の間で取り交わす情報を正しく区別するよう、データ形式を定義する
・宛先の機器とのセッション(会話)の開始から終了までの流れを適切に管理する
「TCP/IP」のアプリケーションは、トランスポート層にTCPを使用することでセッション層の役割を軽減することもできます。
ただし、TCPの機能よりも厳密なセッション管理を行いたい場合や、通信処理を高速化するためにトランスポート層でUDPを使用したい場合は、アプリケーションの動作の中でセッション管理を行うことになります。
TCP/IPのアプリケーション層プロトコルは、こういった動作を正しく行うため、交換されるデータの形式や内容、データ交換の手順やルール、そしてユーザから受けるべき指示について定義されています。代表的なものについては、そのいくつかを今後の連載で取り上げていきます。
まとめ
・OSI参照モデルの上位3層の役割は、TCP/IPでは一つのアプリケーション層として定義される
・「セッション層」は、サービスの開始から継続、終了までの手順を提供する
・「プレゼンテーション層」は、アプリケーションで扱うデータの形式を定義する
・「アプリケーション層」は、ユーザインターフェイスによる情報の入出力、その使い方を定義する
次回は、実際の通信動作の中で、ここまでの連載で紹介してきた各階層がどのように連携しているか、その全体像をについて紹介します。
著者プロフィール
髙橋 真樹(たかはし まさき)
ネットワンシステムズ株式会社
ビジネス開発本部イノベーション推進部ネットワークアカデミーチーム所属
1995年ネットワンシステムズ入社。前職ではシステム開発に携わっていたが、入社後は ネットワークインフラの構築業務を経て現在の技術インストラクター業務に就く。長年ネットワークエンジニアの育成を担当しており、シスコシステムズ社の認定インストラクターとしてCCSI Excellence Awardおよび Contribution Awardの受賞経験あり。近年はネットワークに加え、IoTや仮想化、自動化などのカリキュラム設計も担当している。