蓝牙™ 网状定向转发
蓝牙™ 网状定向转发
技术概览
发布 : | 1.0.0 |
文件版本 : | 1.0 |
最后更新 : | 2023 年 9 月 19 日 |
作者 : |
马丁-伍利Bluetooth SIG |
Version |
Date |
Author |
Changes |
1.0.0 |
September 19, 2023 |
Martin Woolley, Bluetooth SIG |
Initial version |
备注 Bluetooth Mesh 配置文件 规范已更名,现称为Bluetooth Mesh 协议规范。本文件和相关文件在提及 1.1 版规范时将使用这一名称,但在提及 1.0 版规范时,仍将继续称其为Bluetooth Mesh 配置文件规范。 |
1.背景情况
蓝牙™ Mesh 协议规范 1.1 版引入了定向转发功能。要充分了解蓝牙 Mesh 定向转发的功能和优势,有必要了解蓝牙 Mesh 1.0 版本的某些方面。本节介绍了蓝牙 Mesh 定向转发功能的来龙去脉。
1.1 多跳和多路径信息传输
蓝牙™ 网状网络的一个显著特点是,即使设备之间不在直接的无线电范围内,它们也能进行通信。网络中的设备(称为节点)通过向目的地 地址发送信息进行通信,如有必要,信息将在网络中跳转,直到到达其目的地 ,这一过程称为中继。信息最多可跳转 126 次,从而使网络能够覆盖建筑物内部、周围和之间的大片区域。
同一信息的副本可以同时通过不同的路径在网络中传输,第一个到达的副本将被处理,随后到达的副本将被丢弃。这种多路径功能为网络提供了冗余,即使网络中一个或多个必要的中继节点(见 1.2)无法使用,信息仍可送达。
一个精心设计的Bluetooth Mesh 网络将利用多路径传输作为确保网络通信可靠的策略之一。
1.2 节点功能
例如,LED 灯可以根据从其他设备(如开关和旋转控制器)接收到的信息,开启或关闭LED 灯,并改变其亮度或颜色。
节点还可以在网络中扮演各种特殊角色,无论它是什么类型的产品 。蓝牙网格定义了节点可能具有的四种特殊功能。如表 1 所示。
表 1 - 节点功能
特征 |
费用项目 |
继电器 |
启用了中继功能 的节点可以转发它从附近其他设备听到的信息。中继是一种机制,允许信息在中间中继设备之间跳转,到达它们的目的地。多路径传送是通过确保发送节点在不止一个中继节点 节点的范围内来实现的,这样每个节点都能听到来自相邻节点的信息,并且每个节点都会转发这些信息。 |
朋友 |
朋友是典型的高功率设备。它们为相关的低功耗节点(LPN)提供存储和转发服务 。 |
低功耗节点 |
LPN 只在发送信息或与相关友节点通信时偶尔启动无线电,以询问友节点是否临时存储了 LPN 的信息,并接收已存储的信息,从而节省电能。 |
代理 |
代理节点允许无法使用蓝牙™ 网状广播承载层 的低能耗(LE)设备通过与代理的点对点连接,使用 GATT 程序发送和接收网状信息。代理节点通常用于让专门开发的智能手机应用程序充当图形用户界面,以监控网状网络中的节点。 |
1.3 网状蓝牙网络泛洪
不受控制的网络泛洪 是某些无线网络技术中使用的一种技术,它涉及节点重新传输收到的每一条信息,从而使信息传播到网络中的每一个节点。这种方法很简单,但效率可能不高,会浪费无线电频谱和节点处理时间与功率。
蓝牙™ Mesh 1.0 用来中继信息的机制称为Bluetooth Mesh Managed网络泛洪。只有选定的节点才能启用中继功能 。此外,这些节点会根据节点的信息缓存和名为 "生存周期"(Time to Live)的协议数据单元(PDU)字段的值,重新传输它们收到的某些信息,这取决于同一信息是否已被重新传输。
生存周期限制 信息中继的跳数或信息从源头发出的辐射距离。想象一下办公室大厅里的一组蓝牙网状灯开关。其中一个开关控制一楼的所有照明节点,而另一个开关只控制大厅里的照明。如果大厅里的所有照明节点都在大厅电灯开关的直接无线电范围内,那么就根本不需要转发这些信息。与此相反,如果要与本楼层大厅外的其他照明灯连接,则可能需要 2 跳。第一个开关在发送信息时会将生存周期 设为 0,表示不需要中继。第二个开关会将其设置为 3,以确保有足够的中继次数到达大厅外较远的灯光。在每种情况下,生存周期 都在优化中继功能,确保信息不会中继到大楼中与之无关的区域,并确保信息从源头向外传播,就像石头掉进水里产生的波浪一样。
与使用不受控网络泛洪 并产生大量不必要流量的网络相比,在蓝牙™ 网状网络中,通常不会有超过 5% 的节点充当中继站。
1.4 蓝牙网格网络泛洪的局限性
在某些情况下,比蓝牙网状网络泛洪 所能提供的更精确地控制哪些节点将转发信息会更有优势。请考虑以下情况:
1.4.1 相邻楼层
无线电传输是在三维空间中进行的。因此,蓝牙™ 网状信息可能会被发出信息的楼层上下两层的节点接收,如果信息只发给与发出节点在同一楼层的节点,这种情况可能并不理想。例如,电灯开关通常只用于控制同一楼层的电灯,开关发出的信息可能会被其他楼层的节点听到,也可能被邻近楼层的中继器重新发送,这就没有价值了。
1.4.2 仅锁定房间一侧的设备
想象一下,在一个大型会议厅的一端和另一端的舞台之间,墙壁上有一组电灯开关。其中一个开关控制舞台上方的照明,而信息需要通过一跳来传递到所有开关。
在图 1 所示的网络中,我们在开关的范围内设置了两个中继器,这对于让同一面板上的其他开关到达它们必须控制的所有灯光节点来说是必要的。当使用舞台灯光开关时,信息将被传输,由两个中继器接收并重新传输,因此信息在网络中既可以向目标灯光传输,也可以远离目标灯光。
图 1 - 带有舞台灯光和多个中继节点的会议厅
图 2 - 电灯开关广播开/关信息
图 3 - 两个中继器接收信息并都进行重传
这是一种浪费,因为离舞台最远的继电器并不参与从开关到舞台灯光的信息传递,因此最好不要参与。
1.5 信息传送能力和可扩展性
当一个设备传输信息时,它会在一段时间内使用一个无线电信道。与第一个设备处于同一范围内的另一个设备如果同时在同一信道上传输信息,就会造成碰撞。因此,在一个所有设备都在彼此范围内的网络中,信息传输容量是有限的,因为所有传输的信息都要在一段时间内使用无线电信道,而且每次只能安全地使用一个信道。
每条信息消耗的时间很短,而且蓝牙™ Mesh 使用三个无线电信道。但容量仍然有限,最终将成为网络可扩展性的限制因素。
1.6 蓝牙网格网络泛洪评估
蓝牙网状网络泛洪 是一种通过网络传播信息的系统。它通过多跳能力提供范围和区域覆盖,在设计适当的网络中,通过精心布置的中继器,它通过多路径中继行为提供冗余。
通过信息缓存和使用生存周期 参数,可以对信息的传输距离进行一定程度的控制,从而实现一定程度的优化。继电器之间是完全独立的,这意味着在设备移动等情况发生变化时,不存在必须维护的依赖关系或配置设置。在大多数情况下,蓝牙网状网网络泛洪 是一种几乎不需要维护的适用解决方案。
虽然生存周期 可用于限制信息的跳转次数,但它无法控制信息在网络中的传输方向。蓝牙网格网络泛洪 会导致信息在网络中向各个方向扩散,因此可能会在信息无关的网络部分浪费有限的信息容量。
在一些网络design 中,蓝牙网格网络泛洪 并不能提供我们想要的最高效的网络利用率,在某些情况下,这将限制可扩展性。
这也是蓝牙网格定向转发功能的主要动机,该功能在蓝牙网格功能 增强版本 1.1 中推出。
2.关于Bluetooth Mesh 定向转发
本节回顾蓝牙网格定向转发功能。
2.1 能力和优势
2.1.1 提高利用率,增强可扩展性
蓝牙网状定向转发允许建立这样一个网络,即只有那些能够参与将信息导向其目的地 的节点才会这样做。反之,使用蓝牙网格定向转发的节点将忽略任何它无法协助其发送的信息。
在发起或转发信息时能够使用Bluetooth Mesh 定向转发的节点称为Bluetooth Mesh 定向转发节点。能够使用Bluetooth Mesh 定向转发中继信息的节点称为Bluetooth Mesh 定向转发中继节点。 Bluetooth Mesh 定向转发中继总是Bluetooth Mesh 定向转发节点,但Bluetooth Mesh 定向转发节点可能是也可能不是Bluetooth Mesh 定向转发中继。使用哪个术语通常取决于上下文。
图 4 显示,在会议厅示例中,来自舞台照明灯开关的信息只会由其中一个蓝牙网格定向转发中继器转发,因为该中继器能够将这些信息传送到目的地。与此相反,交换机范围内的其他定向转发中继节点 会忽略这些信息。请注意,在这种情况下,电灯开关充当蓝牙网格定向转发节点。
图 4 -Bluetooth Mesh 定向转发
2.1.2 更便捷的网络Design 和调试
设计和设置(试运行)单独使用蓝牙网格网络泛洪 进行信息传播的大型蓝牙™ 网状网络泛洪 时,可能需要仔细考虑要配置多少节点作为中继站以及将它们放置在何处等问题。如果充当中继站的节点过多,网络中产生的流量就会超过需要,发生碰撞的风险就会更高,可扩展性也会受到限制。如果充当中继站的节点太少,可能会出现某些节点无法到达或design中缺乏冗余的通信问题。
启用Bluetooth Mesh Directed Forwarding 只需在网络调试时做少量工作。所有节点都可以配置为使用Bluetooth Mesh Directed Forwarding,只需设置一套简单的Bluetooth Mesh Directed Forwarding 策略参数,系统就会自我维护和自我优化所需的通信路径。
2.2 技术要点
2.2.1 蓝牙网格定向转发配置服务器 模型
一种名为蓝牙网格定向转发的新基础模型 配置服务器模型。它包括一个名为 "定向控制"(Directed Control)的复合状态 ,其中包含许多子状态,如蓝牙网格定向转发 状态 (Bluetooth Mesh Directed Forwarding 状态 )和定向中继 状态 (Directed Relay 状态 )。这些状态分别指示并控制蓝牙网格定向转发和定向中继功能是否启用。鉴于这两个功能之间的关系,定向中继状态 与蓝牙网格定向转发状态 绑定,因此如果定向转发功能被禁用,定向中继功能也将被禁用。
蓝牙网格定向转发的存在与否 配置服务器模型决定节点是否有可能使用蓝牙网格定向转发功能(Bluetooth Mesh Directed Forwarding)。定向控制 状态 值决定了蓝牙网格定向转发功能的启用或禁用。
2.2.2 路径
蓝牙 Mesh 定向转发中继节点只选择性地参与某些信息的重传,而不参与其他信息的重传,这涉及到路径和车道的概念。需要注意的是,在蓝牙™ Mesh配置文件 1.0 版本中,路径一词是非正式使用的。在蓝牙网格定向转发中使用时,路径具有更具体的含义:
路径是一组节点,这些节点可参与使用蓝牙网格定向转发技术,通过特定子网 将信息从源地址 转发到目的地 地址 。
路径源始终是一个节点,由单播地址标识。在Bluetooth 网格定向转发(Bluetooth Mesh Directed Forwarding)中,源节点被称为路径原点。
路径的目的地 是一个或多个节点的集合,具体取决于使用它的地址 类型。单播地址、组地址和虚拟地址都是路径目的地 的有效标识符。如果目的地 由一组地址 或地址标识,那么订阅该地址 的节点就称为路径目标。因此,在蓝牙网格定向转发语言中,一条路径有一个路径原点节点和一个或多个路径目标节点。
蓝牙网状定向转发节点知道自己所在的路径,但对服务 同一路径的其他节点一无所知,包括在信息转发序列中可能在其之前或之后的节点。因此,蓝牙网格定向转发保留了更简单的蓝牙网格网络泛洪 方法的优点之一。
以下是一些插图。图 5 提供了所用图标的关键字。
图 5 - 插图说明
图 6 显示了一个简单的Bluetooth Mesh 定向转发路径,一个灯具开关作为路径原点,一个灯具作为唯一的路径目标节点。
图 6 - 只有一个目标节点的路径
图 6 中的红色图标代表蓝牙网格定向转发中继节点,它们是开关节点到照明节点路径的一部分,而照明节点订阅了开关使用的发布 地址 。交换机发布开/关信息时,在路径上的红色节点和不在路径上的相邻定向中继节点(紫色)都会收到。红色节点知道自己在所需路径上,因此使用蓝牙网格定向转发功能转发信息。紫色节点知道自己不在这条路径上,因此立即丢弃开/关信息。这样就能防止信息进一步传播到与信息无关的网络部分。
组地址和虚拟地址可能而且通常被多个节点订阅。目的地 组地址 的路径通常会有不止一个路径目标节点。图 7 提供了一个示例,说明在一个大礼堂的一条边上,一个电灯开关和一组电灯之间的路径服务通信,所有这些电灯都订阅了路径的组地址。
图 7 - 具有多个目标节点的路径
交换节点会再次发布一条开/关信息,范围内的所有蓝牙网格定向转发中继器都会收到这条信息。只有那些知道自己处于从交换机节点的单播地址 (路径原点)到订阅了路径组目的地 地址 的节点(路径目标节点)的路径上的节点才会重新传输信息。不在该路径上的其他蓝牙网格定向转发节点将丢弃信息。很明显,蓝牙网格定向转发在此类情况下可显著提高效率。
后面的章节将讨论如何创建和维护路径。
相比之下,图 8 显示的是交换机向地址组发布的同一信息,但使用蓝牙网状网络泛洪 中继传送,其生存周期 值为 4,以确保信息有足够的跳数到达所有目标节点。
图 8 - 蓝牙网状网网络泛洪
为了便于比较,这里并排重复图 7 和图 8:
Bluetooth Mesh 定向转发 |
Bluetooth Mesh Managed网络泛洪 |
2.2.3 可靠性
路径已被描述为一组节点,为源地址、目的地 地址 子网提供蓝牙网格定向转发服务 。结合图 6 和图 7,我们可以看出,当用于传递信息时,路径一般由多个节点序列组成,信息副本沿路径中继到网络不同部分的各个目标节点时,会经过这些节点。
但如果其中一个或多个节点序列中断了呢?显然,如果路径中某个节点序列中的一个定向中继节点由于某种原因没有处理信息,那么路径的这一部分将无法向目标节点的子集发送信息。在如图 7 所示的情况下,这意味着房间某处的灯将无法响应开关发送的信息。
所有蓝牙™ 网状节点的部分时间用于传输信息,部分时间用于等待接收其他节点的传输信息(同时监听一个无线电信道),其余时间处于空闲状态。如果一个节点正在发送信息或处于空闲状态,它将无法接收该时间段内相邻节点发送的信息。如果节点监听的无线电信道与 PDU 发送的信道不同,它也将无法接收信息。
节点可接收信息的时间比例称为RX 占空比,用百分比表示。建议在设计和配置网格产品时尽可能提高 RX 占空比,但永远不会达到 100%。因此,节点总是有可能接收不到 PDU。这是蓝牙 Mesh 网络运行的一个预期方面,也是蓝牙 Mesh 技术随机方法的一个特性 。
Bluetooth Mesh 节点通常在三个不同的无线电信道上快速连续地传输信息副本。此外,节点通常被配置为多次重复多信道传输过程。多无线电信道的使用有助于降低数据包碰撞的风险,而多次重复传输信息可将目标接收者错过信息的概率降至很低。这样,通过利用一些影响节点间成功通信概率的变量,Bluetooth Mesh ,提供了可靠的通信,而不会像其他方法那样普遍存在协议和配置复杂的问题。
蓝牙网格定向转发与其他消息传递方案一样,在网络层 使用多个无线电信道和 PDU 重传,因此具有相同的可靠性优势。但是,节点序列不可用或不工作还可能有其他原因。例如,节点可能断电,也可能被移动到新的位置。蓝牙网格定向转发为网格网络设计者提供了一个额外的功能 ,以确保网络的可靠性。这个功能 就是多线蓝牙网格定向转发路径。
2.2.4Bluetooth Mesh 定向转发路径弹性和车道
蓝牙网格定向转发功能 定义了车道的概念。蓝牙网格定向转发路径由一个或多个车道组成。
车道是一组节点,可为源地址、目的地 地址 子网提供蓝牙网格定向转发服务 。
这个非正式的定义大家应该已经很熟悉了,在 2 中它被用来描述一条路径。这不是一个错误。通常情况下,可以选择不同的节点序列,将信息从源头转发到目的地。为了最大限度地提高路径可靠性,可以对节点进行配置,以便在创建以其为路径原点的路径时,建立一条包含多条线路的路径服务
请看下面与图 9 一起重复的图 6。
图 9 - 有两条车道的相同路径 |
图 6 描述了一条路径,其中包含一条车道,用于将信息从交换机定向转发到照明节点。图 9 显示了一条等效路径,提供指向同一源和目的地 地址定向转发服务 ,但为其建立了两条车道。图 9 所示的网络比图 6 所示的网络更可靠,因为它包含冗余,即蓝牙网格定向转发中继器的多个可能序列,可将信息传送到其目的地。不过,这将在网络中产生更多的总体流量。
2.2.5 路径指标和车道选择
通常会有不止一个Bluetooth Mesh 定向转发中继器序列可以服务 一条路径,因此定义了一种基于路径度量系统的方法,用于在创建路径时对可用节点序列进行排序。
在 1.1 版《蓝牙™ 网状协议规范》中,定义了一种路径度量类型,但已为将来在系统中添加其他类型的度量类型做好了准备。在此版本中,定义的路径度量类型称为节点计数度量。这是一种简单而有效的方法,用于衡量特定节点序列与其他节点序列相比,在构成路径的一部分时有多大的吸引力。
节点计数度量的是信息到达中间中继节点或目标节点必须经过的中继跳数与该节点所属的车道数(属于该路径)的总和。这样,在程序的每次迭代中,现有通道的吸引力都会降低,从而产生新的通道。
在创建路径和通道时会使用路径指标,但在使用Bluetooth Mesh Directed Forwarding(定向转发)通过网络转发mesh 访问报文时不会使用路径指标。接下来将探讨如何创建路径和通道,以及路径指标在这一过程中的作用。
2.2.6 创建路径和车道
路径要么是使用配置管理器工具手动创建的,要么是通过执行一系列自动程序动态发现和建立的。手动创建的路径称为固定路径 ,动态创建的路径称为非固定路径。
蓝牙网格定向转发配置服务器 模型包括一个重要的状态 ,即转发表(Forwarding Table)。转发表中的条目表示节点所属的路径,在创建固定路径时,转发表会被手动更新。
每个Bluetooth Mesh 定向转发节点还有一个称为 "发现表"的数据结构。在自动路径发现过程中,会在此表中创建临时条目,以帮助识别构成路径车道的节点序列。
当蓝牙网格定向转发(Bluetooth Mesh Directed Forwarding)用于将信息从源地址 传送到目的地 地址 ,但源节点的转发表中没有相关条目时,就会创建非固定路径。
必须执行Bluetooth Mesh Directed Forwarding Initialization(定向转发初始化)、Bluetooth Mesh Directed Forwarding Discovery(定向转发发现)和Bluetooth Mesh Directed Forwarding Establishment(定向转发建立)三个程序才能创建路径。
路径的创建和维护受一系列计时器和状态 的控制,这些计时器和状态 与一个名为 "路径原点状态 "状态 有关。顾名思义,路径原点节点在蓝牙网格定向转发初始化过程中创建了这个重要的复合状态 。蓝牙网格定向转发初始化过程中还会分配一个称为转发号码的标识符,所有与一系列初始化、发现和建立程序相关的控制信息都具有相同的转发号码值。
在创建了路径原点状态 并启动了路径发现计时器后,路径原点会发送 PATH_REQUEST控制消息。发送该消息时,会将其目的地址 目的地 地址)字段设为一个新的固定组地址, 即全定向转发节点(all-directed-forwarding-nodes)。PATH_REQUEST 消息包含另一个名为目的地 地址 的字段,该字段被设置为路径目标的地址 ,可以是单播、群组或虚拟地址。
Bluetooth Mesh 在定向转发发现过程中,PATH_REQUEST 信息从路径原点发送,然后由接收到该信息的每个Bluetooth Mesh 定向转发中继站重新生成并再次广播。这样,网络中的所有定向转发中继器最终都会收到 PATH_REQUEST 信息。
节点接收到的 PATH_REQUEST 接收信号强度指示器(RSSI)低于配置阈值时,将丢弃该信息。这样就能确保不会使用弱无线电链路创建路径。
当 PATH_REQUEST 报文的副本沿着不同节点序列跳转时,报文中会保留一个路径度量值,以便在发现过程中跟踪到达每个节点的成本。
节点首次收到转发号码的 PATH_REQUEST 消息时,会在其发现表中创建一个条目。该条目包括待创建路径的标识和路径度量,路径度量代表从路径原点到该节点的节点序列的相关成本。此外,对于Bluetooth 网状物定向转发(Bluetooth Mesh Directed Forwarding) 建立程序而言,在此特定节点序列中排在该节点之前的节点的单播地址 也存储在名为 Next_Toward_Path_Origin 的字段中。
当节点收到 PATH_REQUEST 信息时,如果在同一发现过程中已通过另一个节点序列访问过该节点,则会查询发现表,以确定此次 PATH_REQUEST 信息所采用的节点序列是否优于迄今发现的最佳节点序列。如果该 PATH_REQUEST 实例所采用的序列的路径度量值低于发现表中记录的值,则更新发现表条目,在 Next_Toward_Path_Origin 中加入新序列中前一个节点的单播地址 以及新的较低路径度量值。这样,在发现过程中访问的每个节点的发现表中,都会保留一条最佳节点序列的记录,该记录用该序列中前一个节点的路径标识符、路径度量和单播地址 来表示。
当 PATH_REQUEST 消息到达路径目标节点(任何订阅了目的地 字段中的地址 的节点)时,一个称为路径回复计时器的定时器就会启动。定时器过期后,蓝牙网格定向转发建立程序就会启动。该程序会添加或更新转发表中的条目,以记录该节点是新发现的此路径车道的一部分这一事实。然后向单播地址 包含在发现表项的 Next_Toward_Path_Origin 字段中的节点发送 PATH_REPLY 消息。PATH_REPLY 报文通过所选节点序列中的中间中继站跳回路径原点节点,在此过程中创建或更新转发表项,直到报文到达路径原点。
每个被访问节点上运行的路径发现定时器实例将在路径建立过程结束前到期,届时每个节点发现表中的相关条目将被删除。被选中的每个节点上的转发表现在都将包含一个已建立路径的条目,其作用只是表明这些节点中的每个节点都为该路径提供服务。需要注意的是,转发表中没有任何数据显示序列中的下一个或上一个节点。前一个节点的地址 只在建立路径时才需要,因此只临时存储在发现表中。
图 10 -Bluetooth Mesh 定向转发发现和建立
总之,路径发现过程包括 PATH_REQUEST 信息从路径原点开始,依次经过网络中每一个可能的Bluetooth 网格定向转发节点序列。程序执行时,每个节点的发现表中都会记录迄今为止发现的最佳序列的路径度量值。从路径目标节点开始,通过 PATH_REPLY 消息回溯通往该节点并产生最佳路径度量值的节点序列,这些消息仅使用保存在发现表中的 Next_Toward_Path_Origin 单播地址 沿该序列中的节点跳转,直至到达路径原点节点,此时可以说所需路径的单行线已经建立。
图 11 以 PATH_REQUEST 和 PATH_REPLY 报文在网络中的传输过程为例,说明了从交换机(绿色图标)到单灯节点(黄色图标)之间创建路径的发现和建立过程。
被称为 "想要车道 "的配置状态 表示一条路径应该有多少车道。在路径起始节点,当路径发现 计时器到期时,将根据迄今为止建立的车道数检查 "想要 的车道",如有必要,将再次执行发现和建立程序。在这些程序的每次后续迭代中,一个称为 "车道计数器 "的字段都会递增,如果 PATH_REQUEST 消息是由一个已经拥有该路径转发表项的节点处理的,那么 "车道计数器 "就会被添加到路径度量值中。这样,在路径发现的每次迭代过程中,被重新访问的先前建立的车道的相关度量值将逐渐升高。这将导致其他节点序列相对于已建立的车道更具吸引力,并最终被选中。此外,根据路径度量系统的工作方式,不相交的车道通常会更受青睐。
2.2.7 监控和维护路径
网络会发生变化,因此需要对路径及其通道进行维护。为此,需要使用一些与自动路径维护有关的程序和计时器。
所有非固定路径都有一个有限的生命周期,该生命周期在配置状态中定义。支持的值有 12 分钟、2 小时、24 小时和 10 天。路径的默认寿命为 24 小时。
固定路径会一直存在,直到使用配置管理器应用删除为止。
路径寿命
非固定路径的寿命是通过一个名为 "路径寿命定时器 "的定时器来管理的,该定时器被设置为配置的路径寿命状态 ,并在路径建立过程中在每个节点上初始化。计时器到期时,路径上的每个节点都会删除路径的转发表项。下次需要时,将重新创建路径。
路径监控
路径起源状态 与特定的蓝牙网格定向转发目的地 相关联,并定义了许多计时器和状态,包括路径监控计时器和路径需要 状态。路径需要 状态 用于跟踪路径原点是否正在使用路径。
路径监控在一定的配置时间间隔内进行。
当路径监控计时器 到期时,如果路径监控显示仍需要该路径,则会执行Bluetooth Mesh 定向转发 初始化程序,以便根据网络现状刷新路径。如果不需要,则会在路径寿命计时器到期时删除路径。
路径监控可识别和删除不再需要的路径。
路径验证
蓝牙网格定向转发 回声程序是另一种由计时器驱动的程序。路径原点节点会在路径建立后设置路径回音计时器。定时器过期后,路径原点向路径的目的地 地址 发送 PATH_ECHO_REQUEST 信息。PATH_ECHO_REQUEST 会被转发到路径目标节点。目标节点收到 PATH_ECHO_REQUEST 后,会向路径原点发送 PATH_ECHO_REPLY。如果路径原点在配置的时限内收到该信息,则表示路径有效。如果路径原点没有收到回音回复,则会使路径失效,并导致路径从路径原点的转发表中删除。
使用Bluetooth Mesh Directed Forwarding echo 程序进行路径验证,检查路径是否仍然有效。
订阅变更
如果Bluetooth 网格定向转发节点订阅了新的地址,或如果低功耗节点等从属节点(见)订阅了新的地址,则会执行Bluetooth 网格定向转发请求程序。该程序会更新路径,将该节点纳入其中,成为路径中的另一个目标节点。
自我组织与优化
监控和维护程序可确保自动识别和重建中断的路径。这是蓝牙™ 网状网络自组织行为的一个例子。
在建立路径时,指标用于选择最佳可用节点序列。但是,随着涉及节点的线路增多,该节点可能不再是其支持的一条或多条路径的最佳选择。因此,在路径生命周期结束时定期删除路径,然后重新建立路径,这意味着就路径指标而言,路径及其通道始终是最佳的。Bluetooth Mesh 定向转发路径是自组织和自 优化的。
2.2.8 存取信息
访问报文是作为客户端 和服务器模型的一部分定义的报文类型,它作用于模型的状态 。访问信息可通过蓝牙网格网络泛洪 或蓝牙网格定向转发在网络上传送。Directed发布 策略 状态 表示应使用这两种方法中的哪一种。
网络层 使用由加密密钥和隐私密钥组成的安全材料对所有访问信息进行加密。使用的安全材料由 NID 字段标识。使用 k2 安全函数的不同参数,可从同一网络密钥 生成多种不同的安全材料。这些安全材料用于不同的目的。除某些特殊情况外,所有通过与其相关联的子网 发送的信息都使用蓝牙 网络密钥 网络泛洪 材料。例如,友谊 安全材料用于保护友节点及其附属低功率节点交换的 PDU。
为了向中继节点表明应使用Bluetooth Mesh 定向转发,网络 PDU 由路径原点用安全材料(称为定向安全材料)加以保护。
蓝牙网格网络泛洪 和蓝牙网格定向转发安全材料的计算公式如下:
管理的网络泛洪 安全材料
NID || EncryptionKey || PrivacyKey = k2(NetKey, 0x00)
定向转发安全材料
NID || EncryptionKey || PrivacyKey = k2(NetKey, 0x02)
可以看出,两个公式只有第二个参数值不同。函数 k2 在蓝牙™ 网格协议规范中有所定义。
2.2.9 车道设置与车道使用
当发布访问消息 并选择蓝牙网格定向转发作为传送方式时,路径上所有车道上的所有节点均可使用。该信息由路径原点广播,并由路径上和范围内的每个蓝牙网格定向转发中继节点 转发,而不论其在路径发现和建立过程中被认为位于哪条车道。增加线路实际上只是在形成和服务 路径的节点集合中增加了节点,当用于传送接入信息时,线路之间的区别就不再重要了。这样做有一个好处。
路径创建程序可确定节点序列,这些节点可服务 从路径原节点到一个或多个路径目标节点的信息传送。节点序列是在发现和建立程序的一次或多次迭代中确定的,每次迭代都按顺序执行。我们可以把每条线路想象成包含不同的节点序列集,为相同的源节点和目的地提供服务。但如前所述,当蓝牙网格定向转发用于发送访问消息时,这种区别就不复存在了。路径上的车道作为一组更大的节点运行,这些节点能够将消息转发到其目的地。因此,在传递访问消息 时,可能会有比路径发现和建立过程中明确识别的更多不同的节点序列。
图 11 - 传输访问信息时使用的路径
图 11 描述了一条从节点 A 到节点 J 的路径。需要两条线路,发现和建立程序确定了节点序列 A/D/E/J 和 A/X/W/F/G/J 。但节点 D 和 X 处于彼此的范围内,因此当 A 发布一条发给 J 的信息时,Bluetooth Mesh ,信息副本也可能沿着 A/D/E/J 和 A/X/W/F/G/J 中的任一线路传输。D/X/W/F/G/J或A/X/D/这意味着冗余度更大,因此多线路径的可靠性也比乍看之下更高。
2.2.10 节点依赖性
节点依赖的概念描述了不同类型节点之间的关系,其中一个节点作为支持节点,为一个或多个其他依赖节点提供服务 。例如,好友节点充当低功率节点的支持节点,而低功率节点则是这种关系中的从属节点。好友节点 为依附的低功率节点提供服务 ,充当向它们发送信息的临时存储空间。低功耗节点在方便的时候从好友那里收集这些信息,从而通过减少无线电活动来节约电能。
在蓝牙™ 网状网络协议规范 1.1 版中,节点依赖已成为一个适用范围更广的概念,可在多种情况下应用于蓝牙网状网络定向转发。从本质上讲,为从属节点提供定向转发服务 支持节点将确保所有来自从属节点的信息在中继时使用定向安全材料进行保护,并代表从属节点执行所需的定向转发程序。
支持节点的转发表包含从属节点元素的地址列表,并在代表从属节点执行的所有Bluetooth Mesh 定向转发操作(包括执行Bluetooth Mesh 定向转发程序)中充当路径原点。
代理节点和Bluetooth Mesh 定向转发
代理功能涉及一个代理客户端和一个 代理服务器.代理服务器通常使用 代理协议通过GATT承载层 ,代理服务器向网络中的其他节点发送和接收网格 PDU。代理服务器客户端通常是智能手机、桌面或网络应用程序。
代理服务器 实现了一个 GATT服务 ,其中包含两个 GATT 特性:网状物代理数据输入和网状物代理数据输出。代理客户端 将代理 PDU 写入网格代理数据输入 特性 ,并接收 PDU 作为 GATT 通知。
代理服务器 可能支持蓝牙网格定向转发(Bluetooth Mesh Directed Forwarding),如果支持,则表示定向代理 状态 (Directed Proxy 状态 )存在且值为启用。
代理服务器 的行为会因不同的连接而异,这取决于许多参数。客户端 代理服务器首次连接到定向代理服务器时,会收到一条名为 DIRECTED_PROXY_CAPABILITIES_STATUS 的代理配置消息 。该信息显示当前适用于连接的蓝牙 Mesh 定向转发参数,由两个字段组成。Directed_Proxy表示代理服务器是否启用了定向代理功能。Use_Directed(使用定向)表示蓝牙 Mesh 定向转发(客户端 Mesh Directed Forwarding)是否将用于此连接上的代理服务器信息。
代理客户端可通过发送 DIRECTED_PROXY_CONTROL 消息,对定向代理服务器 的行为进行一定程度的控制。它包括 Use_Directed 字段,这样代理客户端 就能通知代理服务器 ,它应为该客户端 发送的信息使用蓝牙 Mesh Directed Forwarding。如果 Use_Directed 字段的值为enabled,则信息还必须包含一个名为 Proxy_Client_Unicast_Addr_Range 的可选字段。该字段包含代理服务器必须使用蓝牙网格定向转发的单播地址 范围。
代理客户端可直接或间接使用Bluetooth Mesh 定向转发。
要直接使用蓝牙 Mesh 定向转发功能,代理客户端 要用定向安全材料保护信息,向代理服务器 表明它必须充当定向中继节点。
要间接使用它,客户端 需要利用由其支持的定向代理服务器提供的服务 。信息由蓝牙网状网络泛洪 的网络泛洪 材料保护,只要代理服务器 启用了定向转发,并存在通往目的地 地址的路径、代理服务器 将使用蓝牙网格定向转发功能,代表从属客户端发送信息。
友谊和蓝牙网格定向转发
好友节点可充当定向好友,并以与代理节点类似的方式向相关低功耗节点提供蓝牙网格定向转发服务 。如果定向控制 状态 Control 状态)中启用了该功能,则好友将充当定向好友。在这种情况下,好友节点 将尽可能使用蓝牙网格定向转发功能转发来自其低功耗节点的信息,并在必要时执行蓝牙网格定向转发程序。例如,如果一个低功耗节点要向一个地址 发送信息,而好友的转发表中目前没有列出该地址 的路径,那么好友将创建一个路径原点状态 状态 的实例,并启动蓝牙网格定向转发初始化程序。要使用这一功能,低功耗节点必须使用友谊 安全材料来发送信息。
3.关闭
蓝牙™ 网状定向转发功能 提高了网络内共享无线电频谱的使用效率,从而增强了网络的整体可扩展性。蓝牙网格定向转发路径的自动创建和维护使网络规划和配置变得更加容易。