【第二章】《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如何工作的关键。

相关推荐
飞塔老梅子20 天前
【FortiOS 8.0】❀ 09. SSID全网状模式 ❀ FortiGate 防火墙
mesh·fortios·ssid·8.0·全网状
Darkershadow4 个月前
蓝牙学习之通过OP CODE解析输入输出数据
学习·蓝牙·ble·mesh
bcbobo21cn4 个月前
Web 3D 正方体贴图
前端·3d·贴图·mesh
Darkershadow6 个月前
蓝牙学习之发送 Mesh Provisioning Service advertising
学习·蓝牙·ble·mesh
Darkershadow6 个月前
蓝牙学习之Time Set
python·学习·蓝牙·ble·mesh
榕树子7 个月前
【第一章】《Mesh Profile_v1.0》规范文档详解
mesh
Darkershadow7 个月前
蓝牙学习之Provision(7)bind (1)
学习·蓝牙·ble·mesh
Darkershadow7 个月前
蓝牙学习之Provision(6)Provison Complete
学习·蓝牙·ble·mesh
Darkershadow7 个月前
蓝牙学习之Provision(2)
学习·蓝牙·ble·mesh