打开主菜单

谷雨文档中心 β

更改

BLE-Mesh技术揭秘

添加3,712字节2019年11月19日 (二) 22:22
Mesh系列文章
创建符合行业标准的、基于低功耗蓝牙的mesh通信技术,就有可能满足他们的要求,同时没有相关的限制和约束。毕竟,'''互通性和能效是低功耗蓝牙最突出的特性'''。
 
== 第二章节 Mesh网络基本概况 ==
在第一章节中,我们介绍了全新的'''蓝牙mesh网络技术'''。如果您还未阅读第一章节,建议先从头阅读,然后再进入第二章节。
 
本章节将介绍蓝牙mesh网络的基本概况,包括'''大型mesh网络中的消息传输方式'''、'''市场设备支持'''、'''安全性'''和'''mesh协议栈'''本身,在后续文章中也将继续探索这一技术方方面面的细节。
=== 以消息为中心的通信 ===
消息、状态、以及这些和其他概念相关的设备行为已被定义在规格中,称为“模型”(modules)。模型由蓝牙mesh设备实施。
 
=== 中继 ===
'''得益于mesh网络,设备可以在非常广阔的区域中安装,同时彼此之间保持通信。'''想象一下购物中心、机场或办公大楼的占地空间有多广阔。因为存在墙壁和其他物理上的障碍物,楼宇中的设备可能无法与安装在同一楼宇远侧的设备、或临近楼宇中的设备建立直接的无线连接。而蓝牙mesh网络则能够将网络中的某些设备指定为“中继设备”,进而解决这一难题。
 
'''中继设备能够转发从其他设备接收到的消息。'''在转发消息时,它们能够与位于初始消息发布设备无线范围以外的设备进行通信。消息可多次被中继,每一次中继即为一“跳”,最多可进行127跳,足以在一片广阔的物理区域中进行消息传输。
[[文件:BleMesh-大型场馆中的Mesh中继.png|居中|缩略图|750x750像素|蓝牙 mesh网络在节点之间中继消息]]
 
=== 管理型网络泛洪(Managed Flooding) ===
'''蓝牙mesh网络采用一种称为“网络泛洪(flooding)”的方式来发布和中继消息。'''这意味着消息不会通过某一进程进行路由, 也不会沿着由一系列特定设备构成的特定路径来进行传输。相反,传输范围内的所有设备都会接收消息,负责中继的设备能将消息转发至其传输范围内的所有其他设备。
 
“网络泛洪”这项技术在使用中往往是利弊参半。'''在蓝牙mesh网络的设计中,我们对此进行了针对性的优化,相信能够扬长避短'''。
 
==== 网络泛洪的优势 ====
'''网络泛洪的优势在于无需特定设备专门扮演集中式路由器的角色。'''集中式路由器一旦发生故障,就可能会导致整个网络无法运行。没有特定的路由也可能对网络造成灾难性的影响,但这种情况也可以通过在mesh网络中采用网络泛洪的方法来避免。
 
网络泛洪的方式也意味着消息一般能够通过多重路径到达其目的地。'''这就构建了一个相当可靠的网络。'''
 
==== 优化mesh网络 ====
'''蓝牙mesh网络也采取了一系列措施,支持采用网络泛洪的方式,同时优化每台设备、甚至整体网络的能耗。'''
 
所有数据包都包含一个称为TTL的字段,它可用于限制消息中继的跳数。由设备间歇性发送的心跳消息中包含的信息,能够让网络了解其拓扑结构、以及传到其他每台设备之间的跳数。这能够让设备将TTL设置为最佳值,从而避免不必要的中继操作。
 
每台设备都包含消息缓存,以确定自身是否已经中继过该消息。如果是,则会立即丢弃该消息,从而避免上层堆栈进行不必要的处理。
 
最有趣的是,功率非常受限的设备(例如由小型电池持续供电多年的传感器)可能被指定为“低功耗节点”。'''低功耗节点能够与一个或多个被指定为 “friends” 的设备协同工作。'''Friends并非功率受限,它可以作为低功耗节点,存储寻址到这一低功耗节点的消息,并且只有在低功耗节点需要时才传送消息。'''低功耗节点和“friends”之间的关系理所当然就称为“friendship”。'''
== Mesh系列文章 ==
2,367
个编辑