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

蓝牙协议栈----L2CAP

  • L2CAP的功能
  • 术语介绍
  • L2CAP信道
  • L2CAP的工作模式
  • 经典蓝牙的分段和分解过程


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入门教程》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/647541.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫js逆向分析——x平台(实现)

爬虫js逆向分析——x平台(实现) (仅供学习,本案例只是分析流程没有账号)网址:https://xuexi.chinabett.com/ 1.分析请求包格式 打开控制台,并勾选保存日志,然后点击登录看发送了什…

ICSpector:一款功能强大的微软开源工业PLC安全取证框架

关于ICSpector ICSpector是一款功能强大的开源工业PLC安全取证框架,该工具由微软的研究人员负责开发和维护,可以帮助广大研究人员轻松分析工业PLC元数据和项目文件。 ICSpector提供了方便的方式来扫描PLC并识别ICS环境中的可疑痕迹,可以用于…

Unity配置表xlsx/xls打包后读取错误问题

前言 代码如下: //文本解析private void ParseText(){//打开文本 读FileStream stream File.Open(Application.streamingAssetsPath excelname, FileMode.Open, FileAccess.Read, FileShare.Read);//读取文件流IExcelDataReader excelRead ExcelReaderFactory…

vue实现甘特图

目录 实现效果 一、安装依赖 二、使用 二、绕过license 实现效果 一、安装依赖 npm i --save vue-gantt-schedule-timeline-calendar 实现甘特图需先安装上述依赖,安装依赖实际上是通过gantt-schedule-timeline-calendar来实现的。所以node_module中因包含以下…

JQuery下载和一些语法

最近学了六种jQuery选择器,我想把学过案例和知识结合起来,给大家分享下! 那么既然学jQuery选择器,肯定要先了解下jQuery是什么吧!jQuery是一个快速、简洁的JavaScript框架,相当于用jQuery能更加高效的创建…

【快影】怎么制作卡拉OK字幕

您好,您添加了字幕之后可以添加动画,选择卡拉OK,其中 卡拉OK1是支持修改颜色的,卡拉OK2只支持修改文字的底色。

Denoising diffusion implicit models 阅读笔记2

Denoising diffusion probabilistic models (DDPMs)从马尔科夫链中采样生成样本,需要迭代多次,速度较慢。Denoising diffusion implicit models (DDIMs)的提出是为了在复用DDPM训练的网络的前提下,加速采样过程。 加速采样的基本思路是&#…

geemap学习笔记052:影像多项式增强

前言 下面介绍的主要内容是应用Image.polynomial() 对图像进行多项式增强。 1 导入库并显示地图 import ee import geemap ee.Initialize() Map geemap.Map(center[40, -100], zoom4)2 多项式增强 # 使用函数 -0.2 2.4x - 1.2x^2 对 MODIS 影像进行非线性对比度增强。# L…

创建第一个 Spring 项目(IDEA社区版)

文章目录 创建 Spring 项目创建一个普通的 Maven 项目添加 Spring 依赖IDEA更换国内源 运行第一个 Spring 项目新建启动类存储 Bean 对象将Bean注册到Spring 获取并使用 Bean 对象 创建 Spring 项目 创建一个普通的 Maven 项目 首先创建一个普通的 Maven 项目 添加 Spring 依…

全面解析开源大语言模型:BLOOM

大型语言模型 (LLM) 的兴起一直是自然语言处理 (NLP) 领域的一个决定性趋势,导致它们在各种应用程序中的广泛采用。然而,这种进步往往是排他性的,大多数由资源丰富的组织开发的 LLM 仍然无法向公…

什么是servlet

什么是servlet 什么是servlet Servlet(Server Applet)是 Java Servlet 的简称,称为小服务程序或服务连接器,用 Java 编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据…

java数据结构与算法刷题-----LeetCode769. 最多能完成排序的块

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 这道题可以理解为,只能保证块内有序的情况下&#xf…

大模型学习笔记一:大模型应用开发基础

文章目录 一、大模型一些概念介绍 一、大模型一些概念介绍 1)产品和大模型的区别(产品通过调用大模型来具备的能力) 2)AGI定义 概念:一切问题可以用AI解决 3)大模型通俗原理 根据上文,猜测下…

WordPress反垃圾评论插件Akismet有什么用?如何使用Akismet插件?

每次我们成功搭建好WordPress网站后,都可以在后台 >> 插件 >> 已安装的插件,在插件列表中可以看到有一个“Akismet反垃圾邮件:垃圾邮件保护”的插件(个人觉得是翻译错误,应该是反垃圾评论)。具…

vue实现在线Excel表格功能

目录 1.安装x-data-spreadsheet xlsx 2.引入 3.使用 1.安装x-data-spreadsheet xlsx npm i x-data-spreadsheet xlsx2.引入 import zhCN from "x-data-spreadsheet/src/locale/zh-cn"; import Spreadsheet from "x-data-spreadsheet"; import * as X…

【c++】高精度算法(洛谷刷题2024)乒乓球详解

系列文章目录 第一题 乒乓球 视频:http://【洛谷题单 - 算法 - 高精度】https://www.bilibili.com/video/BV1Ym4y1s7BD?vd_source66a11ab493493f42b08b31246a932bbb 目录 系列文章目录 第一题 乒乓球 前言 一、题目以及引领思考 二、题解与代码 1.输入输出案例 …

C语言实现快速排序算法(附带源代码)

快速排序 在区间中随机挑选一个元素作基准,将小于基准的元素放在基准之前,大于基准的元素放在基准之后,再分别对小数区与大数区进行排序。 动态效果过程演示: 快速排序(Quick Sort)是一种常用的排序算法&…

WIFI电路原理时序检修思路

uart是串口,bt是蓝牙,hsic是高速接口。pcm是音频接口。时序图的第五步是发出就绪信号,然后第六步与门发出就绪信号。 wifi芯片是u8_rf。 特别说明:short表示短接。xw表示实际是看不到物体的,是直接相连的。 找信号50_…

【Midjourney】绘画风格关键词

1.松散素描(Loose Sketch) "Loose sketch"(松散素描)通常指的是一种艺术或设计中的手绘风格,其特点是线条和形状的表现相对宽松、自由,没有过多的细节和精确度。这样的素描通常用于表达创意、捕捉概念或者作为设计的初步…

React进阶 - 14(说一说”虚拟DOM“中的”Diff算法“)

本章内容 目录 一、了解 Diff 算法二、key 值的重要性三、为什么不建议使用 index 做 key 值 上一节我们初步了解了 React中的”虚拟 DOM“ ,本节我们来说一说”虚拟DOM“中的”Diff算法“ 一、了解 Diff 算法 在上一篇中,我们有讲到:当 st…