2,367
个编辑
更改
→Mesh系列文章
最有趣的是,功率非常受限的设备(例如由小型电池持续供电多年的传感器)可能被指定为“低功耗节点”。'''低功耗节点能够与一个或多个被指定为 “friends” 的设备协同工作。'''Friends并非功率受限,它可以作为低功耗节点,存储寻址到这一低功耗节点的消息,并且只有在低功耗节点需要时才传送消息。'''低功耗节点和“friends”之间的关系理所当然就称为“friendship”。'''
==== “Friendship”具体如何运转? ====
下面我们从节能的角度来进行解读。
低功耗设备通常将大部分时间用于传输数据,例如传感器。每当温度低于或高于指定阈值时,传感器才会发送温度读数,这种情况也许每天只会发生两次。这种不频繁的传输方案本身就使这类设备保持相当低的能耗。
==== 但如果传感器需要不时地接收数据,又该怎么办呢? ====
例如,可能它需要确保网络中使用的安全密钥始终处于最新状态。或许需要根据季节修改这些温度阈值,采用不同的值。要使传感器直接接收消息,就需要开启无线电,以便数据接收。但大多数时候它什么都接收不到,但能量却会被消耗。
对设备来说,通过与“friends”的合作, 低功耗节点能够以合理的频率使用无线电来接收消息,但重要的是,相较于始终“聆听”所有消息,它能够以更低的频率工作,同时确保发送来的罕见事件也不会被遗漏。
“Friends” 能帮助低功耗节点完成大量工作。它们能够为所服务的低功耗节点存储消息,并在低功耗节点明确要求的情况下向其提供消息,低功耗节点可按照自身的规划进行操作,从而最有效地利用无线电。
=== 市场上的蓝牙设备支持 ===
蓝牙mesh网络虽然推出不久,但'''低功耗蓝牙(Bluetooth Low Energy)'''却面世已久。
'''那么市场上数十亿台设备呢?智能手机和平板电脑呢?它们能否访问蓝牙mesh网络?'''
[[文件:BleMesh-智能设备(手机)支持Mesh.png|居中|缩略图|750x750像素|低功耗蓝牙设备和mesh支持]]
幸运的是,'''答案是YES!'''
'''蓝牙mesh网络会指定一台设备来扮演代理节点(proxy node)的角色。'''代理节点包含一项标准:低功耗蓝牙GATT服务,具有两个GATT特性,分别是mesh代理数据输入(Mesh Proxy Data In)和mesh代理数据输出(Mesh Proxy Data Out)。诸如智能手机等低功耗蓝牙设备均可使用这些特性,与mesh网络进行数据收发。
'''这种mesh规格定义了一种代理协议(proxy protocol)''',同时通过代理节点的两个GATT特性交换的数据中包含代理协议PDU。
欲知代理节点的作用,请持续关注本系列后续文章~
=== 安全性 ===
'''安全性是蓝牙mesh网络设计的核心,并且强制使用。'''
'''每个数据包都经过加密和认证'''。通过合理使用序列号能够防止中继攻击。在重要流程中使用不对称加密技术可防止中间人(Man-in-the-middle)攻击。同时针对利用废弃设备的垃圾桶攻击提供保护。'''必要时还会刷新安全密钥。'''
'''“安全分级考量”(Separation of Concerns)是蓝牙mesh网络安全性中体现的重要原则。'''网络的安全性,以及诸如照明、供暖、或实体建筑安全等个别应用的安全性彼此独立。可使用不同的安全密钥来保护网络层操作,例如中继、或保护特定应用的消息内容。论其结果,举例来说,由于灯泡和照明开关具有相同的应用密钥,因此灯泡能够全面访问照明开关所发送消息中的数据。但是,尽管相同的灯泡能够将来自蓝牙物理访问令牌的消息中继到前门中的锁,却无法阅读那些消息应用层的内容。
本系列的后续文章中也将详细介绍安全性。我们还将密切关注一个称为 '''“开通配置” (Provisioning)的安全流程,设备可通过这一流程变身为蓝牙mesh网络的一员。'''此外,我们还将探讨如何从网络中安全地删除设备,以及如何在有需要时刷新安全密钥。
=== 协议栈 ===
'''蓝牙mesh网络引入了全新的协议栈'''。如之前所述,这一协议栈建立在低功耗蓝牙技术之上。下图描绘了'''协议栈的层级'''。
== Mesh系列文章 ==