蓝牙mesh协议架构


写在前面:马上要开始搞mesh组网了,本篇参考mesh的架构文档又加上自己的理解简单整理了一些,为后续做个准备吧。

 

正文:

蓝牙mesh架构整理:

 

 

 

即在ble协议栈基础之上,又添加了7层协议。

模型层:

涉及模型的实施,因此涉及一个或多个模型规格中定义的行为、消息、状态、状态绑定等的实现。

那么什么是模型:

模型能够定义并实施节点的功能和行为,而状态能够定义元素的条件

例如:以灯模型来举例,灯泡模型的功能是开关和调节亮度。

什么是消息:

蓝牙mesh网络通过消息进行通信,消息可以分为控制消息和接入消息。

控制消息:与蓝牙mesh网络操作有关的消息,例如心跳(heart beat)和friend的请求消息。

接入消息:该消息允许客户端模型检索或者设置服务器模型中的状态值,或者服务器用于报告状态值。

对于每一个状态,都有一组服务器模型支持的消息,例如请求状态值或请求改变状态的客户端模型、以及发送状态或者状态改变相关的服务器模型。

消息交换:蓝牙mesh网络使用发布/订阅(publish/subscribe)模型来进行消息传输,生产的消息的节点会发布消息,需要接收消息的节点会订阅他们所需的地址。消息可被发布到单播、群组或者虚拟地址。

什么是状态绑定:

状态之间可能存在关系,一种状态的变化会触发另一种状态的变化,就被成为状态绑定。例如:还是灯泡模型,灯泡亮度状态由亮调到暗对应着灯泡开关状态由开到关。

基础模型层:

负责mesh网络的配置和管理相关的模型。

访问层:

访问层负责定义应用层如何利用上层传输层,包括:

  1. 、定义应用层数据的格式
  2. 、定义并控制上层传输层执行的加密和解密过程。
  3. 、对来自上层传输层的数据进行验证,判断其是否适用于该网络和应该。

上层传输层:

负责对访问层传入和传出的应用数据进行加密、解密、和认证。还负责传输“控制消息”(上面提到过就是心跳和friend消息等)。

下层传输层:

底层传输层负责处理PDU的分包和重组。

网络层:

  1. 、网络层定义了各种消息地址类型和网络消息格式。
  2. 、中继和代理行为通过网络层实施。

承载层:

承载层定义了如何使用BLE协议栈传输PDU。目前定义了两个承载层:广播承载层和GATT承载层。

广播承载层:利用BLE的GAP广播和扫描来传输和接受mesh PDU。

GATT承载层:该层允许不支持广播承载层的设备与mesh网络的节点进行通信。

 

BLE协议栈:

整个低功耗蓝牙协议栈。