アプリケーション層は、通信ネットワーク内のホストが使用する共有通信プロトコルとインターフェース方式を規定する抽象化層です。 [ 1 ]
アプリケーション層の抽象化は、インターネットプロトコルスイート(TCP/IP)とOSIモデルの両方で規定されています。[ 2 ]両モデルともそれぞれの最上位層に同じ用語を使用していますが、詳細な定義と目的は異なります。[ 3 ]
アプリケーション層の概念は、プロトコル機能の明確な層を定義することによってネットワーク通信を標準化しようとする初期の取り組みから生まれました。1970年代後半から1980年代初頭に開発されたOSIモデルでは、相互運用性と明瞭性のためにネットワークサービスとアプリケーションをモジュール化するために、アプリケーション層はセッション層やプレゼンテーション層などの下位層から明確に分離されていました。これとは対照的に、1970年代に起源を持ち、現代のインターネットの基盤となったTCP/IPモデルは、これらの機能をプロセス間通信を処理するより広範なアプリケーション層に統合しています。この設計は、ネットワークのコアではなくエッジにインテリジェンスと複雑さを配置することで、シンプルさと堅牢性を強調し、ほぼすべてのネットワークの相互接続を可能にしています。その結果、アプリケーション層は、日常的なインターネットベースのサービスを推進する多様なネットワークプロトコルのインターフェースとして機能し、異種ネットワーク間での柔軟で相互運用可能な通信を目指した数十年にわたる進化を反映しています。[ 1 ]
インターネットプロトコルスイートでは、アプリケーション層には、インターネットプロトコル(IP)コンピュータネットワークを介したプロセス間通信で使用される通信プロトコルとインターフェース方式が含まれています。 [ 3 ]アプリケーション層は通信を標準化するだけであり、ホスト間のデータ転送チャネルを確立し、クライアント/サーバまたはピアツーピアネットワークモデルでのデータ交換を管理するために、基盤となるトランスポート層プロトコルに依存しています。[ 4 ] TCP/IPアプリケーション層は、アプリケーションが通信時に考慮しなければならない特定のルールやデータ形式を記述していませんが、元の仕様(RFC 1123 )は、アプリケーション設計の堅牢性原則に依拠し、それを推奨しています。[ 5 ] [ 6 ]
OSI モデルでは、アプリケーション層の定義は範囲が狭くなっています。[ 8 ] OSI モデルでは、アプリケーション層はホストベースのアプリケーションとユーザー向けアプリケーションとの通信を担当するインターフェースのみとして定義されています。[ 9 ] OSI では、アプリケーション層の下、トランスポート層の上に、セッション層とプレゼンテーション層という2 つの追加層の機能を明示的に区別しています。OSI では、これらの層における機能の厳密なモジュール分離が規定され、それぞれにプロトコル実装が提供されています。これに対し、インターネット プロトコル スイートでは、これらの機能を単一の層にまとめています。[ 9 ]
元々、OSI モデルは、関連するプロトコルを持つ 2 種類のアプリケーション層サービスで構成されていました。[ 10 ]これらの 2 つのサブレイヤーは、共通アプリケーションサービス要素 (CASE) と特定アプリケーションサービス要素 (SASE) です。[ 11 ]一般的に、アプリケーション層プロトコルは、複数のアプリケーションサービス要素の機能を使用して実現されます。[ 12 ]一部のアプリケーションサービス要素は、利用可能なセッションサービスのバージョンに基づいて異なる手順を呼び出します。[ 13 ]
共通アプリケーションサービス要素サブレイヤーは、アプリケーション層にサービスを提供し、セッション層からサービスを要求します。以下のような共通アプリケーションサービスをサポートします。
特定のアプリケーションサービス要素サブレイヤーは、以下のようなアプリケーション固有のサービス(プロトコル)を提供します。
インターネットプロトコルスイートのアプリケーション層に関するIETF定義文書はRFC 1123です。これは、初期のインターネットの機能の主要な側面を網羅する一連のプロトコルを提供しました。[ 5 ]
その他の注目すべきアプリケーション層プロトコルには、以下のものがある。