蓝牙(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.mzph.cn/web/14167.shtml

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

相关文章

Github 2024-05-24 Java开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-24统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目10Java设计模式:提高开发效率的正规化实践 创建周期:3572 天开发语言:Java协议类型:OtherStar数量:86766 个Fork数量:25959 次关…

探数API统计分享-1949年-2021年中国历年夏粮产量统计报告

​​​​​​​​中国历年夏粮产量​,为1949年到2021年我国每年的夏粮产量数据。2021年,我国夏粮产量为14596万吨,比上年增长2.2%。 数据统计单位为:万吨 。 我国夏粮产量有多少? 2021年,我国夏粮产量为1…

在Juniper SRX系列防火墙上配置DNS

SRX# set system name-server 17.20.0.11 SRX# show system name-server

vue中v-for的key值怎么使用?如何选择?

在 Vue 中,v-for 指令用于渲染列表数据。当使用 v-for 时,强烈建议为每一项提供一个唯一的 key 属性。这个 key 不仅是 Vue 区分节点的标识,也是 Vue 实现列表高效更新的一种机制。 如何使用 key 在 v-for 中,key 应该绑定到列表…

202206青少年软件编程(Python)等级考试试卷(三级)

第 1 题 【单选题】 下图所示, 有一个名为"书目.csv"的文件。 小明针对这个文件编写了 5 行代码,请问, 代码运行到最后打印在屏幕上的结果是? ( ) with open(书目.csv, r, encoding=utf-8) as f:for line in f.readlines

适配arm架构国产服务器(银河麒麟、中科方德)依赖下载

在计算机硬件领域,两种主流的CPU架构分别是X86和ARM。X86架构,也称为CISC(复杂指令集计算机),主要服务于PC和服务器行业。而ARM架构,代表RISC(精简指令集计算机),则在移动…

利用Axure模板快速设计,可视化大屏信息大屏,含近200例资源和各类部件

模板类别: **通用模板:**提供基础的布局和设计元素,适用于各种场景。 **行业特定模板:**如农业、医院、销售、能源、物流、政府机关等,针对不同行业提供专业模板。 **数据展示模板:**包括大数据驾驶舱、统…

1.1 什么是internet?

什么是Internet:从具体构成角度 节点 主机及其上运行的应用程序路由器、交换机等网络交换设备  边:通信链路接入网链路:主机连接到互联网的链路主干链路:路由器间的链路  协议  数以亿计的、互联的计算设备:  主机 端系…

webgl开发家居设计软件

WebGL是一种在网页浏览器中渲染3D图形的JavaScript API,它基于OpenGL ES标准,允许开发者创建和显示交互式的3D图形。开发基于WebGL的家居设计软件可以为用户提供一种全新的、沉浸式的家居设计体验。以下是开发此类软件的一些关键步骤和特点。北京木奇移动…

2024 Google I/O 宣布正式支持 Kotlin Multiplatform ,那 KMP 是什么?它的未来在哪里?

基于最近一直有人和我提 KMP ,那就简单聊聊。 2024 Google I/O 正式官宣了支持 KMP ,而一般意义上的 KMP 指的就是 Kotlin Multiplatform ,它是 Google Workspace 团队的一项长期「投资」项目,这里有个重点,那就是 Ko…

Nginx配置文件

当然,让我们一步步来了解Nginx配置文件,即使你是完全的初学者也能轻松跟上。想象一下Nginx是一个超级聪明的接待员,它知道如何处理各种各样的访客请求,而这些规则,我们就写在一个叫做nginx.conf的文件里。 1. 找到配置…

AJAX(JavaScript版本)

目录 一.AJAX简介 二.XMLHttpRequests对象 2.1XMLHttpRequests对象简介 2.2创建XMLHttpRequests对象 2.3定义回调函数 2.4发送请求 2.5XMLHttpRequests对象方法介绍 2.6XMLHttpRequests对象属性 三.向服务器发送请求 3.1发送请求 3.2使用GET还是POST 3.3使用GET来发…

前端nvm、nodejs、npm、cnpm、yarn安装教程(超详细图文,含卸载旧的nodejs,安装及环境变量配置)

最近换了新电脑,一开始在网上找了一个教程让下载nvm-noinstall.zip 压缩包解压使用,踩坑了,过程复杂最后报错无法用。 后来搜到下文教程,直接使用nvm。exe进行安装,方便快捷。下面这个文章写的很详细,从如何…

谷歌快速收录怎么做?

快速收录顾名思义,就是让新的的网页内容能够迅速被谷歌搜索引擎抓取、索引和显示在搜索结果中,这对于做seo来说非常重要,因为它有助于新发布的内容尽快出现在谷歌的搜索结果中,从而增加网站的流量 想做谷歌快速收录谷歌推荐了几种…

12. Web开发:介绍Web开发的基本概念,Servlet和JSP的使用,MVC设计模式的应用等。

Web开发的轻松入门之旅 想象一下,Web开发就像是搭建一个在线的小家,你既是设计师,又是建筑师,还是管家。我们一步步来探索这个过程,保证简单易懂,就像搭积木一样有趣! Web开发基础认知 Web开…

mybatis-plus 开发中常用的

1、查询 // 假设有一个 QueryWrapper 对象&#xff0c;设置查询条件为 age > 25 QueryWrapper<User> queryWrapper new QueryWrapper<>(); queryWrapper.gt("age", 25); List<User> users userService.list(queryWrapper); // 调用 list 方法…

【MySQL02】【 InnoDB 记录存储结构】

文章目录 一、前言二、InnoDB 行格式1. COMPACT 行格式1.1 记录的额外信息1.2 记录的真实数据1.3 综上 2. REDUNDANT 行格式2.1 字段长度偏移列表2.2 记录头信息 3. DYNAMIC 行格式和 COMPPESED 行格式 三、InnoDB 数据页结构1. File Header (文件头部)2. Page Header (页面头部…

(一)Go语言使用:常用API

Math import("math" ) // 比较大小 a,b float64 其他的最大最小得自己实现 Math.max(a,b) Math.min(a,b) // 最大数 最小数 math.MaxInt64 math.MinInt64 ​ math.Sqrt(5) // 开方 返回float64 math.Pow(a,b) // 求幂 参数都是float64sort & 排序 // 排序 sort…

探索Linux中的神奇工具:深入了解wc命令

探索Linux中的神奇工具&#xff1a;深入了解wc命令 在Linux系统中&#xff0c;wc命令是一个简单但功能强大的工具&#xff0c;用于统计文件中的字数、行数和字符数。本文将详细介绍wc命令的基本用法和一些常见选项&#xff0c;帮助读者更好地理解和运用这个命令。 了解wc命令…

移动硬盘不小心制作成启动盘怎么办?别慌,这样解决更轻松

在数字化时代&#xff0c;移动硬盘作为我们存储和携带重要数据的重要设备&#xff0c;其安全性与便利性不言而喻。然而&#xff0c;在日常使用中&#xff0c;我们可能会遇到一些意想不到的情况&#xff0c;比如一不小心将移动硬盘制作成了启动盘。面对这种情况&#xff0c;许多…