蓝牙协议(RFCOMM,L2CAP和ACL)

时间:2014-01-01 11:12:13

标签: bluetooth android-bluetooth rfcomm l2cap

从我从Bluetooth Essentials for Programmers中读到的内容,本书提到了一些我不太了解的观点。

RFCOMM是一种可靠的基于流的协议。    L2CAP是一种基于数据包的协议,可以配置不同级别的可靠性。

L2CAP实际上是RFCOMM的传输协议,因此每个RFCOMM连接实际上都封装在L2CAP连接中。

这真让我感到困惑,因为这两个协议是不同类型的协议(一个是基于流的,另一个是基于数据包的)。基于其解释,我在下面提出了一些问题。

  1. 由于封装了RFCOMM连接,那么串口配置文件(SPP)如何使用RFCOMM连接?它也应该使用L2CAP。

  2. A2DP使用L2CAP连接。这对我来说意味着相同,因为L2CAP和RFCOMM封装在ACL连接中,这是否意味着A2DP使用ACL连接?我知道这是不正确的,但如何解释这一点。

  3. 感谢您的解释。

1 个答案:

答案 0 :(得分:7)

封装可能处于“设备”驱动程序级别,因此它对您来说是不可见的,就像您从未“创建”以太网数据包一样,但您仍然能够本地使用TCP / IP,为什么呢?同样的事情,RFCOMM使用L2CAP,但并不意味着您需要知道要使用的L2CAP。

通常使用封装时,如果你不想麻烦别的东西,在这种情况下,他们不想麻烦信号问题,RFCOMM用于串行接口,所以他们不想处理串口的信令问题