レイヤー7とは?

レイヤー7とはOSI参照モデルの最上位にあるアプリケーション層のことであり、通信システムの機能を7つの異なるカテゴリに標準化する概念的枠組みです。レイヤー7は、ホスト デバイス上で動作するアプリケーション ソフトウェアと連動してサービスを提供し、エンドユーザーとアプリケーションの対話を促進します。電子メール、ファイル転送、Webブラウジングなどのサービスすべてがこの層で動作します。

レイヤー7の説明

ネットワーク通信の分野では、OSI参照モデルのアプリケーション層としても知られるレイヤー7がネットワーク通信での中心的役割を果たします。レイヤー7は、使用されるアプリケーションとデータが移動する下位のネットワークとの間のインターフェイスを提供します。アプリケーションとネットワーク サービスとの対話を可能にし、ホスト デバイス上で実行されるアプリケーション ソフトウェアに直接、一連のサービスを提供します。

7つの階層
図1: OSI参照モデルの概要と7つの階層の関連

レイヤー7はネットワークのコントロール センターと考えてください。脳が人体を制御するのと同じように、レイヤー7は異なるアプリケーション間の管理と調整を担当します。

OSI参照モデルの理解

OSI参照モデルは、ネットワーク上でデータがどのように転送されるのかを記述する概念的枠組みです。国際標準化機構(ISO)によって1984年に策定され、現在ではネットワーク通信の標準的なモデルとして一般に受け入れられています。

OSI参照モデルはネットワーク通信のプロセスを体系的に表したものであり、ネットワーク通信の全体的な機能に寄与する特定のサービスに対して個々の階層が処理を行います。それぞれの階層は隣接する階層と通信しており、ネットワーク全体で、送信側の階層を通じて伝達されたデータが受信側の階層を通じてバックアップされます。

OSI参照モデルの各階層

レイヤー1 - 物理層: 物理層はOSI参照モデルの基礎をなす階層として、未加工のビットストリーム データを銅線、光ファイバー、電波などの物理媒体経由で伝送する役割を果たします。ビット レート、信号強度、物理コネクター、ケーブル種別、ネットワーク トポロジのような側面を管理し、ネットワーク上でのバイナリ伝送の完全性を確保します。

レイヤー2 - データ リンク層: データ リンク層は物理層からの未加工のビットをデータ フレーム内に構築し、物理アドレス(MACアドレス)を使用してノード間の通信を管理します。また、誤り検出と訂正の機能により、データ伝送の信頼性を確保しています。また、CSMA/CD (Carrier Sense Multiple Access with Collision Detection)などの方式を使用して物理媒体へのアクセスも管理します。

レイヤー3 - ネットワーク層: ネットワーク層は、あるノードから別のネットワーク内のもう一つのノードに可変長のデータ シーケンス(パケット)を転送するための手段を提供します。論理アドレッシングに基づいてパケットのルーティングを処理し、ネットワークの輻輳とパケットの順序制御を管理します。

レイヤー4 - トランスポート層: トランスポート層は送信元と宛先のシステムの間でのホスト間通信を扱います。TCPやUDPのようなプロトコルを利用して信頼性の高いデータ伝送または低いデータ伝送に対するメカニズムを提供し、データ パケットのフロー制御、誤り検査、セグメント化を管理します。

レイヤー5 - セッション層: セッション層は、通信の送信側と受信側でアプリケーションどうしの接続(セッション)を確立、管理、解除します。

レイヤー6 - プレゼンテーション層: プレゼンテーション層は、アプリケーション形式のデータを一般的な形式に変換します(逆の場合も同様)。また、暗号化、復号化、データ圧縮などのサービスを提供します。あるシステムのアプリケーション層から送られたデータを別のシステムのアプリケーション層で確実に読み取れるようにします。

レイヤー7 - アプリケーション層: OSI参照モデルの最上位階層であるアプリケーション層は、ユーザーまたはプロセスとネットワークとの間で通信を行うためのインターフェイスとして機能します。HTTP要求やファイル転送、電子メールなど、アプリケーション固有のサービスを提供します。

OSI参照モデルでのデータの流れ

カプセル化および非カプセル化として知られるプロセスにおいて、データはOSI参照モデル内を流れます。このプロセスは、送信元デバイスから宛先デバイスにデータが送信されるときに起こります。

カプセル化プロセス(下方向へのデータの流れ)

カプセル化プロセスは、送信元デバイスのアプリケーション層(レイヤー7)から開始します。ユーザー データが伝送に適した形式に変換された後、変換、圧縮、または暗号化のために下位のプレゼンテーション層(レイヤー6)に渡されます。セッション層(レイヤー5)では、セッションが確立され、データ転送が終了するまで維持されます。

このデータをトランスポート層(レイヤー4)が受信し、管理可能なセグメントに分割し、ポート番号を含むTCPまたはUDPヘッダーを付加します。次にネットワーク層(レイヤー3)が、送信元と宛先のIPアドレスを含むIPヘッダーを付加し、セグメントをパケットに変換します。

データ リンク層(レイヤー2)がこのパケットをフレームにカプセル化し、そのヘッダーにMACアドレス、トレーラーにFCS(フレーム検査順序列)を付加します。最後に物理層(レイヤー1)が、物理媒体を介した伝送のためにこれらのフレームをバイナリ データ(ビット)に変換します。

非カプセル化プロセス(上方向へのデータの流れ)

データは宛先デバイスに到達すると、OSI階層を逆順で上昇します。物理層では、受信されたビットがフレームに再変換されます。データ リンク層はFCSに誤りがないかチェックし、MACアドレスを取り外し、パケットをネットワーク層に渡します。

ネットワーク層はパケットからIPアドレスを取り外し、パケットをセグメントに戻し、トランスポート層に渡します。トランスポート層はデータの正しい順序を確認し、パケットの受信を承認し、TCPヘッダーまたはUDPヘッダーを取り外します。

これで元の形式で、データがセッション層を通ってプレゼンテーション層に渡されます。ここでセッションがクローズされ、これ以前に実行された変換または暗号化がすべて取り消されます。最後にアプリケーション層で、元のユーザー データが使用可能な形式で受信側のアプリケーションに提供されます。

レイヤー7の役割

レイヤー7はソフトウェア アプリケーションと下位のネットワーク サービスとの通信を容易にします。この層はネットワークの基礎となる詳細とは関係ありませんが、ソフトウェア アプリケーションにネットワーク サービスを利用する方法を提供することに注力しています。レイヤー7は本質的にネットワークのインタープリタのようなものとして機能します。つまり、ユーザーまたはアプリケーションのデータをOSI参照モデルの他の階層が理解できる標準的なプロトコルに変換します。

それぞれが固有の目的を果たす各種プロトコルによって、アプリケーション層が通信パートナーどうしのエンドツーエンドの通信を容易にできます。以下はその例です。

  • FTAM (File Transfer Access and Management)プロトコルは、リモート システムのファイルへのユーザーによるアクセスと管理を可能にします。

  • SNMP (シンプル ネットワーク マネージメント プロトコル)は、ネットワーク管理者によるネットワーク デバイスの管理、監視、設定を可能にします。

  • CMIP (Common Management Information Protocol)はネットワーク管理情報を定義します。

  • HTTP (Hypertext Transfer Protocol)はWeb上のクライアントとサーバー間の通信を可能にします。

レイヤー7の負荷分散

ロード バランサーでネットワーク トラフィックを複数のサーバーに分散することによって、リソースの使用を最適化し、応答時間を短縮し、単一のサーバーの過負荷を回避します。

レイヤー7では、負荷分散によってネットワーク トラフィックの分散に追加の要素が加えられます。IPアドレスおよびTCP/UDPポートの情報に基づいて判断を行うレイヤー4のロード バランサーとは異なり、レイヤー7のロード バランサーはユーザーのメッセージの中身を検査してルーティングの判断を行います。

レイヤー7のロード バランサーはネットワーク パケットの「ペイロード」を分析し、アプリケーション メッセージ内のHTTPヘッダー、Cookie、データなどの要素を考慮して高度な負荷分散の判断を行います。たとえば、要求されたURLまたは要求されたコンテンツのタイプ(画像、スクリプト、テキストなど)に基づき、トラフィックを別のサーバーにルーティングできます。

レイヤー7のセキュリティ

アプリケーション層の保護は、組織がオンプレミス、クラウドベース、またはハイブリッドのどのアプローチを選んでも、機密データの保護とサービス可用性の維持をするうえで最も重要なことです。また、ユーザーおよびそのデータと直接対話する階層として、レイヤー7はユーザーの認証情報および個人識別情報にアクセスしようとする攻撃者をおびき寄せます。この階層での一般的な攻撃のタイプには、アプリケーション層攻撃およびレイヤー7 DDoS (分散型サービス拒否)攻撃が含まれます。

アプリケーション層攻撃は、アプリケーション内の脆弱性(妥当性の確認が不十分な入力や、安全でない設定など)の悪用を試みます。レイヤー7 DDoS攻撃は、サーバー、サービス、またはネットワークに処理できない量の要求を送信してリソースを過剰消費させることを目的としています。ネットワークを大量のトラフィックであふれさせる通常のDDoS攻撃とは異なり、レイヤー7 DDoS攻撃はたいてい徐々に開始し、通常のユーザーの行動を模倣します。そうすることで、検出を困難にします。

クラウドネイティブ環境においては、レイヤー7のネットワーク セキュリティに対応する組込みメカニズムがKubernetesのようなツールによって提供されます。ただし多くの場合、これらのメカニズムにはWebアプリケーション ファイアウォール(WAF)、侵入検知システム、ロバストなセキュリティ ポリシーといった追加のセキュリティ対策が必要です。

特にWAFはアプリケーション層で動作し、データ パケットの中身に基づいて情報の理解と判断を行うことができるため、レイヤー7セキュリティの重要な役割を担います。WAFはHTTP/HTTPSで定義されたルールに基づいて悪意のあるトラフィックをフィルターで除外できるため、従来のネットワーク層のファイアウォールよりもさらにきめ細かいネットワーク トラフィックの制御が可能になります。

Webアプリケーション用ファイアウォールで実現するレイヤー7のセキュリティ
図2: Webアプリケーション用ファイアウォールで実現するレイヤー7のセキュリティ

OSI参照モデルとTCP/IP参照モデルの比較

OSI参照モデルと同様に、TCP/IP (トランスミッション コントロール プロトコル/インターネット プロトコル)参照モデルは、ネットワーク プロトコルがどのように相互作用・連携してネットワーク サービスを提供するのかを記述したものです。ただし、この2つのモデルは構造、抽象化レベル、過去の用途の面で異なっています。

OSI参照モデルとTCP/IP参照モデルの比較
図3: OSI参照モデルとTCP/IP参照モデルの比較

構造および抽象化レベル

OSI参照モデルには7つの階層があり、各階層が一連の具体的なサービスを提供し、直前および直後の階層と相互作用しながら独立して動作します。設計段階で、意図したとおりに、あらゆるタイプのネットワーク通信に対応する普遍的な基準が作られています。

TCP/IP参照モデルはネットワーク通信の現実にさらに多くの焦点を当てたものであり、4階層の構造からわかるように、モジュール式の機能分割を重視していません。

  1. ネットワーク インターフェイス層(OSI参照モデルの物理層とデータ リンク層に相当)
  2. インターネット層(ネットワーク層に相当)
  3. トランスポート層
  4. アプリケーション層(OSI参照モデルのセッション層、プレゼンテーション層、アプリケーション層の組合せ)

過去の用途

OSI参照モデルは包括的な設計にもかかわらず、実際的なネットワーキング実装に広く採用されたことは一度もありません。その用途は構想段階から先に進まず、ネットワーク プロトコルの相互作用と働きを理解して説明するための手段となっています。

これとは対照的に、TCP/IP参照モデルは現代のインターネットの基礎として作成・実装されました。TCPとIPはインターネットのバックボーン プロトコルです。このモデルは実際的なネットワーキングの問題を解決し、効果的な広域通信の実現を目的として設計されたものであり、階層化された参照モデルに準拠することが目的ではありません。

レイヤー7とOSI参照モデルに関するよくある質問

ビットストリーム データとは、継続的な流れにおいて未加工のバイナリ形式の情報を表す一連のビットです。コンピューティングおよびデジタル通信においては、このデータにテキスト、画像、音声、動画などを含めることができます。データ伝送および保管の基本単位です。ビットストリーム内の各ビット(2進数字)は0または1の値を保持できます。
フレーム検査順序列はネットワーキングに使用される誤り検出方法の一つであり、データの完全性を確保します。データ伝送中にデータの末尾に付加される数値計算です。受信側のデバイスはフレームを受信すると、FCSを再計算し、受信した値と比較します。値が一致する場合、フレームは誤りなしと見なされます。
LLCは、OSI参照モデルのデータ リンク層の一部です。ネットワーク層のプロトコルおよびMACサブレイヤー用のインターフェイスを提供することで、さまざまなタイプのネットワーク上で各種のネットワーク プロトコルが動作可能になります。LLCは誤りおよびフロー制御を管理し、コネクション型またはコネクションレス型のデータ伝送のようなサービスを提供できます。
SNAPは、使用中のネットワーク層プロトコルを特定するメカニズムを提供することによってIEEE 802.2 LLCを拡張した規格であり、データ通信に使用されます。これにより、LLCデータ ユニット内で各種ネットワーク プロトコルをカプセル化し、ネットワーク上で転送できます。
トークン リングはLANテクノロジの一種であり、論理リング トポロジ内にデバイスが配列され、トークンを渡すことによって通信が発生します。トークンは、リングの周囲を巡回する特殊なビット パターンです。トークンを保持しているデバイスには送信の権利があり、送信後、トークンが次のデバイスに順番に渡されます。トークン パッシングのメカニズムにより、ネットワークへのスムーズなアクセスが確実なものとなり、衝突を削減します。
レイヤー7は他のOSI階層から独立して機能することはできません。レイヤー7は最上位層であるため、通信の成功を下位層のサービスに依存しています。アプリケーション間のセッションの管理にセッション層(レイヤー5)を使用し、さらに下位の階層を使用してデータ伝送の信頼性を確保します。
レイヤー7の負荷分散には、下位層の負荷分散を上回る利点が複数あります。ネットワーク トラフィックの中身を考慮することによって、トラフィックの分散に対するきめ細かい制御を提供できます。また、トラフィックを操作する柔軟性もあり、たとえば、HTTPヘッダーを変更したり、SSLのオフロードを実行したりすることでトラフィックを操作できます。下位層の負荷分散よりも処理のオーバーヘッドが多くなりますが、複雑な現代のアプリケーション、特にクラウド環境に適しています。
レイヤー7は、それぞれが特定のタイプのネットワーク通信に合わせて作られた幅広いプロトコルをサポートしています。たとえば、HTTPはWebブラウジング、SMTPは電子メール、FTPはファイル転送に使用されます。レイヤー7は、各アプリケーションのネットワーク通信のニーズに合った正しいプロトコルが確実に使用されるようにします。
Webアプリケーション ファイアウォール(WAF)は、Webアプリケーションとインターネット間のHTTP/HTTPSトラフィックをフィルターおよび監視するセキュリティ ソリューションです。WebアプリケーションおよびWebサーバーが要求を受け入れる前に悪意のある要求を検出して応答する機能により、SQLインジェクションやクロスサイト スクリプティング(XSS)、DDoS攻撃といった、アプリケーション層(レイヤー7)での攻撃からの保護を提供します。