Mesh网络
具有多对多
拓扑结构,节点
都能够与Mesh网络
中的任何其他节点
进行通信
。
通信
是基于消息
的使用,且设备能够将消息中继
至其他节点
,使端到端
通信范围得以扩展,远远超出每个单独节点
的无线电范围。
Mesh网络
中的设备称为节点
(Node),非Mesh网络中的设备
称为未经启动配置的设备
(Device)。将未经启动配置的设备
转换为节点
(Node)的过程称为启动配置
(Provision)。
启动配置
是一个安全
的过程,原本未经启动配置的设备
经过启动配置
后会拥有一系列加密密钥
,并被启动配置
的设备(通常是平板电脑
或智能手机
)识别
。
Mesh网络
中的所有节点
都具有至少
一个NetKey
,设备必须拥有该密钥
才能成为加入相应的网络
,并成为节点
。
启动配置
是设备加入Mesh网络
并成为节点
的过程。用于驱动配置过程
的设备
称为启动配置设备
(Provisioner
)。
所有节点
均可发送
和接收Mesh消息
,但节点
可能拥有许多可选特性
,为其提供额外的特殊功能。有四种可选特性
:中继
、代理
、朋友
和低功耗
特性。
序号 | 特性 | 描述 |
---|---|---|
1 | 中继 (Relay) | 通过广播承载 层接收并重新发送Mesh消息 ,以构建更大规模 网络的能力 |
2 | 代理 (Proxy) | 在GATT 和广播承载层 之间接收 并重新发送Mesh消息 的能力 |
3 | 低功耗 (Low-Power) | 能够以明显较低 的接收端占空比 在Mesh网络 中运行。通过将无线电 接收器启用时间最小化 可实现节点功耗的降低 ,只有在绝对必要 时才启动接收器。LPN 通过与朋友节点 建立友谊 (friendship )关系来实现这一点。 |
4 | 朋友 (Friend) | 通过存储 发往LPN 的消息 ,仅在LPN 明确发出请求 时,才进行转发 来帮助LPN 运行的能力 |
消息
必须从一个地址
发送到另一地址
。蓝牙Mesh
定义了三种类型
的地址。
序号 | 地址类型 | 范围 | 描述 |
---|---|---|---|
1 | Unassigned (未分配) | 0x0000 | 没有分配地址(无发布或订阅时被特定使用) |
2 | Unicast (单播) | 0x0001 ~ 0x7FFF | 分配给每个元素的唯一地址,一共32767个 |
3 | Virtual (虚拟) | 0x8000 ~ 0xBFFF | 一个或一组设备的虚拟地址 |
4 | Group (组) | 0xC000 ~ 0xFEFF | 一组Mesh节点的地址(发布或订阅时被特定使用) |
5 | Broadcast (广播) | 0xFFFF | 网络中的每一个节点 |
当某一节点需要查询
其他节点状态,或需要以某种方式控制
其他节点时,会发送合适类型的消息
。如节点需要向其他节点报告自身状态
,则会发送消息
。
Mesh网络
中的所有通信
均以消息
为中心,且定义了多种消息类型
,每种均有自己独特的操作码
(Opcode)。
消息
分为两类:有应答
(Acknowledged)或无须应答
(Unacknowledged)的消息。
一些节点
具有多个组成部分
,每个都能独立进行控制
,这些部分被称为元素
。
比如:一种LED照明产品,每一个LED灯
为一个元素
,则将形成具有三个元素
的节点
。
发送消息
的行为称为发布
(Publish)。
节点
被配置为可选择发送
到特定地址
进行处理的消息
,这被称为订阅
(Subscribe)。
序号 | 模型 | 描述 |
---|---|---|
1 | 服务器 模型 | 定义状态 、状态转换 、状态绑定 和包含这一模型的元素可能发送 或接收 的消息集合 |
2 | 客户端 模型 | 不定义任何状态 |
3 | 控制 模型 | 包含一个服务器 模型和一个客户端 模型。服务器 模型可与其他客户端 模型进行通信,客户端 模型可与服务器 模型进行通信 |
通用模型
可能会为快速创建新型设备
的模型
打下基础。