逻辑链路控制与适配协议通常简称为L2CAP(Logical Link Control and Adaptation Protocol),它向上连接应用层,向下连接控制器层,发挥主机与控制器之间的适配器的作用,使上层应用操作无需关心控制器的数据处理细节。
经典蓝牙的L2CAP层比较复杂,它实现了协议复用、数据分段与重组、封装调度等操作,使得主机能够支持LE和BR/EDR不同的控制器,实现音频数据流传输等高级功能。
BLE的L2CAP层是经典蓝牙L2CAP层的简化版本,它在基础模式下,不执行分段和重组,不涉及流程控制和重传机制,仅使用固定信道进行通信,在LE令牌流程控制模式下,实现了流程控制,执行数据分段和重组,使用动态信道进行通信。
概述
L2CAP 向具有协议复用能力以及分段和重组操作的上层协议提供面向连接和无连接的数据服务。
L2CAP 允许更高级别的协议和应用程序发送和接收长达 64 KB 的上层数据包(L2CAP 服务数据单元,Service Data Units,SDU)。
L2CAP 还允许按通道进行流量控制和重传。 L2CAP 层提供逻辑通道,称为 L2CAP 通道,它们在一个或多个逻辑链路上复用。
功能
(1)Protocol/channel multiplexing 协议/通道复用
L2CAP 支持在单个控制器和多个控制器上进行多路复用。 L2CAP 通道一次应在一个控制器上运行。
在通道建立期间,协议复用能力用于将连接路由到正确的上层协议。
对于数据传输,需要逻辑信道复用来区分多个上层实体。可能有多个上层实体使用相同的协议。
(2)Segmentation and reassembly 分段和重组
在蓝牙通信中,分段与重组是数据传输过程中的重要概念,特别是在处理较大数据包时。由于蓝牙技术的限制,如最大传输单元(MTU)的限制,较大的数据包需要被分割成较小的单元进行传输,这些单元在接收端再被重新组合。
- 分段(Segmentation)
-
- 当一个数据包的大小超过蓝牙连接的最大传输单元(MTU)时,它需要在发送端被分割成多个较小的片段。
- 每个片段都是一个独立的数据包,包含头部信息(如片段编号、总片段数等),这样接收端可以正确地识别和重组这些片段。
- 重组(Reassembly)
-
- 在接收端,根据片段头部信息,接收到的数据片段被重新组合成原始的数据包。
- 重组过程确保了数据的完整性和正确性,即使它们在传输过程中被分割成多个片段
(3)Flow control per L2CAP channel 每个 L2CAP 通道的流量控制
控制器为通过空中传输的数据提供错误和流量控制,并且为通过 HCI 传输的数据提供 HCI 流量控制。当多个数据流使用单独的 L2CAP 通道在同一个控制器上运行时,每个通道都需要单独的流量控制。提供了一种基于窗口的流量控制方案。
(4) Error control and retransmissions 错误控制和重传
当 L2CAP 通道从一个控制器移动到另一个控制器时,数据可能会丢失。此外,某些应用程序需要的残余错误率远小于某些控制器所能提供的。 L2CAP 提供 L2CAP PDU 的错误检查和重传。
L2CAP 中的错误检查可防止由于控制器错误地接受包含错误但通过基于控制器的完整性检查的数据包而导致的错误。
L2CAP 错误检查和重传还可以防止由于控制器刷新导致的数据包丢失。
错误控制与流量控制一起工作,因为流量控制机制将限制重传以及首次传输。
(5)Support for Streaming 支持流媒体
诸如音频之类的流应用程序会设置一个具有商定数据速率的 L2CAP 通道,并且不希望流控制机制(包括控制器中的机制)来改变数据流。
(6)Fragmentation and Recombination 分割和重组
一些控制器可能具有有限的传输能力,并且可能需要不同于由 L2CAP 分段创建的片段大小。因此,L2CAP 之下的层可以进一步对 L2CAP PDU 进行分段和重组,以创建适合每一层能力的分段。
(7)Quality of Service 服务质量
L2CAP 连接建立过程允许在两个蓝牙设备之间交换有关预期服务质量 (QoS) 的信息。每个 L2CAP 实施都会监控协议使用的资源,并确保遵守 QoS 合同。
(8)不支持的功能
L2CAP 不传输为 SCO 或 eSCO 逻辑传输设计的同步数据。
L2CAP 不支持可靠的广播信道
类型
1)面向连接(CO)信道
两个连接设备之间的双向通信
2)无连接(CL)信道
用来向一组设备进行广播式的数据传输,为单向信道
3)信令(Signaling)信道
用于创建CO信道,并可以通过协商过程改变CO信道的特性
定时器事件
RTX定时器是用于在远端设备迟迟未对请求信令做出响应时终止信道。
ERTX定时器用来在远端设备正对请求信令作额外的处理时(待决状态)取代RTX定时器进行计时。
DLCI
DLCI(Data Link Connection Identifier)是一个重要的概念,用于标识和区分不同的数据链路连接。DLCI是逻辑链路的一个抽象表示,允许在同一个物理链路上建立多个逻辑通道,实现多路复用。
标签:控制器,分段,适配,片段,信道,L2CAP,链路,数据包 From: https://blog.csdn.net/weixin_62412958/article/details/137103151