蓝牙(2):BR/EDR的连接过程;查询(发现)=》寻呼(连接)=》安全建立=》认证=》pair成功;类比WiFi连接过程。

4.2.1 BR/EDR 流程:

查询(发现)=》寻呼(连接)=》安全建立=》认证=》pair成功

4.2.1.1 查询(发现)流程Inquiry (discovering)

类比WiFi的probe request/response

蓝牙设备使用查询流程来发现附近的设备,或被其所在区域内的设备发现。

查询流程是不对称的。一个试图寻找其他附近设备的蓝牙设备被称为查询设备,并主动发送查询请求。可以被发现的蓝牙设备被称为可发现设备,它们监听这些查询请求并发送响应。查询流程使用特殊的物理通道进行查询请求和响应。

查询设备和可发现设备可能已经与 piconet 中的其他蓝牙设备连接。任何用于查询或占用查询扫描物理通道的时间都需要与现有逻辑传输的 QoS 承诺需求相平衡。

尽管在交换查询和查询响应信息时可能会认为存在瞬态物理链路,但查询流程并不使用物理通道以上的任何架构层。

4.2.1.1.1 扩展查询响应

扩展查询响应可以在查询响应过程中提供杂项信息。数据类型被定义用于提供本地名称和支持的服务等信息,这些信息在通常情况下需要通过建立连接来获得。如果一个设备在扩展查询响应中收到了本地名称和支持的服务列表,那么它就不需要建立连接来进行远程名称请求和SDP服务搜索,从而缩短了获取有用信息的时间。建议设备在扩展查询响应中包含所有支持的服务和本地名称的重要部分(如果名称太长无法完整发送)。

扩展查询响应数据可以以加密或未加密的形式传输。未加密的数据可以被任何设备解析。加密的数据可以被任何设备接收,但只能被之前共享了用于加密数据的会话密钥的设备解密和验证。

扩展查询响应流程与标准查询响应流程向后兼容。

4.2.1.2 寻呼(连接)流程 Paging (connecting),

类比WiFi的association request/response。

建立连接的流程是不对称的,要求一个蓝牙设备执行寻呼(连接)流程,而另一个蓝牙设备处于可连接状态(寻呼扫描)。这个流程是定向的,因此只有指定的蓝牙设备才会对寻呼流程作出响应。

可连接设备使用特殊的物理通道来监听来自寻呼(连接)设备的连接请求数据包。这个物理通道具有特定于可连接设备的属性,因此只有知道可连接设备的寻呼设备才能在此通道上进行通信。

寻呼设备和可连接设备可能都已经与其他蓝牙设备连接。任何用于寻呼或占用寻呼扫描物理通道的时间都需要与现有逻辑传输的QoS承诺需求相平衡。

4.2.1.3 连接模式,connected mode。物理连接已经建立,可以进行key交互,认证,最终pair成功。

类比WiFi,已经associated,可以进行WPA加密和认证,最终连接成功。

在BR/EDR控制器上成功执行连接流程后,将有一个piconet物理通道,两个设备都连接到这个通道上,设备之间建立了物理链路,并存在默认的ACL-C、ACL-U、APB-C和APB-U逻辑链路。其中两个链路(ACL-C和APB-C)传输LMP控制协议,并且对链路管理器层以上的层是不可见的。ACL-U链路传输L2CAP信号协议以及任何复用的L2CAP尽力而为(best-effort)通道。APB-U链路传输L2CAP通道,这些通道将广播到piconet上的所有外设。通常提到默认的ACL逻辑传输,这可以根据上下文来确定,但通常指的是默认的ACL-U逻辑链路。

在连接模式下,可以在保持与piconet物理通道连接的同时创建和释放额外的逻辑链路,并更改物理和逻辑链路的模式。设备还可以执行查询、寻呼或扫描流程,或者连接到其他piconet,而无需断开与原始piconet物理通道的连接。这些操作都是通过链路管理器完成的,链路管理器与远程蓝牙设备交换链路管理器协议消息。

在外设与piconet积极连接期间,外设和中心之间始终存在一个默认的ACL逻辑传输。删除默认ACL逻辑传输的唯一方法是使设备从piconet物理通道上断开连接,此时设备之间的L2CAP通道、逻辑链路和逻辑传输的整个层次结构都将被删除。

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

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

相关文章

【Docker实操】启动redis服务

一、步骤 1、获取redis镜像 执行获取redis镜像命令&#xff1a;docker pull redis。打印镜像清单&#xff0c;可以看到新拉到的redis镜像。 2、创建redis.conf配置文件 linux主机 mkdir -p /root/www/redis/conf touch /root/www/redis/conf/redis.conf cat << EOF &…

vue contextPath的思考

先说我这边的情况&#xff0c;目前项目都是前后端分离开发的&#xff0c;上线有种部署方式&#xff0c;常见的就是前后端分开部署&#xff0c;这是比较常见的&#xff0c;我这边因客户原因&#xff0c;打包一起进行部署比较简单&#xff0c;交付技术运维部方便后期其他现场部署…

基于Matlab卷积神经网络人脸识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 人脸识别作为计算机视觉领域的关键技术之一&#xff0c;具有广泛的应用前景&#xff0c;如安全…

“高考钉子户”唐尚珺决定再战2024年高考

“高考钉子户”唐尚珺决定在2024年再次参加高考&#xff0c;这个选择确实很特别也很有趣。十几年连续参加高考&#xff0c;他已经积累了大量的备考经验和应试技巧。这样的经验对于高考辅导机构来说无疑是非常宝贵的资源&#xff0c;他如果选择去辅导机构当老师&#xff0c;应该…

文章解读与仿真程序复现思路——电力系统保护与控制EI\CSCD\北大核心《基于改进粒子滤波的锂离子电池剩余寿命预测 》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

vue 点击复制文本到剪贴板

一、首先在vue文件的template中定义复制按钮 <div size"small" v-if"item.prop jadeCode" class"cell-container"><span>{{ scope.row.jadeCode }}</span> <button click"handleCopy(scope.row.jadeCode)" clas…

告别硬编码:Spring条件注解优雅应对多类场景

一、背景 在当今的软件开发中&#xff0c;服务接口通常需要对应多个实现类&#xff0c;以满足不同的需求和场景。举例来说&#xff0c;假设我们是一家2B公司&#xff0c;公司的产品具备对象存储服务的能力。然而&#xff0c;在不同的合作机构部署时&#xff0c;发现每家公司底…

ABB 任务 模块 程序

1&#xff0c;任务由模块组成 &#xff0c; 2&#xff0c;模块分为程序模块和系统模块 3&#xff0c;可以通过新建程序模块和删除程序模块 4.可以在程序模块中构建程序 5&#xff0c;系统模块不能够被删除 6&#xff0c;main 程序主要体现在自动运行中

【Unity AR开发插件】四、制作热更数据-AR图片识别场景

专栏 本专栏将介绍如何使用这个支持热更的AR开发插件&#xff0c;快速地开发AR应用。 链接&#xff1a; Unity开发AR系列 插件简介 通过热更技术实现动态地加载AR场景&#xff0c;简化了AR开发流程&#xff0c;让用户可更多地关注Unity场景内容的制作。 “EnvInstaller…”支…

鸿蒙开发配置官方地图

一共需要配置 p12 p7b cer csr 四个文件 p12文件配置 注意创建文件名必须是.p12 到AGC创建项目 AppGallery Connect 添加自己的项目名称 我没有开启 暂时不需要 看个人需求 下载刚创建的cer证书 回到我的项目中 点击刚创建的项目 点击这里 四个文件齐全了 "metadata&qu…

Python爬取B站视频:封装一下

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️如遇文章付费&#xff0c;可先看…

跨境电商赛道,云手机到底能不能化繁为简?

当下国内电商背景&#xff1a; 从零售额的数据来看&#xff1a;随着互联网的普及和消费者购物习惯的改变&#xff0c;国内电商市场规模持续扩大。据相关数据显示&#xff0c;网络消费亮点纷呈&#xff0c;一季度全国网上零售额达到了3.3万亿元&#xff0c;同比增长12.4%。这表…

本地centos7+docker+ollama+gpu部署

1、一台有 NVIDIA GPU 驱动的机器 2、Docker CE安装 # 删除旧版本的 Docker&#xff08;如果存在&#xff09; sudo yum remove -y docker docker-common docker-selinux docker-engine # 安装必要的软件包&#xff1a; sudo yum install -y yum-utils device-mapper-persiste…

gpt-4o继续迭代考场安排程序 一键生成考场清单

接上两篇gpt-4o考场安排-CSDN博客&#xff0c;考场分层次安排&#xff0c;最终exe版-CSDN博客 当然你也可以只看这一篇。 今天又添加了以下功能&#xff0c;程序见后。 1、自动分页&#xff0c;每个考场打印一页 2、添加了打印试场单页眉 3、添加了页脚 第X页&#xff0c;…

基于 Java 的浏览器——JxBrowser使用分享

软件介绍 JxBrowser 是一个基于 Java 的浏览器&#xff0c;它使用 Chromium 引擎来提供高性能的网页渲染和丰富的功能。它支持多种 GUI 框架&#xff0c;如 Swing、JavaFX 和 SWT&#xff0c;使得在 Java 应用程序中嵌入浏览器组件变得简单。 JxBrowser 是一个适用于多种用途…

一维前缀和[模版]

题目链接 题目: 分析: 因为要求数组中连续区间的和, 可以使用前缀和算法注意:下标是从1开始算起的, 真正下标0的位置是0第一步: 预处理出来一个前缀和数组dp dp[i] 表示: 表示[1,i] 区间所有元素的和dp[i] dp[i-1] arr[i]例如示例一中: dp数组为{1,3,7}第二步: 使用前缀数…

CSS基础(第二天)

Emmet语法 快速生成HTML结构语法 1. 生成标签 直接输入标签名 按tab键即可 比如 div 然后tab 键&#xff0c; 就可以生成 <div></div> 2. 如果想要生成多个相同标签 加上 * 就可以了 比如 div*3 就可以快速生成3个div 3. 如果有父子级关系的标签&#xff0c;可以…

Spark介绍

Spark简介 Spark,是一种通用的大数据计算框架,正如传统大数据技术Hadoop的MapReduce、Hive引擎,以及Storm流式实时计算引擎等. Spark是加州大学伯克利分校AMP实验室(Algorithms Machines and People Lab)开发的通用内存并行计算框架,用于构建大型的、低延迟的数据分析应用程序…

网站流量统计分析

网站流量统计分析&#xff1a;洞悉用户行为的关键 在当今数字化时代&#xff0c;网站流量统计分析已经成为了企业成功的关键因素之一。通过深入了解用户的行为和偏好&#xff0c;企业可以更好地调整其营销策略、优化用户体验以及提高转化率。本文将探讨网站流量统计分析的重要性…