蓝牙----蓝牙协议栈L2CAP

本文详细介绍了L2CAP协议,包括其在经典蓝牙和BLE中的功能、工作模式(如基础模式和LE令牌流程控制),以及数据分段和重组的过程。重点讨论了SDU、MTU、PDU等关键概念及其在不同模式下的应用。
摘要由CSDN通过智能技术生成


L2CAP—逻辑链路控制和适配层协议
在这里插入图片描述

L2CAP的功能

  • 经典蓝牙的L2CAP层实现了协议复用、数据分段与重组、封装调度等操作。
  • BLE的L2CAP层是经典蓝牙L2CAP层的简化版本:
    在基础模式下,不执行分段和重组,不涉及流程控制和重传机制,仅使用固定信道进行通信,
    在LE令牌流程控制模式下,实现了流程控制,执行数据分段和重组,使用动态信道进行通信。

包括资源管理器和信道管理器

资源管理:
   分段和重组:对APP层的消息(SDU)进行分段,传输到L2CAP。
  重传和流控制
  封装与调度
  分段和重组:对PDU进行分组,传输到HCI层。
通道管理:
  用逻辑通道来区分,使用相同物理信道的是哪个上层协议

术语介绍

  • SDU:服务数据单元,L2CAP与上层交换的数据包。
  • MTU:表示L2CAP层的最大可传输单元,代表L2CAP与上层交换的数据包
    限制了应用层与L2CAP层之间传输数据的最大长度
    普通L2CAP模式时:SDU(MTU位)+L2CAP头(4位)组成PDU的Payload最大的长度 默认23+4=27
  • PDU:协议数据单元,包含L2CAP协议信息字段、控制信息、上层信息数据的数据包,代表L2CAP与下层交换的数据包
  • MPS:L2CAP层PDU的有效数据Payload最大长度,该参数限制了单个PDU的长度(最大的PDU)

在这里插入图片描述

BLE的L2CAP层在基础模式下通常不执行分段和重组机制原理为:
PDU被设计为较小的固定大小,通常等于链路层的最大传输单元(MTU),因此不需要对上层应用层数据进行分割或重组。

L2CAP信道

CID代表高层协议信道功能信道类型
0x0004属性协议信道用于收发属性协议层的数据,代表BLE应用层通信所传输的数据固定信道
0x0005信令信道处理应用层发送的命令固定信道
0x0006安全管理协议信道处理加密、配对和绑定数据固定信道
0x0020 - 0x0003E蓝牙官方编码信道固定信道
0x0040 - 0x0007F令牌连接模式的通信信道用于L2CAP的LE令牌流程控制工作模式动态信道

其中广播数据不适用于任何一个L2CAP信道

对于密令信道而言BLE只支持连接参数的更新,以及COC连接和断开(COC是使用在LE令牌流程控制模式时使用的)

L2CAP的工作模式

工作模式适用蓝牙
默认工作模式传统蓝牙、BLE
流程控制模式传统蓝牙
重传模式传统蓝牙
增强型重传模式传统蓝牙
数据流模式传统蓝牙
LE令牌流控制模式BLE

• 基础模式为默认工作模式,L2CAP层不执行流程控制,对数据不执行分段和重组操作,
• 其他五种模式均使用了流程控制或重传机制,需要执行分段和重组操作。

不同的工作模式,其数据帧格式略有不同

经典蓝牙的分段和分解过程

当出现MTU大于MPS时候,需要L2CAP层对上层SDU进行拆包成一个个小PDU,这是传统蓝牙的分段和分解功能。
• SDU(APP层的信息)被分割成MTU大小的若干段,传入L2CAP,加入L2CAP的Header,组成PDU。
• PDU(L2CAP层)被分割成MPS大小的若干段,传入HCI。

在这里插入图片描述


学习参考:
认识BLE 5协议栈 —— 逻辑链路控制与适配协议层 – Hey, You (sunyouqun.com)
Bluetooth技术学习笔记 ——L2CAP之概述_l2cap的分段与重组-CSDN博客
BLE中L2CAP层基本功能分析 - 不回本不改名 - 博客园 (cnblogs.com)
谷雨《CC2640R2蓝牙5.0入门教程》

  • 30
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值