架构
整体基于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 model
client不含state,client通常去请求,改变,消费server的states。 - Control model
一个control大概含有client去与其他server或其他server的client交流。
一个device可以有server,client和control。
- Server model
- Publish-subscribe和message change
消息订阅机制
一个消息可以从推送消息到单播,组播或者虚拟地址上。其他节点如果对这些消息有兴趣,就可以订阅这些消息。 - Friendship
Friendship用于低功耗节点。通常低功耗节点不能持续监听mesh消息,所以低功耗节点可以和附近正常节点建立Friendship关系,由附近节点接收并缓存低功耗节点的mesh消息到队列中,灯带低功耗节点唤醒后,在推送这些消息过去。
一个低功耗节点只能有一个friend节点。 - Feature
一个节点有四种features:- Relay feature
- Proxy feature
支持GATT - Low Power feature
- Friend feature
扫描二维码,分享此文章