当前位置: 首页 > news >正文

泰安公司网站建设价格查询云图书馆平台网站建设方案

泰安公司网站建设价格查询,云图书馆平台网站建设方案,开放平台作用发挥明显,百度seo关键词点击软件经典蓝牙的连接过程包括跳频#xff0c;扫描#xff0c;配置交换等过程。对ACL链路以及sco的连接过程也做详细的分析。 1. 为什么不配对便无法建立连接#xff1f; 任何无线通信技术都存在被监听和破解的可能#xff0c;蓝牙SIG为了保证蓝牙通信的安全性#xff0c;采用…经典蓝牙的连接过程包括跳频扫描配置交换等过程。对ACL链路以及sco的连接过程也做详细的分析。 1. 为什么不配对便无法建立连接 任何无线通信技术都存在被监听和破解的可能蓝牙SIG为了保证蓝牙通信的安全性采用认证的方式进行数据交互。同时为了保证使用的方便性以配对的形式完成两个蓝牙设备之间的首次通讯认证经配对之后随后的通讯连接就不必每次都要做确认。所以认证码的产生是从配对开始的经过配对设备之间以PIN码建立约定的link key用于产生初始认证码以用于以后建立的连接。 所以不配对两个设备之间便无法建立认证关系无法进行连接及其之后的操作所以配对在一定程度上保证了蓝牙通信的安全当然这个安全保证机制是比较容易被破解的因为现在很多个人设备没有人机接口所以PIN码都是固定的而且大都设置为通用的0000或者1234之类的所以很容易被猜到并进而建立配对和连接。 2. 蓝牙的连接过程 现在的蓝牙芯片供应商提供的技术支持能力相当强大有完整的硬件和软件解决方案。对于应用而言提供了固件用于实现底层协议栈提供了profile库及源代码规范了各种应用开发人员只要专注于应用程序开发就可以了。对于蓝牙底层的一些东西往往不甚了了。以前我也是这样子的最近在做一个自动搜索以实现自动连接的应用发现还是需要了解一些底层的机制的。 我们可以很容易的进行操作在一个手机和免提设备之间建立连接那么这个连接是怎么建立起来的呢 首先主设备master,即发起连接的设备会寻呼page从设备slave,接收连接的设备master会以跳频的方式去寻呼slave,slave会固定间隔地去扫描scan外部寻呼即page scan当scan 到外部page时便会响应response该page,这样两个设备之间便会建立link的连接即ACL链路的连接。当ACL 链路连接建立后主设备会发起channel的连接请求即L2CAP的连接建立L2CAP的连接之后主设备采用SDP去查询从设备的免提服务从中得到rfcomm的通道号然后主设备会发起rfcomm的连接请求建立rfcomm的连接。然后就建立了应用的连接。 即link establish-channel establish-rfcomm establish-connection 3. 广播数据分析 3.1. 发送广播数据包的叫广播发起者advertisers在广播通道接收广播数据包但没意向连接广播发起设备的叫扫描者 scanners 需要连接到另一个设备的设备叫做 initiators它监听可连接的广播数据包。如果advertiser正在使用一个可连接的广播事件 initiator在收到连接数据包的物理通道上发起一个连接请求如果advertiser接受这个连接请求则这个广播事件结束并且开始一个新的连接事件。一旦连接建立initiator成为主设备advertiser成为从设备。连接事件被用于在主从设备之间传输数据包。 连接过程 广播者:广播包使用ADV_IND PDU标志 扫描者发送扫描请求(SCAN_REQ PDU)请求关于广播者的信息一个SCAN_REQ PDU包含了扫描者的设备地 址 在同一信道上回复一个SCAN_RSP PDU 发起者 发起者发送连接请求CONNECT_REQ PDU请求进入连接态广播者确认即可以连接上。 SCAN_REQ_PDU载荷如下图所示由ScanA(扫描设备地址)和AdvA组成(广播设备地址)ScanA是扫描设备的公共或随机地址(由TxAdd确定)AdvA是广播设备的公共或随机地址(由RxAdd确定)。 图 -  扫描请求PDU载荷 广播报文的报头中的TxAdd指示了扫描设备使用的是公共地址(Public Address)还是随机地址(Random Address)。 TxAdd 0公共地址。 TxAdd 1随机地址。   RxAdd指示了广播设备使用的是公共地址(Public Address)还是随机地址(Random Address)。 RxAdd 0公共地址。 RxAdd 1随机地址。 3.2. 扫描响应 SCAN_RSQ_PDU载荷如下图所示由AdvA(广播设备地址)和ScanRspData组成(扫描响应数据)AdvA是广播设备的公共或随机地址(由TxAdd确定)。 图 - 扫描响应PDU载荷 广播报文的报头中的TxAdd指示了广播设备使用的是公共地址(Public Address)还是随机地址(Random Address)。 TxAdd 0公共地址。 TxAdd 1随机地址。   广播报文的长度域指示了载荷的字节数(AdvA和ScanRspData)。 3.3. SCAN_REQ和SCAN_RSP解析 3.3.1. 捕获SCAN_REQ 按照《蓝牙4.0BLE抓包(一)》中的描述进行抓包下面是我们捕获一个心率计的SCAN_REQ包。 图4捕获的SCAN_REQ包 3.3.2. 分析SCAN_REQ 为了方便分析我们先取出这个SCAN_REQ包实际传输的数据如图3中所示。心率计完整的广播报文如下 D6 BE 89 8E 83 0C 7F 0F 72 DD DF 68 DA B5 E9 D2 CC F3 BD BF 27 在分析数据之前再次说明广播包含扫描请求和扫描响应所以扫描请求和扫描响应得包格式遵循广播包的格式。 分析报文时需要注意一下报文各个域的字节序。 3.3.2.1. 接入地址 D6 BE 89 8E接入地址对广播来说是固定值。注意一下这里的字节序接入地址传输时是低字节在前的。 3.3.2.2. PDU 1). 83广播报文报头。 bit0~bit3是0011说明广播类型是SCAN_REQ即扫描请求。 bit7(RxAdd)是1说明广播设备使用的是随机地址。 bit6(TxAdd)是0说明扫描设备使用的是公共地址。     2). 0C长度表示SCAN_REQ报文的长度是12个字节。 3). 7F 0F 72 DD DF 68扫描设备的公共地址(报头里的TxAdd指示了这个地址是公共地址)。这里使用的实验设备是[艾克姆科技]的EN-nRF51DK开发板和小米3手机扫描设备是小米3手机在图3中可以看到该公共地址对应的是Xiao_mico_72。 4). DA B5 E9 D2 CC F3广播设备的地址(报头里的RxAdd指示了这个地址是随机地址)。 3.3.2.3. 校验  BD BF 2724字节CRC校验。 3.3.3. 捕获SCAN_RSP 按照《蓝牙4.0BLE抓包(一)》中的描述进行抓包捕获一个心率计的SCAN_REQ包。 图 - 捕获的SCAN_RSP包 3.3.4. 分析SCAN_RSP 同样在这里我们先取出SCAN_REQ包的数据便于分析。 D6 BE 89 8E 44 06 DA B5 E9 D2 CC F3 61 6A 0F 3.3.4.1 接入地址 D6 BE 89 8E接入地址对广播来说是固定值。注意一下这里的字节序接入地址传输时是低字节在前的。 3.3.4.2 PDU 1). 44广播报文报头。 bit0~bit3是0100说明广播类型是SCAN_RSP即扫描响应。 bit6(TxAdd)是1说明广播设备使用的是随机地址。     2). 06长度表示SCAN_ RSP报文的长度是6个字节。 3). DA B5 E9 D2 CC F3广播设备的地址(报头里的RxAdd指示了这个地址是随机地址)。 3.3.4.3 校验  61 6A 0F24字节CRC校验。 3.4.连接请求CONNECT_REQ 在低功耗蓝牙技术建立连接的过程中设备都是成对出现的master和slave设备。如果master希望与slave建立连接master就需要发起连接请求ConnectionRequestCONNECT_REQ因此master可以称之为连接发起者同时slave必须是可连接的并且具有解析连接请求CONNECT_REQ的能力slave可以称之为广播者。图1是连接请求CONNECT_REQ的帧结构。 图1 CONNECT_REQ帧结构 其中InitA是连接发起者的蓝牙设备地址长度为6字节AdvA是广播者的蓝牙设备地址长度为6字节。除了InitA和AdvA之外帧格式中最为重要的部分则是LLData这一部分包含了在连接建立过程中所需要使用的有意义的参数。 为了更好的理解连接请求CONNECT_REQ我们可以在日常生活中找到类似的一个例子帮助我们理解它的含义。读者们很多应该都有过工作经验在开始新的工作之前都需要和雇主签署一份劳动合同而CONNECT_REQ就是一份由“雇主”master提供的“劳动合同”只需经过“雇员”slave确认这份“合同”就开始生效低功耗蓝牙技术的连接也就建立了。接下来我们就对“合同”中的各项条款逐条进行分析如图2所示。 图2 LLData示意图 1接入地址AAAccess Address 这份合同的第一条款就是为雇员分配一个公司内部的唯一识别码类似于工号雇员可以在公司内部使用这一工号当雇员离开公司之后唯一识别码自动失效即使是这一雇员再次加入到这家公司他/她的新工号也与旧的工号不同。类似的在两个低功耗蓝牙技术设备建立连接之前master设备负责生成接入地址这一地址类似于一个4字节的随机数当连接建立之后master和slave都使用这一接入地址进行通信当连接断开之后接入地址自动失效。 2CRCInitCRC初始值 这份“合同”的第二条款是CRCInit它就是雇员在公司内部的一个密钥通过这个密钥雇员可以访问公司内部的资源。对于低功耗蓝牙技术设备master和slave使用CRCIinit来验证数据包的完整性。 3WinSize和WinOffset 合同的第三条款中规范了雇员首次来公司报到的时间以及今后每次工作的时长。WinSize和WinOffset在低功耗蓝牙技术连接中也做了类似的定义。WinOffset定义了在CONNECT_REQ命令之后的一个通信窗口的偏移量如图3所示。在slave设备收到CONNECT_REQ之后slave设备需要占用一些时间、根据LLData参数进行一些相关的配置因此WinOffeset为slave设备进行此种操作提供了时间transmitWindowOffset WinOffset×1.25 ms。WinSize定义了设备每次开启收发机的窗口时间无论是master还是slave它们都遵循WinSize的定义窗口时间transmitWindowSizeWinSize×1.25 ms。 因此在CONNECT_REQ之后第一个由master发送到slave的数据帧我们称之为“锚点”如图3所示因为之后的所有的连接事件都以这一时刻为基准呈现周期性变化。从红色框图中我们可以看到第一个数据帧的时刻不能早于1.25mstransmitWindowOffset同时也不能晚于1.25 ms transmitWindowOffset transmitWindowSize。 图3 发起连接时序图 4Interval Latency Timeout 一般情况下人们的工作时间是朝九晚五一周工作五天。但是在低功耗蓝牙技术的连接机制当中我们采用了更加灵活的“弹性工作制”。对于低功耗蓝牙技术连接的弹性工作制这里有三个参数需要了解IntervalLantency和Timeout。 图4 连接事件时序图 在连接建立之后master和slave之间的数据交互我们可以称之为连接事件连接事件的发生周期connInterval则是由Interval参数来进行设定connInterval Interval×1.25 ms connInterval的取值范围则是在7.5 ms至4 s秒之间。因此在确定了锚点之后master和slave将按照connInterval确定的时间间隔进行数据的交互如图4所示。 但是对于低功耗蓝牙技术低功耗的特性是需要特别考虑的而且在实际的应用当中不需要在每次connInterval都产生连接事件因此引入了参数Lantancy可以有效的减少连接事件的产生connSlaveLatency Latency。connSlaveLatency 定义了slave设备可以忽略多少个连续的连接事件其不需要在这些被忽略的连接事件中侦听来自master的数据包这也意味着slave设备不需要在每个连接事件产生的时刻都唤醒并打开射频接收机进行侦听所以可以有效减少slave设备的功耗。这也是低功耗蓝牙技术能够实现其低功耗特性的一个重要的原因。 Timeout参数定义了连接超时的长度connSupervisionTimeout Timeout×10 ms其取值范围在100 ms至32 s之间。不论是master还是slave在其收到一个数据帧之后如果等待了connSupervisionTimeout时长都没有下一个数据帧到来则可以认为连接已经断开。在这里要强调的是connSupervisionTimeout必须大于1 connSlaveLatency × connInterval × 2否则slave设备即使是在Lantency状态也会被误认为是连接超时导致连接误断开。 5ChM Hop 我们都知道蓝牙使用的是跳频技术当连接建立之后master和slave设备就需要利用某种机制来在预先设定的信道图谱上、按照预先设定的跳频跨度进行跳频工作信道图谱就来自ChM参数每跳的跨度则来自于Hop参数。Hop是一个整数取值范围在5至16之间。下面的公式提供了跳频的工作方式 四、物理链路 同步链路(SCO) 主要用来传输对实时性要求很高的数据比如蓝牙通话 我们可以将sco比喻为tcp/ip的udp传输模式他的数据传输具有实时性 sco可在不被选中的情况下发送sco数据包 当数据发生错误时不提供错误重传机制 异步链路(ACL) 主要用于传输对实时性要求不是很高的场景比如听歌所以a2dp就是使用的是acl的传输方 可以将acl比喻为tcp/ip的tcp传输主要运用于对数据的实时性要求不是很高的场景 当数据发生错乱时候会发生重传机制 注意只有在ACL链接已经建立之后才可以建立SCO 链接 五、ACL连接过程概述 ACL链接流程图 ACL链接步骤(深色的为必须浅色的为可选) 三、异步连接(ACL)连接过程步骤详解 1、 设备A通过HCI对Link Management发出HCI_Create_Connection命令然后链接管理器LM会通过HCI返回当前的链接状态然后LM开启呼叫设备B的操作。 2、 3、 A设备的LM发出LMP_Host_Connection_req到B设备的LM然后LM通过HCI把这个来自A设备的连接请求发给B设备的Host层。 4、 在上面第三步操作以后B设备会接收到来自A设备的连接请求然后B设备会根据自身情况来作出对应的操作一般有以下的三种操作拒绝连接、接受连接和接受连接但是B设备修改为Master。 拒绝连接 接受连接 接受连接但是B设备修改为Master 5、 AFH(Adaptive Frequency Hopping)。AFH 的实现过程为设备识别、信道分类、分类信息交换、自适应跳频。 LMP(Link Manager Protocol)链路管理协议。 这一步主要是根据设备自身情况来设置跳频自适应和信道分类等功能如果设备不支持或者不定义这些功能那么这一步可以跳过。 6、 这一步主要是设置鉴权功能LM将向Host请求Link key。如果设备不支持或不定义这个鉴权功能那么可以通过这一步。 7、 在第三步发出连接请求以后如果master设备和要连接的slave设备没有相同的link key那么就需要配对就是master和slave设备双方输入PIN码然后把这个PIN码作为这次连接过程的link key并储存好这个link key以作下次连接时使用蓝牙的鉴权是基于link key的。 如果master和slave设备具有共同的link key那么他们就不需要进行配对而是直接进行link key鉴权。 8、 如果上面的配对过程或鉴权成功了就开始到数据加密过程 。下面这个图片只是显示了加密的点对点连接的设置流程。 9、 当上面那些设置流程走完以后就要通知对方连接配置完成了master设备的LM会发送LMP_setup_complete PDU给slave设备的LMslave的LM产生应答然后双方的LM再通过HCI分别通知双方的Host。 10、 如果断开连接Host会通过HCI主动告诉LM然后LM再通过LMP PDU来通知slave设备的LM最后通知slave设备的Host。这个断连是单方面发起的不需要slave设备的LM的应答但是需要利用基带传输的ARQ机制(自动重传机制)来确认slave设备的LM是否收到了LMP_detach命令。 四、同步连接(SCO/eSCO)连接过程步骤详解 1、 master设备请求EV3、EV4、EV5同步连接 slave设备请求同步EV3、EV4、EV5同步连接 master设备请求同步连接通过使用sco master设备请求与老式设备进行sco同步连接 任何仅支持sco同步连接的设备请求与某个设备进行同步连接 2、 对于SCO而言是不会进行重传的。所以对于只支持sco的耳机来说我们可能会发现在较远距离的通话过程中就会产生杂音这是无法避免的这也是esco存在的原因esco是支持重传的。 下面是master设备重新协商esco连接即如果已存在的同步连接如果不是esco修改当前已存在的同步连接为esco slave设备重新协商esco连接 esco断连 sco断连
http://www.w-s-a.com/news/687934/

相关文章:

  • wordpress文章延迟加载优化设计答案四年级上册语文
  • 做网站源码要给客户嘛怎么在运行打开wordpress
  • 北海住房和城乡建设局网站wordpress标题去掉私密
  • 织梦网站安装视频做网站都有那些步骤
  • 网站空间大小选择沈阳微信网站制作
  • 网站分享对联广告网站结构的类型
  • 三维家是在网站上做还是在app上北京网站建设 专业10年
  • 模拟网站建设网站建设认准猪八戒网
  • godaddy网站建设教程微信手机网站搭建
  • 网站建设 商城淄博网站制作哪家好
  • 廊坊手机网站团队国际贸易进口代理公司
  • 运用django做网站网站建设问题及解决办法
  • 商丘企业网站服务c mvc 网站开发
  • 太仓建设工程网站广州seo排名外包
  • 成都的教育品牌网站建设做网站不给提供ftp
  • 建站行业市场人力管理系统
  • qq钓鱼网站在线生成器google关键词搜索工具
  • 化妆网站模板移动网站建设模板
  • 欢迎访问语文建设杂志网站网站蓝色配色
  • 最新网站发布重庆城乡建设部网站首页
  • 网站建设费用高鄂尔多斯seo
  • dw做网站怎么发布网站无后台可以上框架
  • 网络公司如何建网站网站的建设需要多少钱
  • 代刷网站推广快速泉州网页定制
  • 网站优秀网站地址做宣传册的公司
  • 苏州高端网站建设咨询wordpress云图插件
  • 河北省建设厅网站重新安装优秀中文网页设计
  • 如何在腾讯云做网站开源站群cms
  • 公司网站建设的意义网易做网站
  • 网络营销案例分析与实践搜外seo