蓝牙MESH的协议栈的架构如下图所示:
各层的定义描述如下:
(1) Model layer:标准化典型用户场景的操作,这些操作通过Bluetooth Mesh Model specification协议来定义。
(2) Foundation Model layer:定义了用于配置和管理mesh网络的状态、消息以及model。
(3) Access layer: 定义了高层应用如何访问uppertransport layer。该层定义了应用数据包的格式。同时,高层应用数据的加解密功能定义在这一层完成。
(4) Upper transport layer:对应用数据进行加解密以及鉴权。
(5) Lower transport layer: 主要对upper transportlayer的数据包进行分段和重组。
(6) Network layer: 网络层是MESH网络的关键层。这一层主要负责将传输层的数据包传输给一个或者多个其它节点。数据包是否被拒绝、或者被在本节点做进一步处理、或者数据包将会被前传给其它节点是网络层的核心功能。同时,网络层还对本层消息进行加解密和鉴权。
(7) Bearer layer:定义了网络层数据包如何在节点之间传递。当前协议版本定义了两种承载,一种是广播承载,另一种是GATT承载。
(8) Bluetooth low energy core specification:这一层是在MESH协议发布之前所定义的BLEcore specification。
从上面的协议栈架构可以看到,Bluetooth MESH协议及在Bluetooth low energy协议的基础之上,添加了七层协议栈,主要添加了加解密、数据包中继、数据包的分段与重组等功能。
参考资料:
[1] MESH Profile, revision 1.0