L2CAP的功能要求包括协议/信道复用、分段和重组(segmentation and reassembly,SAR)、每个信道的流控制、差错控制和组管理。下图表示了在蓝牙协议栈中的L2CAP数据流。L2CAP在链路控制协议之上,和其他一些上层通信协议相接,例如:Service Discovery Protocol 服务发现协议(SDP), RFCOMM 电缆替代协议, Telephony Control (TCS)音频与电话控制协议和 Bluetooth Network Encapsulation Protocol (BNEP)蓝牙网络封装协议等。音频与电话应用和同步透明连接的话音质量信道通常在同步逻辑传输上进行。分组后的音频数据,例如IP电话,可以通过在L2CAP之上的通信协议进行传输。
图6.2 在蓝牙协议结构中的L2CAP数据流
下图表示了L2CAP层的结构。channel manager(信道管理器)提供控制平面功能(control plane function),并负责内部信令、L2CAP点对点信令以及它和高、低层之间的信令。retransmission(重传)和flow control(流控制)块提供了每个信道的流控制和可选的重传应用。资源管理器负责提供对信道管理器、重传及流控制和流控制块以及一些不需要重传和流控制服务的应用数据流的帧中继服务。它负责在低层接口提供的设备之上的和多路L2CAP信道有关的收发分组保持一致。
图6.3 L2CAP结构图
● 协议复用
L2CAP应支持协议复用,因为基带协议不支持任何 ‘类型’ 字段,而这些类型字段则用于标识要复用的更高层协议。L2CAP必须能够区分高层协议,
在信道建立时,协议复用功能用来发送请求来连接正确的上层协议;在数据传输时,逻辑信道复用必须能够把用同一个协议的不用几个高层实体的区分出来。
● 分段与重组
通过由资源管理器所提供的帧中继服务,在L2CAP层之上个人应用程序可以控制传输帧的大小。如果L2CAP控制了PDU的长度,那么就可许多多路复用应用提供更好的服务。它提供下面的好处:
a)分段将允许应用数据单元的交错,这样可以满足延时要求。
b)在L2CAP控制了分组大小以后,内存和缓冲区管理就会变的更加简单。
c)重传纠错更加有效。
d)由于L2CAP PDU损坏而造成丢失数据的数量可以比应用数据单元变得更小。
e)上层分组映射在低层分组中,并可以从低层分组中被分离出来。
每个L2CAP信道的流控制
在同一个L2CAP逻辑链路上有几个数据流传输时(它们使用各自单独的L2CAP信道),每个信道需要各自的流控制。L2CAP也对需要流控制的应用提供流控制。由于L2CAP层间延迟,在基带中所用的停-开始(stop-and-go)流控制是不充足的,因此采用了基于窗口的流控制方案。L2CAP根据需求提供流控制服务。
服务质量
L2CAP 连接建立过程,允许交换有关两蓝牙单元之间服务质量的信息。每个L2CAP设备必须监视由协议使用的资源并保证服务质量(QoS)的完整实现。
● 差错控制和重传
有些应用只需要比基带传送时更小的冗余差错率,L2CAP提供了可供选择的差错校验和重传的L2CAP_PDU,在L2CAP中的错误保护能否被检测到取决与基带是否正确接收到分组头和基带分组中的HEC和CRC差错校验是否正确。重传模式也保护分组的丢失,它取决于在相同逻辑传输上的刷新(flush)。如果同时使用差错控制和流控制,在第一次传输时,流控制机制将替代重传。差错控制和重传都是可选的。