写在前面:马上要开始搞mesh组网了,本篇参考mesh的架构文档又加上自己的理解简单整理了一些,为后续做个准备吧。
正文:
蓝牙mesh架构整理:
即在ble协议栈基础之上,又添加了7层协议。
模型层:
涉及模型的实施,因此涉及一个或多个模型规格中定义的行为、消息、状态、状态绑定等的实现。
那么什么是模型:
模型能够定义并实施节点的功能和行为,而状态能够定义元素的条件。
例如:以灯模型来举例,灯泡模型的功能是开关和调节亮度。
什么是消息:
蓝牙mesh网络通过消息进行通信,消息可以分为控制消息和接入消息。
控制消息:与蓝牙mesh网络操作有关的消息,例如心跳(heart beat)和friend的请求消息。
接入消息:该消息允许客户端模型检索或者设置服务器模型中的状态值,或者服务器用于报告状态值。
对于每一个状态,都有一组服务器模型支持的消息,例如请求状态值或请求改变状态的客户端模型、以及发送状态或者状态改变相关的服务器模型。
消息交换:蓝牙mesh网络使用发布/订阅(publish/subscribe)模型来进行消息传输,生产的消息的节点会发布消息,需要接收消息的节点会订阅他们所需的地址。消息可被发布到单播、群组或者虚拟地址。
什么是状态绑定:
状态之间可能存在关系,一种状态的变化会触发另一种状态的变化,就被成为状态绑定。例如:还是灯泡模型,灯泡亮度状态由亮调到暗对应着灯泡开关状态由开到关。
基础模型层:
负责mesh网络的配置和管理相关的模型。
访问层:
访问层负责定义应用层如何利用上层传输层,包括:
- 、定义应用层数据的格式
- 、定义并控制上层传输层执行的加密和解密过程。
- 、对来自上层传输层的数据进行验证,判断其是否适用于该网络和应该。
上层传输层:
负责对访问层传入和传出的应用数据进行加密、解密、和认证。还负责传输“控制消息”(上面提到过就是心跳和friend消息等)。
下层传输层:
底层传输层负责处理PDU的分包和重组。
网络层:
- 、网络层定义了各种消息地址类型和网络消息格式。
- 、中继和代理行为通过网络层实施。
承载层:
承载层定义了如何使用BLE协议栈传输PDU。目前定义了两个承载层:广播承载层和GATT承载层。
广播承载层:利用BLE的GAP广播和扫描来传输和接受mesh PDU。
GATT承载层:该层允许不支持广播承载层的设备与mesh网络的节点进行通信。
BLE协议栈:
整个低功耗蓝牙协议栈。