蓝牙mesh网络协议栈
* BLE层(Bluetooth Low Energy Layer):低功耗蓝牙连接层,实现节点之间的无线通信连接,是实现Mesh网络的基础。
* 承载层: 有两种承载方式:PB-ADV与PB-GATT,默认情况下,使用广播承载来封装Mesh的网络数据包。
PB-ADV承载利用BLE的GAP广播和扫描来传送和接收网络PDU
PB-GATT承载让不支持mesh协议栈的设备通过GATT层与mesh网络的节点间接地进行通信(代理)
* 网络层:定义了各种消息的地址类型、格式,完成数据的网络寻址和转发。节点的中继、代理行为是通过网络层实现的。
(底层传输PDU被合并,并组装成网络PDU,然后再被转送到承载层进行广播;网络层同时负责消息的二次加密解密(net key),网络层PDU数据要进入底层传输层时会用net-key进行解密,同理,底层传输层PDU数据要进入网络层,需要net-key对数据进行加密。)
* 传输下层(Lower Transport Layer):需要时,主要负责网络中传送的PDU(协议数据单元,Protocol Data Unit)的分段和重组。如果传输层数据包过长,那么该层会将数据包拆分后送给网络层发送;在收到网络层分片的数据包后,该层会进行数据包的重组。
* 传输上层(Upper Transport Layer):负责对上层应用数据进行加密、解密和认证。还定义了“传输控制消息”(transport control messages),用于关联节点间互通消息,例如亲友节点(Friend Node)和低功耗节点(Low Power Node)之间的“心跳状态包(Heartbeats)”。
* 接入层: 负责定义应用如何利用上层传输层,包括:1)定义应用数据的格式;;2)定义并控制在上层传输层执行的加密和解密过程;3)在将数据上传到更高的层之前,对来自上层传输层的数据 进行验证,判断其是否适 用于该网络和应用。
*基础模型层(foundation models Layer):实现应用层模型与Mesh网络协议的适配,定义了访问层的消息、状态等属性,以及配置和管理网状网络所需的模型。
* 模型层(models Layer):处于蓝牙Mesh应用层,实现应用层数据配置、设备操作、消息收发的基本功能单位。同时它也具有控制、管理网络的功能,收发与蓝牙mesh网络操作有关的消息,例如网络心跳(heartbeat)消息。在蓝牙Mesh网络中,模型是实现各类应用功能的基础。