L2CAP(エルツーキャップ)とは | 意味や読み方など丁寧でわかりやすい用語解説
L2CAP(エルツーキャップ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
レイヤー2通信プロトコル (レイヤーツーつうしんぷろとこる)
英語表記
L2CAP (エルツーキャップ)
用語解説
L2CAPは、Bluetoothプロトコルスタックにおいて核となる層の一つであり、Logical Link Control and Adaptation Protocolの略である。このプロトコルは、Bluetoothデバイス間の物理的な無線接続であるベースバンド層の機能と、その上に位置する様々な上位プロトコルやアプリケーションとの橋渡し役を担う。L2CAPは、データの多重化、パケットのセグメンテーションと再構成、論理チャネルの管理、そしてサービス品質(QoS)の提供を通じて、Bluetooth通信の柔軟性と効率性を実現するための基盤を提供する。OSI参照モデルではデータリンク層の上位またはネットワーク層の下位に位置し、異なる種類のデータが単一のBluetooth接続上で同時に、かつ効率的に転送されることを可能にする。
L2CAPの主要な役割の一つは、プロトコルの多重化である。Bluetoothエコシステムには、オーディオ転送を行うA2DPやHSP、シリアルポートをエミュレートするRFCOMM、デバイスのサービス情報を探索するSDPなど、多様な上位プロトコルが存在する。L2CAPは、これらの異なるプロトコルからのデータを識別し、単一の物理的なBluetoothリンク上で多重化して送信する。この多重化は、「PSM(Protocol/Service Multiplexer)」と呼ばれる識別子を各上位プロトコルのデータに付与することで実現される。受信側のL2CAPは、このPSMを参照してデータグラムを適切な上位プロトコルにルーティングし、これにより、例えばBluetoothヘッドセットで音楽を聴きながら、同時にスマートフォンの通知情報を受信するといった複合的な利用が可能になる。
次に、L2CAPはデータパケットのセグメンテーション(分割)と再構成を行う重要な機能を持つ。上位プロトコルからL2CAPに渡されるデータは、しばしばBluetoothの基盤となるベースバンド層が一度に転送できる最大サイズ(ペイロード長)よりも大きい場合がある。L2CAPはこのような大きなデータパケットを、ベースバンド層が処理できる小さなチャンクに分割し、それぞれのチャンクを個別のベースバンドパケットとして送信する。受信側では、L2CAPがこれらのチャンクを再び順番に組み立てて、元の完全なデータパケットを上位プロトコルに渡す。このプロセスは、L2CAPチャネルごとに「MTU(Maximum Transmission Unit)」と呼ばれる最大データ転送単位をネゴシエートすることで、効率的に管理される。MTUは、L2CAPが上位プロトコルから受け取って処理できる最大のパケットサイズを定義し、無駄な分割と再構成のオーバーヘッドを削減することに寄与する。
また、L2CAPは論理チャネルの確立、設定、切断を管理する。上位プロトコルが通信を開始する際には、L2CAPに対して特定のPSMを持つ論理チャネルの確立を要求する。L2CAPはこの要求に応じて、相手デバイスとの間でチャネルを確立し、「CID(Channel Identifier)」と呼ばれる一意の識別子をそのチャネルに割り当てる。このCIDを通じて、L2CAPは特定のアプリケーションやサービスに向けたデータを識別し、適切にルーティングする。L2CAPは、このような論理チャネルを確立して行う接続指向型の通信だけでなく、チャネルを確立せずに単発のデータグラムを送信する非接続指向型の通信もサポートしており、アプリケーションの要件に応じて柔軟なデータ転送オプションを提供する。
さらに、L2CAPはサービス品質(QoS)の概念を導入し、アプリケーションが要求する帯域幅、遅延、信頼性といった通信特性をネゴシエートする機能を持つ。例えば、リアルタイム性が要求される音声ストリーミングには低い遅延と安定した帯域幅が、ファイル転送のようなデータ完全性が重視されるアプリケーションには高い信頼性が求められる。L2CAPはこれらの要件を考慮し、可能な範囲で最適な通信リソースの割り当てを試みることで、異なる種類のアプリケーションが同じBluetoothリンク上で共存しながら、それぞれの要求に応じたパフォーマンスを発揮できるよう支援する。
L2CAPにはいくつかの異なる通信モードが存在し、それぞれの用途に応じて選択される。 最も基本的なのは「Basic Mode(基本モード)」であり、順序保証や再送、フロー制御といった機能はL2CAP層では提供せず、信頼性は下位のACL(Asynchronous Connection-Less)リンクに依存する。これはシンプルなデータ転送に適している。 より信頼性の高いデータ転送が必要な場合には、「Retransmission and Flow Control Mode(再送・フロー制御モード)」や、その改良版である「Enhanced Retransmission Mode(ERTM, 拡張再送モード)」が使用される。これらのモードでは、L2CAP層自体がデータパケットの順序保証、欠落したパケットの再送、そして送信側と受信側のデータ処理能力の差を調整するフロー制御機能を提供する。ERTMはBluetooth Low Energy(BLE)においても接続指向チャネルの標準モードとして採用されており、効率的かつ堅牢なデータ転送を実現する。 リアルタイム性の高いデータ、例えば音声や動画ストリーミングには、「Streaming Mode(ストリーミングモード)」がある。このモードでは、再送は行わないが、フロー制御によってデータの途切れを防ぐことを目的とする。再送による遅延を避けつつ、一定のデータフローを維持したい場合に有効である。 Bluetooth Low Energy(BLE)特有のモードとしては、「LE Credit Based Flow Control Mode(LE-CBFC)」がある。これは、クレジットという概念を用いて受信側のバッファ状況を送信側に通知し、送信側がバッファオーバーフローを起こさないようにデータ送信量を調整する方式である。BLEにおける接続指向チャネルのフロー制御メカニズムとして広く用いられている。
このように、L2CAPはBluetooth通信において、上位プロトコルと下位の物理リンクとの間でデータの多重化、分割・再構成、論理チャネル管理、QoSの提供、そして多様な通信モードのサポートといった多岐にわたる機能を提供している。これにより、Bluetoothがスマートフォン、ウェアラブルデバイス、IoT機器など、多種多様なデバイス間で、異なる種類のデータ(音声、データ、制御信号など)を柔軟かつ効率的にやり取りできる普遍的な無線通信技術として広く普及する上で、不可欠な役割を担っている。L2CAPの存在が、我々が日常的に利用するBluetooth機器のシームレスな連携と多様な機能を実現する土台となっているのである。