【第二章】《Mesh Profile_v1.0》规范文档详解

第二章:Mesh系统架构详解

蓝牙Mesh网络的设计核心是一个分层架构,这类似于我们熟悉的网络通信模型(如TCP/IP)。每一层都有明确的职责,下层为上层提供服务,共同协作完成从用户指令到无线信号传输的整个过程。

为了让您更好地理解,我们可以将Mesh网络想象成一个高效的邮局系统:

您(用户) 是寄信人,想发送一个指令(如"打开客厅的灯")。

Mesh网络就是遍布城市的邮局和邮递员网络。

分层架构规定了这封信从书写、装袋、分拣、运输到最终投递的每一道工序。

下面,我们结合这个比喻,逐层解析Mesh架构。

2.1 分层架构:从应用到底层的七层分工

蓝牙Mesh规范定义了七层结构,如图2.1所示。我们从最贴近用户的"应用层"开始,自上而下地理解:

  1. 模型层 & 基础模型层:定义"能做什么"

通俗理解:这相当于产品说明书和公司管理章程。

模型层:定义了设备的具体功能。例如,"灯泡模型"说明书里写明:这个设备能接收"开"、"关"、"调亮度"这几条指令。另一个设备如果是"温度传感器",它的说明书里就是"报告当前温度"指令。

基础模型层:定义了管理整个Mesh网络所需的"管理章程",比如如何给新设备分配地址、如何设置网络密钥等。这主要由配置服务器模型和配置客户端模型来实现。

举例:您买了一个智能灯泡,它内部就实现了"灯泡模型"。当您用手机App(配置客户端)给它配网时,用的就是"基础模型层"定义的管理流程。

  1. 访问层:校验"信件"的合法性

通俗理解:邮局安检和分拣员。他检查信件是否属于本邮局系统(网络),以及是寄往哪个部门的(应用)。

具体职责:负责定义应用数据的格式,并验证收到的数据是否使用了正确的网络密钥和应用密钥。它确保"打开灯"的指令不会被一个"门锁"设备错误地执行。

关键概念:应用密钥。不同的应用(如照明、安防)可以使用不同的应用密钥,实现安全隔离。照明指令无法解锁安防门锁。

  1. 上层传输层:为"信件"内容加密

通俗理解:信件内容加密员。他用只有收信人知道的密码(应用密钥)给信纸内容加密,确保传输途中无人能窥探或篡改内容。

具体职责:对访问层下来的"应用数据"进行加密、解密和认证,保证消息的机密性和完整性。

  1. 下层传输层:处理"大包裹"

通俗理解:包裹打包/拆包员。如果信件内容太长(超过11字节),一个"信封"装不下,他就负责把一封信分割成多个小包裹发送;接收方则负责把多个小包裹重新组装成完整的信。

具体职责:管理消息的分段与重组,以传输较大的上层传输层消息。

  1. 网络层:决定"往哪送"和"是否中转"

通俗理解:邮局路由分拣中心。他查看信封上的目的地地址,决定这封信是留在本地投递,还是需要转发到下一个邮局(中继)。同时,他为整个信封套上一个大的"邮袋",并用邮局系统的通用密码(网络密钥)给这个邮袋加密。

具体职责:

寻址:使用16位的地址(单播、组播、虚拟地址)来标识一个或多个设备。

中继决策:根据TTL值等,决定是否转发消息。

网络加密:使用网络密钥对整个网络PDU进行加密和认证。

关键概念:

TTL:生存时间。每经过一个中继节点,TTL值减1,减到0就不再转发,防止消息在网络中无限循环。

消息缓存:每个节点会缓存最近收到的消息,如果收到重复消息就直接丢弃,避免"广播风暴"。

  1. 承载层:选择"运输工具"

通俗理解:选择用卡车还是轮船运输。这是最底层,负责把数据包变成无线电波发出去。

具体职责:定义了网络消息如何在节点间传输。主要有两种"交通工具":

广播承载器:利用BLE的广播信道发送数据。这是Mesh设备间主要的通信方式,无需建立连接,适合一对多、低延迟的通信。

GATT承载器:通过蓝牙连接(GATT)来传输Mesh数据。这主要为了让不支持Mesh协议的传统手机或设备(如只支持BLE 4.0的手机)能够通过一个代理节点接入Mesh网络。

  1. Bluetooth Low Energy Core Specification(蓝牙低功耗核心规范)

通俗理解:公路、铁路等基础设施标准。Mesh协议建立在标准的BLE物理层和链路层之上,它使用了BLE的广播信道(37, 38, 39)进行通信。

2.2 Mesh操作概述:网络如何运转

Mesh网络的设计目标包括:支持消息中继以扩大范围、确保安全、兼容现有设备、支持低功耗设备等。其核心是一种受管理的泛洪网络。

泛洪通信:消息像水波一样扩散出去。源设备广播消息,所有在无线范围内且开启了中继功能的设备都会接收并重新广播它,直到达到TTL限制。

优点:无需复杂的路由发现和维护,路径天然冗余,可靠性高。

挑战:可能引起网络拥塞。

解决方案:通过 TTL 和 消息缓存 两大机制来管理泛洪,抑制不必要的重复广播。

2.3 核心概念详解(结合实例)

  1. 设备 vs. 节点

未配置设备:一个全新的、未加入任何Mesh网络的智能灯泡。它只能广播"我在这里,求加入"。

节点:被配网器(如手机App)成功配置并加入Mesh网络后的设备。它拥有了网络地址和密钥,可以收发Mesh消息。

  1. 元素

通俗理解:一个物理设备内部的逻辑功能单元。一个设备至少有一个主元素,还可以有多个次元素。

举例:一个双键智能开关可能包含两个元素:元素1对应左键,元素2对应右键。每个元素都有自己唯一的单播地址。这样,网络就可以单独控制左键或右键。

  1. 地址

单播地址:唯一标识一个元素。就像每个人的唯一身份证号。网络中共有32767个可用单播地址。

组播地址:标识一组元素。就像一个部门的群组邮箱。发送到组播地址的消息,所有订阅了该地址的元素都会收到。例如,可以将"客厅所有灯"订阅到组播地址"客厅灯组",一条指令就能控制所有灯。

虚拟地址:一种更灵活的组播地址,基于一个128位的UUID标签生成。它像是一个"话题标签",任何元素都可以订阅这个标签。

  1. 发布与订阅

这是Mesh网络的核心通信模式,非常灵活。

发布:一个节点(如开关)向某个地址(单播/组播/虚拟)发送消息。

订阅:一个或多个节点(如灯泡)监听(订阅)一个或多个地址。

举例:开关A发布"开"指令到组播地址"厨房"。灯泡1、2、3都订阅了"厨房"地址,因此同时亮起。而开关B发布指令到"餐厅",只有订阅了"餐厅"的灯泡3会响应。这样,灯泡3可以被两个不同的开关控制。

  1. 特性与节点角色
    节点可以根据其支持的特性扮演不同角色,增强网络能力:

中继节点:接收并转发消息,扩大网络覆盖范围。是网络扩展的关键。

代理节点:在GATT承载和广播承载之间转换消息,让传统手机能接入Mesh网络。

低功耗节点:通常是电池供电的设备(如传感器)。它不能一直监听网络,为了省电。

朋友节点:与LPN结对,为LPN缓存消息。LPN可以长时间睡眠,偶尔醒来向它的Friend节点"取快递"(轮询消息),从而极大节省能耗。

总结:蓝牙Mesh通过清晰的分层架构和发布-订阅模型,构建了一个去中心化、可自组网、高可靠、且支持低功耗设备的无线网络。理解"元素"、"地址"、"发布/订阅"以及"中继/Friend"这些核心概念,是掌握Mesh如何工作的关键。

相关推荐
榕树子12 小时前
【第一章】《Mesh Profile_v1.0》规范文档详解
mesh
Darkershadow9 天前
蓝牙学习之Provision(7)bind (1)
学习·蓝牙·ble·mesh
Darkershadow9 天前
蓝牙学习之Provision(6)Provison Complete
学习·蓝牙·ble·mesh
Darkershadow13 天前
蓝牙学习之Provision(2)
学习·蓝牙·ble·mesh
大势智慧19 天前
高斯泼溅(3DGS)模型与Mesh模型各有什么优缺点?有没有一种建模技术可以兼容二者的优势?
mesh·优势·3dgs·创新·实际应用·高斯泼溅·场景应用
zzc9215 个月前
Wi-Fi 802.11s自组网/EasyMesh自组网/802.11ah物联网
wi-fi·mesh·ap·自组网·802.11s·网状网络·多跳无线通信网络
zzc9215 个月前
传统星型拓扑结构的5G,WiFi无线通信网络与替代拓扑结构自组网
5g·wifi·mesh·拓扑结构·ap·ad hoc·星型网络
achonor8 个月前
UnityShader 植物被风吹弯效果
unity·shader·mesh
wifi chicken9 个月前
802.11s Mesh 组网框架流程
mesh·组网·802.11s