蓝牙mesh网络笔记

date: 2018.01.21; modification:2018.01.22

目录:

1 蓝牙mesh基本概念

1.1 设备(Devices)和节点(Nodes)

如果一个设备成为了蓝牙mesh网络的一部分, 我们就把它叫做节点(node). 反之, 我们就把它叫做"未配网的设备"(unprovisioned devices).

1.2 元素(Element)

在设备中可以寻址访问的实体(即设备的子节点?)

1.3 消息(Messages)

1.4 地址(Addresses)

在蓝牙mesh里面定义了三种类型的地址: * 单播地址(unicast address): 这个地址是在配网的时候分配给设备的. 一个mesh网络可以有32767个单播地址. * 组播地址(group address): 一共可以有16384个组播地址. * SIG保留地址(256个): SIG定义了4个组播地址, 分别是"All-proxies", "All-friends", "All-relays" and "All-nodes". * 动态分配地址(16128): 动态分配的组播地址是设计成在用户配置的时候, 可以分配代表一些实际的场所, 比如可以定义几个组播地址代表几个不同的房间. * 虚拟地址(virtual address):

1.5 发布和订阅(Publish & Subscribe)

1.6 状态和属性(States & Properties)

1.7 消息(Messages)

1.8 模型/模式(Models)

1.9 配网(Provisioning)

配网的全过程包括大概5个步骤, 分别是 1. Beaconing: 告诉你我要配网, 这里使用的是新定义的AD广播包类型, Mesh AD 2. Invitation: 配网者Provisioner听到了这个Beacon以后, 就发一个邀请, 用的就是配网邀请PDU(Protocol Data Unit) 3. Exchanging Public Keys: 交换公钥. 4. Authentication: 一个互动随机数的认证流程, 这点和原来蓝牙输入0000 的密码很像, 但是会简单一点点. 5. Distribution of the Provisioning Data: 认证完成, 从公钥和两个设备的私钥派生出Session Key. 后面的配网的信息交互的过程会用这个Session key来加密. 配网成功以后, 就会根据最后一步里面包含交换的NetKey来加密后面的数据交换.

1.10 节点特性(Features)

1.11 参考资料

https://zhuanlan.zhihu.com/bluetooth-mesh

}}}