如何更改底层连接问题怎么办API达到一个TAG连接多个基站?

任大神的这篇文章之前我也转帖過因为配网这个过程在蓝牙mesh里面是头一遭,很多人都想搞清楚到底配网是怎么样的和之前的BLE有没有区别。终于有一点时间把这篇文章嘚主要部分翻译了一下也加了一些大威自己的理解。想啃E文的请移步到 

 
配网是把一个新的没有配网过的设备加到一个蓝牙mesh的网络中,仳如灯泡 配网是由配网器来管理的。在规格书里面配网器和未配网设备要遵循一套固定的流程。配网器提供配网数据来使得未配网设備成为一个Mesh节点
常常有人问配网器是什么?因为在以前的蓝牙设备里面没有这样的设备其实配网器可以是一个手机,或者是其他运行配网程序的移动设备尽管一个网络只需要一个配网器,但是多个配网器在一个mesh网络中也是可以的
 
规范定义了配网协议。比如定义了在配网器和未配网设备之间通讯的PDU 图1 诠释了在全蓝牙Mesh协议栈中的配网协议栈。


从协议的底层连接问题怎么办到上层有这样的几个部分:

配網承载负责配网器和未配网设备中间传输配网PDU的功能分为两类:
  • PB-ADV: 通过蓝牙的广播信道来配网。PB-ADV承载用于通用配网PDUs一个支持PB-ADV的设备需要實现接近100%占空比的被动Scanning来避免错过任何发过来的通用配网PDU。
  • PB-GATT: 另外一个配网承载用于通过代理协议的代理PDU来配网 代理协议使节点可以发送囷接收网络PDU,Mesh信标代理配置信息,和通过连接BLE承载的配网PDUPB-GATT 封装通过使用GATT的方式来配网。主要适用于不支持PB-ADV的配网器
 

定义了配网所需嘚PDU,行为和安全等理解配网协议能帮助大家选择一个适用于应用需求的认证。
 
配网协议定义了10个类型的配网PDU:










具体大家请参看规格书section 5.4.1 从夶块来讲配网过程要完成这两件事情。
1. 未配网设备的认证在蓝牙mesh的网络中,可能在很想的空间存在于很多的设备认证是要保证进行配网设备的设备是用户想要入网的。
2. 和未配网设备建立一个安全链接同时分享相关的信息。在流程的最后阶段要使得未配网设备成为mesh網络的一个节点。







信标是一个传统的BLE的应用场景蓝牙mesh提供了同样的广播机制。
如果一个未配网的设备支持PB-ADV bearer 它就会广播 未配网设备信标。这是一个特别的报文使得配网器能够发现这个设备。


信标阶段结束以后配网器和未配网设备通过PB-ADV或者PB-GATT进行了初步的接触,接下来配網器会发送一个配网邀请PDU未配网设备就会相应的发一个响应包。
配网邀请PDU包含一个Attention Duration信息 它是一个时间信息,主要用于告诉配网设备你嘚主要元素要吸引用户注意力多久大威注: 是不是看不懂,怎么吸引注意力简单说, 就是要配网的设备你总是要告诉用户你开始配網了。比如闪闪灯响几声。这个时间是以秒记的
 
大威注:这里的内容比较多。先把PDU贴在这里再贴一个关于用户输入值的能力的表格,看看现在支持怎么样的用户输入看到了吧,大概就这些什么push啊,扭啊数字输入,字母输入等这些和设备的种类其实有比较大的關系。
 





图2 BLE的配对过程
通过图2 我们回忆了BLE的配对过程这一流程和mesh的配网邀请过程是非常相似的。

有两种加密信息的技术:对称加密(密钥加密)对称加密(公钥加密)
Symmetric encryption 对称加密 使用同样的密钥来加密和解密。因为发送端和接收端都知道密钥他们可以加密和解密所有的报攵。但是这种方法使得交换密钥会非常困难,很难保证这个密钥不落入他手
encryption 非对称加密,使用两个相关密钥一对密钥--公钥和私钥,來解决刚才对称加密遇到的问题公钥可以给任何需要发信息给你的设备,而私钥是保密的只有你自己知道。任何使用公钥来加密的信息(文字二进制文件或者对称密钥)只能使用相同的算法和对应的私钥才能解密。这意味着你不用担心传输公钥因为他只能加密而不能解密。但是非对话加密会要求更多的处理能力和时间来完成加密和解密
大威注: 这是一些基本的加解密的概念。如果还不清楚可以參考一些文章,比如:
 
在蓝牙Mesh的使用场合大部分的设备是基于嵌入式芯片或者模块的,所以如果每次通信都用非对称加密的话代价太大所以蓝牙选择的是两种方式的结合。
Asymmetric cryptography不对称密码:椭圆曲线Diffie–Hellman
(ECDH)是一种匿名密钥协议协议允许双方各有一个椭圆曲线公私密钥对,在不安铨的通道上建立一个共享的秘密在蓝牙网格配置中,ECDH的目的是允许创建配网者和未配网设备之间的安全链接它使用公钥和私钥分发一個对称密钥,这两个设备可以用来加密和解密后续消息
  • Symmetric cryptography:对称密码:在蓝牙Mesh网络中传输的每条消息都使用AES - 128加密技术进行加密。AES - 128算法是一种通鼡的对称加密/解密引擎常用于嵌入式平台。
 
在交换公钥阶段有两种方法可以交换ECDH公共密钥。它们可以通过蓝牙连接或通过OOB隧道进行交換在配网邀请阶段,未配网设备已经报告是否支持通过OOB隧道发送其公钥如果支持,配网者人可以继续使用它并通过发送一个配网启動PDU通知未配网设备。
如果没有未配网设备支持通过OOB隧道的公钥交换那么一个临时的公钥就从配网者传输到设备,未配网设备可以使用适當的OOB技术来读取一个静态公共密钥 (比如二维码)见图。如果不支持OOB隧道那就通过一个BLE的连接通道交换,见图4






我要回帖

更多关于 底层连接问题怎么办 的文章

 

随机推荐