19

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

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

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

这真的让我很困惑,因为这两种协议是不同类型的协议(一种是基于流的,另一种是基于数据包的)。所以根据它的解释,我在下面有一些问题。

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

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

感谢您在这里的任何解释。

4

1 回答 1

9

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

通常当你不想麻烦其他事情时使用封装,在这种情况下他们不想麻烦信令问题,RFCOMM用于串行接口,所以他们不想处理信令问题串行接口

于 2014-01-02T06:03:14.180 回答