架构
整体基于BLE,搭建一套上层体系。
- Model layer定义一个model,标准化一些操作或用户场景,例如灯和传感器
- Foundation Model layer定义状态,消息和配置及管理整个mesh网络
- Access layer应用层和较底层的交互接口。定义和控制加密等一些东西
- Upper transport layer 加密,解密,认证。
- Lower transport layer数据的分段和重组
- Network layer控制消息的接受和转发
- Bearer layer控制消息如何在节点间传递,两个bearer,advertising和GATT。其实就是广播和连接两种方式。
特点
- 一对一或一对多
- 允许消息转发,拓展距离
- 消息加密
- 与已有BLE兼容
- 消息发送及时
- 一个或多个节点丢失后仍可以正常工作
组成
- 地址确认消息的起点和终点
- Network key在Network layer层加密和认证信息
- application key在Access layer层加密和认证信息
- IV index拓展网络的lifetime,避免重复消息的发生
一个网络可以有多个子网(比如酒店可以有多个房间),一个设备可以属于多个子网(通过拥有多个Network key)。
这里有一个primary NetKey的概念,在primary里,节点可以参与IV update procedure。其他子网则只能传播。Network resource通常由model server来管理(一般是手机)。Architectural concepts
几个概念
- States设备的状态信息
- Bound states绑定的状态信息。几个状态信息绑定在一起,一个发生改变,另一个也随之改变
- Messages操作states的信息
- Elements一个节点可以有多个elements
-
Models
models定义一个节点的一些通用的信息。- Server model一个server model由一个或多个节点的一个或多个element组成
- Client modelclient不含state,client通常去请求,改变,消费server的states。
- Control model一个control大概含有client去与其他server或其他server的client交流。
一个device可以有server,client和control。
- Publish-subscribe和message change消息订阅机制
一个消息可以从推送消息到单播,组播或者虚拟地址上。其他节点如果对这些消息有兴趣,就可以订阅这些消息。
- FriendshipFriendship用于低功耗节点。通常低功耗节点不能持续监听mesh消息,所以低功耗节点可以和附近正常节点建立Friendship关系,由附近节点接收并缓存低功耗节点的mesh消息到队列中,灯带低功耗节点唤醒后,在推送这些消息过去。
一个低功耗节点只能有一个friend节点。
-
Feature
一个节点有四种features:- Relay feature
- Proxy feature支持GATT
- Low Power feature
- Friend feature