实战Linux Bluetooth编程(四) L2CAP层编程
(L2CAP协议简介,L2CAP在BlueZ中的实现以及L2CAP编程接口) 一:L2CAP协议简介: Logical Link Control and Adaptation Protocol(L2CAP) 逻辑连接控制和适配协议 (L2CAP) 为上层协议提供面向连接和无连接的数据服务,并提供多协议功能和分割重组操作。 L2CAP 充许上层协议和应用软件传输和接收最大长度为 64K 的 L2CAP 数据包。 L2CAP 基于 通道 (channel) 的概念。 通道 (Channel) 是位于基带 (baseband) 连接之上的逻辑连接。每个通道以多对一的方式绑定一个单一协议 (single protocol) 。多个通道可以绑定同一个协议,但一个通道不可以绑定多个协议。 每个在通道里接收到的 L2CAP 数据包被传到相应的上层协议。 多个通道可共享同一个基带连接。 L2CAP处于Bluetooth协议栈的位置如下: 也就是说,所有L2CAP数据均通过HCI传输到Remote Device。且上层协议的数据,大都也通过L2CAP来传送。 L2CAP可以发送Command。例如连接,断连等等。 下面看Command例子:Connection Request: 其中PSM比较需要注意,L2CAP 使用L2CAP连接请求(Connection Request