Bluetooth® Mesh 定向转发

技术概览

发布 : 1.0.0
文件版本 :   1.0
最后更新 : 2023 年 9 月 19 日
作者 :   

马丁-伍利Bluetooth SIG
Szymon Slupik 和 Piotr Winiarczyk,SILVAIR Inc.

修订历史

Version

Date

Author

Changes

1.0.0

September 19, 2023

Martin Woolley, Bluetooth SIG
Szymon Slupik and Piotr Winiarczyk, SILVAIR Inc.

Initial version

 

备注

Bluetooth Mesh 配置文件 规范已更名,现称为Bluetooth Mesh 协议规范。本文件和相关文件在提及 1.1 版规范时将使用这一名称,但在提及 1.0 版规范时,仍将继续称其为Bluetooth Mesh 配置文件规范。

 

1.背景情况

定向转发是在Bluetooth® Mesh 协议规范的 1.1 版本中引入的。要充分了解Bluetooth Mesh 定向转发的功能和优势,有必要了解Bluetooth Mesh 1.0 版的某些方面。本节提供了相关的背景信息,为研究Bluetooth Mesh 定向转发功能提供支持。

1.1 多跳和多路径信息传输

Bluetooth® Mesh 网络的一个显著特点是,即使设备之间不在直接的无线电范围内,它们也能进行通信。网络中的设备(称为节点)通过向目标地址发送信息进行通信,如有必要,信息将在网络中跳转,直至到达目的地,这一过程称为中继。信息最多可跳转 126 次,从而使网络能够覆盖建筑物内部、周围和之间的大片区域。

同一信息的副本可以同时通过不同的路径在网络中传输,第一个到达的副本将被处理,随后到达的副本将被丢弃。这种多路径功能为网络提供了冗余,即使网络中一个或多个必要的中继节点(见 1.2)无法使用,信息仍可送达。

一个精心设计的Bluetooth Mesh 网络将利用多路径传输作为确保网络通信可靠的策略之一。

1.2 节点功能

例如,LED 灯可以根据从其他设备(如开关和旋转控制器)接收到的信息,开启或关闭LED 灯,并改变其亮度或颜色。

Bluetooth Mesh 定义了节点可能具有的四种特殊功能。如表 1 所示。

表 1 - 节点功能

特征

说明

继电器

启用了中继功能的节点可以重新传输它从附近其他设备听到的信息。中继是一种允许信息跳过中间中继设备到达目的地的机制。多路径传送是通过确保发送节点处于多个中继节点的范围内来实现的,这样每个节点都能听到来自相邻节点的信息,并且每个节点都会转发这些信息。

朋友

朋友是典型的高功率设备。它们为相关的低功耗节点(LPN)提供存储和转发服务 。

低功耗节点

LPN 只在发送信息或与相关节点通信时偶尔启动无线电,以询问友节点是否临时存储了 LPN 的信息,并接收已存储的信息,从而节省电能。

代理

代理节点允许无法使用Bluetooth Mesh 广告承载的Bluetooth®低能耗 (LE) 设备通过与代理的点对点连接,使用 GATT 程序发送和接收mesh 信息。代理节点通常用于允许专门开发的智能手机应用程序充当图形用户界面,以监控mesh 网络中的节点。

 

1.3Bluetooth Mesh 管理洪水

不受控制的泛洪是某些无线网络技术中使用的一种技术,包括节点重新传输收到的每一条信息,从而使信息传播到网络中的每一个节点。这是一种简单的方法,但可能效率不高,浪费无线电频谱和节点处理时间与功率。

Bluetooth® Mesh 1.0 用于中继信息的机制称为Bluetooth Mesh Managed Flooding。只有选定的节点才能启用中继功能。此外,这些节点会根据节点的信息缓存和称为 "生存时间(TTL)"的协议数据单元(PDU)字段的值,重新传输它们收到的某些信息,这取决于同一信息是否已被重新传输。

TTL 限制了信息中继的跳数或信息从源头发出的辐射距离。想象一下,在一间办公室的大厅里有一组Bluetooth Mesh 照明开关。其中一个开关控制一楼的所有照明节点,而另一个开关只控制大厅里的照明。如果大厅里的所有照明节点都在大厅电灯开关的直接无线电范围内,那么就根本不需要转发这些信息。与此相反,如果要与本楼层大厅外的其他照明灯连接,则可能需要 2 跳。第一个开关在发送信息时会将 TTL 设置为 0,表示不需要进行中继。第二个开关会将 TTL 设置为 3,这样就能确保有足够的中继次数到达大厅外更远的灯光。在每种情况下,TTL 都在优化中继功能,确保信息不会中继到大楼内与之无关的区域,并确保信息从源头向外传播,就像石头掉进水里产生的波浪一样。

在Bluetooth® Mesh 网络中,通常不会有超过 5% 的节点充当中继站,这与使用不受控制的泛洪并产生大量不必要流量的网络形成鲜明对比。

1.4Bluetooth Mesh 管理洪水的局限性

与Bluetooth Mesh 受管泛洪相比,在某些情况下,更精确地控制由哪些节点转发信息更有优势。请考虑以下情况:

1.4.1 相邻楼层

2108 近期改进 IMGMesh

无线电传输是在三维空间中进行的。因此,Bluetooth® Mesh 信息可能会被发信楼层上下两层的节点接收,如果信息只发送给与发信节点在同一楼层的节点,这种情况可能并不理想。例如,电灯开关通常只用于控制同一楼层的电灯,开关发出的信息被其他楼层的节点听到,并可能被这些相邻楼层的中继器重新传输,这种情况是没有价值的。

1.4.2 仅锁定房间一侧的设备

想象一下,在一个大型会议厅的一端和另一端的舞台之间,墙壁上有一组电灯开关。其中一个开关控制舞台上方的照明,而信息需要通过一跳来传递到所有开关。

在图 1 所示的网络中,我们在开关的范围内设置了两个中继器,这对于让同一面板上的其他开关到达它们必须控制的所有灯光节点来说是必要的。当使用舞台灯光开关时,信息将被传输,由两个中继器接收并重新传输,因此信息在网络中既可以向目标灯光传输,也可以远离目标灯光。

图1

图 1 - 带有舞台灯光和多个中继节点的会议厅

图2

图 2 - 电灯开关广播开/关信息

图3

图 3 - 两个中继器接收信息并都进行重传

这是一种浪费,因为离舞台最远的继电器并不参与从开关到舞台灯光的信息传递,因此最好不要参与。

1.5 信息传送能力和可扩展性

当一个设备传输信息时,它会在一段时间内使用一个无线电信道。与第一个设备处于同一范围内的另一个设备如果同时在同一信道上传输信息,就会造成碰撞。因此,在一个所有设备都在彼此范围内的网络中,信息传输容量是有限的,因为所有传输的信息都要在一段时间内使用无线电信道,而且每次只能安全地使用一个信道。

每条信息消耗的时间很短,Bluetooth® Mesh 使用三个无线电信道。但容量仍然有限,最终将成为网络可扩展性的限制因素。

1.6Bluetooth Mesh 洪水管理评估

Bluetooth Mesh 管理泛洪是一种通过网络传播信息的系统。它通过多跳能力提供范围和区域覆盖,在设计适当的网络中,通过精心布置的中继器,它还能通过多路径中继行为提供冗余。

信息缓存和 TTL 参数的使用允许对信息的传输距离进行一定程度的控制,从而提供一定程度的优化。中继器之间是完全独立的,这意味着在设备移动等情况发生变化时,不存在必须维护的依赖关系或配置设置。在大多数情况下,Bluetooth Mesh Managed Flooding 是一种适用的解决方案,几乎不需要维护。

虽然 TTL 可用来限制信息的跳数,但它无法控制信息在网络中的走向。Bluetooth Mesh 管理灌水会导致信息在网络中向各个方向扩散,因此可能会浪费网络中有限的信息容量,而信息却与网络无关。

在一些网络设计方案中,Bluetooth Mesh 受管泛洪并不能提供我们想要的最高效的网络利用率,在某些情况下,这会限制可扩展性。

这也是Bluetooth Mesh Directed Forwarding 功能的主要动机,该功能是在Bluetooth Mesh Feature Enhancements Version 1.1 版本中引入的。

2.关于Bluetooth Mesh 定向转发

本节回顾Bluetooth Mesh 定向转发功能。

2.1 能力和优势

2.1.1 提高利用率,增强可扩展性

Bluetooth Mesh 定向转发允许建立这样一个网络,即只有那些能够参与将信息导向目的地的节点才会这样做。相反,使用Bluetooth Mesh Directed Forwarding 的节点将忽略任何它无法协助其发送的信息。

在发起或转发信息时能够使用Bluetooth Mesh 定向转发的节点称为Bluetooth Mesh 定向转发节点。能够使用Bluetooth Mesh 定向转发中继信息的节点称为Bluetooth Mesh 定向转发中继节点。 Bluetooth Mesh 定向转发中继总是Bluetooth Mesh 定向转发节点,但Bluetooth Mesh 定向转发节点可能是也可能不是Bluetooth Mesh 定向转发中继。使用哪个术语通常取决于上下文。

图 4 显示,在会议厅示例中,来自舞台照明灯开关的信息只会由Bluetooth Mesh 定向转发中继节点之一转发,因为它能够将这些信息传送到预定目的地。相反,开关范围内的另一个定向转发中继节点则会忽略这些信息。请注意,在这种情况下,电灯开关充当Bluetooth Mesh 定向转发 节点

图4

图 4 -Bluetooth Mesh 定向转发

2.1.2 更便捷的网络设计和调试

在设计和设置(调试)仅使用Bluetooth Mesh 受管泛洪来传播信息的大型Bluetooth® Mesh 网络时,可能需要仔细考虑要配置多少节点来充当中继站以及将它们放置在何处等问题。如果充当中继站的节点过多,网络中产生的流量就会超过需要,发生碰撞的风险就会更高,可扩展性也会受到限制。如果充当中继站的节点太少,可能会出现某些节点无法到达或设计中缺乏冗余的通信问题。

启用Bluetooth Mesh Directed Forwarding 只需在网络调试时做少量工作。所有节点都可以配置为使用Bluetooth Mesh Directed Forwarding,只需设置一套简单的Bluetooth Mesh Directed Forwarding 策略参数,系统就会自我维护和自我优化所需的通信路径。

2.2 技术要点

2.2.1Bluetooth Mesh 定向转发配置服务器模型

引入了一个新的基础模型,称为Bluetooth Mesh 定向转发 配置服务器模型。它包括一个名为 "定向控制"的复合状态,其中包含许多子状态,如Bluetooth Mesh 定向 转发状态和定向中继状态。这些状态分别表示并控制Bluetooth Mesh 定向转发和定向中继功能是否启用。鉴于这两种功能之间的关系,定向中继状态与Bluetooth Mesh 定向转发状态绑定,因此如果定向转发功能被禁用,定向中继功能也将被禁用。

Bluetooth Mesh DirectedForwarding Configuration Server定向转发 配置服务器)模型的存在与否决定了节点是否有可能使用Bluetooth Mesh Directed Forwarding(定向转发)。定向控制状态的值决定了Bluetooth Mesh 定向转发功能的启用或禁用。

2.2.2 路径

Bluetooth Mesh 定向转发中继节点只选择性地参与某些信息的重传,而不参与其他信息的重传,这涉及路径和车道的概念。应该注意的是,在Bluetooth® Mesh 配置文件 的 1.0 版本中,路径一词是非正式使用的。在Bluetooth Mesh Directed Forwarding(定向转发)中使用时,路径具有更具体的含义:

路径是一组节点,它们可以参与使用Bluetooth Mesh Directed Forwarding 将信息从源地址转发到特定子网上的目的地址。

路径的源节点总是一个节点,由单播地址标识。在Bluetooth Mesh 定向转发中,源节点被称为路径原点

路径的目的地是一个或多个节点的集合,具体取决于所使用的地址类型。单播地址、组地址和虚拟地址都是路径目的地的有效标识符。如果目的地由组地址或虚拟地址标识,那么订阅该地址的节点就称为路径目标。因此,在Bluetooth Mesh 定向转发语言中,一条路径有一个路径原节点和一个或多个路径目标节点。

Bluetooth Mesh 定向转发节点知道自己属于哪条路径,但对服务 相同路径上的其他节点一无所知,包括在信息转发序列中可能在其之前或之后的节点。这就确保了系统避免了复杂的配置依赖关系,而这种关系会使网络维护变得困难、耗时或昂贵,因此,Bluetooth Mesh Directed Forwarding 保留了更简单的Bluetooth Mesh Managed Flooding 方法的优点之一。

以下是一些插图。图 5 提供了所用图标的关键字。

图5

图 5 - 插图说明

图 6 显示了一个简单的Bluetooth Mesh 定向转发路径,一个灯具开关作为路径原点,一个灯具作为唯一的路径目标节点。

图片6

图 6 - 只有一个目标节点的路径

图 6 中的红色图标代表Bluetooth Mesh 定向转发中继节点,它们是交换机节点到照明节点路径的一部分,照明节点订阅了交换机使用的发布地址。交换机发布开/关信息时,路径上的红色节点和不在路径上的相邻定向中继节点(紫色)都会收到。红色节点知道自己在所需路径上,因此使用Bluetooth Mesh 定向转发功能转发信息。紫色节点知道自己不在这条路径上,因此立即丢弃开/关信息。这就防止了信息进一步传播到与信息无关的网络部分。

组地址和虚拟地址可能而且通常由不止一个节点订阅。目的地为组地址的路径通常会有一个以上的路径目标节点。图 7 举例说明了在一个灯具开关和一个大礼堂边上的一系列灯具之间提供通信服务的路径,所有这些灯具都订阅了该路径的组地址。

图片7

图 7 - 具有多个目标节点的路径

交换节点再次发布开/关信息,范围内的所有Bluetooth Mesh 定向转发中继器都会收到该信息。只有那些知道自己处于从交换节点的单播地址(路径原点)到订阅了路径组目的地址的节点(路径目标节点)的路径上的节点才会重新传输信息。不在该路径上的其他Bluetooth Mesh 定向转发节点将丢弃报文。显然,Bluetooth Mesh Directed Forwarding(定向转发)在此类情况下可显著提高效率。

后面的章节将讨论如何创建和维护路径。

相比之下,图 8 显示的是交换机向群组地址发布的同一信息,但使用Bluetooth Mesh 托管泛洪中继进行传递,TTL 值为 4,以确保信息有足够的跳数到达所有目标节点。

图片8

图 8 -Bluetooth Mesh 洪水管理

为了便于比较,这里并排重复图 7 和图 8:

图片7

Bluetooth Mesh 定向转发

图片8

Bluetooth Mesh 洪水管理

 

2.2.3 可靠性

路径已被描述为一组节点,为源地址、目的地址和子网提供Bluetooth Mesh 定向转发服务 。结合图 6 和图 7,我们可以看出,当用于传递信息时,路径通常由若干节点序列组成,信息副本在沿路径转发到网络不同部分的不同目标节点时会经过这些节点

但如果其中一个或多个节点序列中断了呢?显然,如果路径中某个节点序列中的一个定向中继节点由于某种原因没有处理信息,那么路径的这一部分将无法向目标节点的子集发送信息。在如图 7 所示的情况下,这意味着房间某处的灯将无法响应开关发送的信息。

所有Bluetooth® Mesh 节点的部分时间用于传输信息,部分时间用于等待接收其他节点的传输信息(一次监听一个无线电信道),其余时间处于空闲状态。如果一个节点正在发送信息或处于空闲状态,那么在这段时间内它将无法接收相邻节点发送的信息。如果节点监听的无线电信道与传输 PDU 的信道不同,则也无法接收信息。

节点可接收信息的时间比例称为RX 占空比,用百分比表示。建议mesh 产品在设计和配置时尽可能提高 RX 占空比,但永远不会达到 100%。因此,节点总是有可能接收不到 PDU。这是Bluetooth Mesh 网络运行的一个预期方面,也是Bluetooth Mesh 技术所设计的随机方法的一个基本特征。

Bluetooth Mesh 节点通常在三个不同的无线电信道上快速连续地传输信息副本。此外,节点通常被配置为多次重复多信道传输过程。多无线电信道的使用有助于降低数据包碰撞的风险,而多次重复传输信息可将目标接收者错过信息的概率降至很低。这样,通过利用一些影响节点间成功通信概率的变量,Bluetooth Mesh ,提供了可靠的通信,而不会像其他方法那样普遍存在协议和配置复杂的问题。

Bluetooth Mesh 定向转发在网络层使用多无线电信道和 PDU 重传的方式与其他报文传送方案相同,因此具有相同的可靠性优势。但是,节点序列不可用或不工作还可能有其他原因。例如,节点可以断电,也可以移动到新的位置。Bluetooth Mesh 定向转发(Directed Forwarding)为mesh 网络设计人员提供了额外的功能,以确保网络的可靠性。这一功能就是多线路Bluetooth Mesh 定向转发 路径

2.2.4Bluetooth Mesh 定向转发路径弹性和车道

Bluetooth Mesh 定向转发功能定义了车道的概念。Bluetooth Mesh 定向转发路径由一个或多个车道组成。

车道是一组节点,可为源地址、目的地址和子网提供Bluetooth Mesh 定向转发服务 。

这个非正式的定义大家应该已经很熟悉了,在 2 中它被用来描述一条路径。这并不是一个错误。通常可以选择不同的节点序列,将信息从源头中继到目的地。车道是一组特定的节点序列,可以提供Bluetooth Mesh 定向转发服务 ,为了最大限度地提高路径可靠性,可以对节点进行配置,以便在以其为路径原点创建路径时,建立一条包含多条车道的路径。

请看下面与图 9 一起重复的图 6。

图片6图 6 - 单车道路径

图9

图 9 - 有两条车道的相同路径

 

图 6 显示了一条包含单通道的路径,用于将信息从交换机定向转发到照明节点。图 9 显示了一条等效路径,提供指向同一源地址和目标地址的定向转发服务 ,但已建立了两条车道。图 9 所示的网络比图 6 所示的网络更可靠,因为它包含了多种可能的Bluetooth Mesh 定向转发中继器序列形式的冗余,可以将信息传送到目的地。不过,它将在网络中产生更多的总流量。

2.2.5 路径指标和车道选择

通常会有不止一个Bluetooth Mesh 定向转发中继器序列可以服务 一条路径,因此定义了一种基于路径度量系统的方法,用于在创建路径时对可用节点序列进行排序。

Bluetooth® Mesh 协议规范的 1.1 版定义了一种路径度量类型,但也为将来在系统中添加其他类型的度量做了准备。在此版本中,定义的路径度量类型称为节点计数度量。这是一种简单而有效的方法,用于衡量特定节点序列与其他节点序列相比,在构成路径的一部分时有多大的吸引力。

节点计数度量的是信息到达中间中继节点或目标节点必须经过的中继跳数与该节点所属的车道数(属于该路径)的总和。这样,在程序的每次迭代中,现有通道的吸引力都会降低,从而产生新的通道。

在创建路径和通道时会使用路径指标,但在使用Bluetooth Mesh Directed Forwarding(定向转发)通过网络转发mesh 访问报文时不会使用路径指标。接下来将探讨如何创建路径和通道,以及路径指标在这一过程中的作用。

2.2.6 创建路径和车道

路径要么是使用配置管理器工具手动创建的,要么是通过执行一系列自动程序动态发现和建立的。手动创建的路径称为固定路径 ,动态创建的路径称为非固定路径。

Bluetooth Mesh 定向转发配置服务器模型包括一个称为发表的重要状态。转发表中的条目表示节点所属的路径,在创建固定路径时需要手动更新转发表。

每个Bluetooth Mesh 定向转发节点还有一个称为 "发现表"的数据结构。在自动路径发现过程中,会在此表中创建临时条目,以帮助识别构成路径车道的节点序列。

当Bluetooth Mesh 定向转发(Directed Forwarding)用于将信息从源地址传送到目的地址,但源节点的转发表中没有相关条目时,就会创建非固定路径。

必须执行Bluetooth Mesh Directed Forwarding Initialization(定向转发初始化)、Bluetooth Mesh Directed Forwarding Discovery(定向转发发现)和Bluetooth Mesh Directed Forwarding Establishment(定向转发建立)三个程序才能创建路径。

路径的创建和维护受一系列计时器和状态值的控制,这些计时器和状态值与一个名为 "路径起源状态机"(Path Origin State Machine)的状态机有关。顾名思义,这个重要的复合状态是在Bluetooth Mesh 定向转发初始化期间由路径起源节点创建的。在Bluetooth Mesh 定向转发初始化过程中还会分配一个称为转发号码的标识符,所有与一系列初始化、发现和建立程序相关的控制信息都具有相同的转发号码值。

创建路径原点状态机并启动路径发现计时器后,路径原点发送 PATH_REQUEST 控制报文。该报文的 DST(目的地址)字段被设置为一个新的固定组地址,即 all-directed-forwarding-nodes。PATH_REQUEST 消息包含另一个名为 "目的地 "的字段,该字段被设置为路径目标地址,可以是单播地址、组地址或虚拟地址。

Bluetooth Mesh 在定向转发发现过程中,PATH_REQUEST 信息从路径原点发送,然后由接收到该信息的每个Bluetooth Mesh 定向转发中继站重新生成并再次广播。这样,网络中的所有定向转发中继器最终都会收到 PATH_REQUEST 信息。

节点接收到的 PATH_REQUEST 接收信号强度指示器(RSSI)低于配置阈值时,将丢弃该信息。这样就能确保不会使用弱无线电链路创建路径。

当 PATH_REQUEST 报文的副本沿着不同节点序列跳转时,报文中会保留一个路径度量值,以便在发现过程中跟踪到达每个节点的成本。

节点首次收到转发号码的 PATH_REQUEST 消息时,会在其发现表中创建一个条目。该条目包括要创建的路径的标识和路径度量,路径度量代表与这次从路径原点到该节点的节点序列相关的成本。此外,对于Bluetooth Mesh Directed Forwarding(定向转发 建立程序而言,重要的是,在此特定节点序列中位于该节点之前的节点的单播地址也存储在名为 Next_Toward_Path_Origin 的字段中。

当节点收到 PATH_REQUEST 信息时,如果在同一发现过程中已通过另一个节点序列访问过该节点,则会查询发现表,以确定此次 PATH_REQUEST 信息所采用的节点序列是否优于迄今发现的最佳节点序列。如果该 PATH_REQUEST 实例所采用的序列的路径度量值低于发现表中记录的值,则更新发现表条目,在 Next_Toward_Path_Origin 中加入新序列中前一个节点的单播地址和新的较低路径度量值。这样,在发现过程中访问的每个节点的发现表中,都会保留一条最佳节点序列记录,该记录用路径标识符、路径度量值和序列中前一个节点的单播地址来表示。

当 PATH_REQUEST 报文到达路径目标节点(任何订阅了目的地字段中地址的节点)时,一个称为路径应答计时器的定时器就会启动。定时器到期后,Bluetooth Mesh 定向转发建立过程开始。该过程会添加或更新发表中的一个条目,以记录该节点是该路径新发现车道的一部分这一事实。然后,向发现表项的 Next_Toward_Path_Origin 字段中包含其单播地址的节点发送 PATH_REPLY 消息。PATH_REPLY 消息会通过所选节点序列中的中间中继向路径原点节点跳回,在此过程中创建或更新转发表项,直到消息到达路径原点。

每个被访问节点上运行的路径发现定时器实例将在路径建立过程结束前到期,届时每个节点发现表中的相关条目将被删除。被选中的每个节点上的转发表现在都将包含一个已建立路径的条目,其作用只是表明这些节点中的每个节点都为该路径提供服务。需要注意的是,转发表中不包含序列中下一个或上一个节点的数据。前一个节点的地址只在建立路径时才需要,因此只临时存储在发现表中。

图10

图 10 -Bluetooth Mesh 定向转发发现和建立

总之,路径发现涉及 PATH_REQUEST 消息从路径原点开始,经过网络中每一个可能的Bluetooth Mesh 定向转发节点序列。程序执行时,每个节点的发现表中都会记录迄今为止发现的最佳序列的路径度量值。从路径目标节点开始,通过 PATH_REPLY 消息追溯通往该节点并产生最佳路径度量值的节点序列,这些消息仅使用保存在发现表中的 Next_Toward_Path_Origin 单播地址沿该序列中的节点跳转,直至到达路径原点节点,此时可以说所需路径的单行线已经建立。

图 11 以 PATH_REQUEST 和 PATH_REPLY 报文在网络中的传输过程为例,说明了从交换机(绿色图标)到单灯节点(黄色图标)之间创建路径的发现和建立过程。

名为 "想要的车道 "的配置状态显示了一条路径应该有多少车道。在路径起始节点,当路径发现 计时器到期时,将根据迄今为止建立的车道数检查 "想要的车",如有必要,将再次执行发现和建立程序。在这些程序的每次后续迭代中,一个称为 "车道计数器 "的字段都会递增,如果 PATH_REQUEST 报文被一个已经拥有该路径转发表项的节点处理,则 "车道计数器 "会被添加到路径度量值中。这样,在路径发现的每次迭代中,被重新访问的先前建立的车道的相关度量值将逐步提高。这将导致其他节点序列相对于已建立的车道更具吸引力,并最终被选中。此外,按照路径度量系统的工作方式,不相交的车道通常会更受青睐。

2.2.7 监控和维护路径

网络会发生变化,因此需要对路径及其通道进行维护。为此,需要使用一些与自动路径维护有关的程序和计时器。

所有非固定路径都有一个有限的生命周期,该生命周期在配置状态中定义。支持的值有 12 分钟、2 小时、24 小时和 10 天。路径的默认寿命为 24 小时。

固定路径会一直存在,直到使用配置管理器程序删除为止。

路径寿命

非固定路径的生命周期通过一个名为 "路径生命周期定时器 "的定时器来管理,该定时器被设置为配置的路径生命周期状态值,并在路径建立期间在每个节点上初始化。计时器到期后,路径上的每个节点都会删除路径的转发表项。下次需要时,将重新创建路径。

路径监控

路径起源状态机与特定的Bluetooth Mesh 定向转发目的地相关联,并定义了许多计时器和状态,包括路径监控计时器路径需要状态。路径需要状态用于跟踪路径是否被路径原点使用。

路径监控在一定的配置时间间隔内进行。

路径监控计时器 到期时,如果路径监控显示仍需要该路径,则会执行Bluetooth Mesh 定向转发 初始化程序,以便根据网络现状刷新路径。如果不需要,则会在路径寿命计时器到期时删除路径。

路径监控可识别和删除不再需要的路径。

路径验证

Bluetooth Mesh 定向转发 回音程序是另一种由定时器驱动的程序。路径原节点在建立路径时会设置路径回音计时器。定时器到期后,路径起源节点会向路径的目的地址发送 PATH_ECHO_REQUEST 消息。PATH_ECHO_REQUEST 会转发到路径目标节点。目标节点收到 PATH_ECHO_REQUEST 后,会向路径原点发回 PATH_ECHO_REPLY。如果路径原点在配置的时限内收到该信息,则表示路径有效。如果路径原点没有收到回音回复,则会使路径失效,并导致路径从路径原点的转发表中删除。

使用Bluetooth Mesh Directed Forwarding echo 程序进行路径验证,检查路径是否仍然有效。

订阅变更

如果Bluetooth Mesh 定向转发节点订阅了新地址,或如果低功率节点等从属节点(见 )订阅了新地址,则会执行Bluetooth Mesh 定向转发请求过程。该程序会更新路径,将该节点包括在内,成为路径中的另一个目标节点。

自我组织与优化

监控和维护程序可确保自动识别和重建中断的路径。这是Bluetooth® Mesh 网络组织行为的一个例子。

在建立路径时,指标用于选择最佳可用节点序列。但是,随着涉及节点的线路增多,该节点可能不再是其支持的一条或多条路径的最佳选择。因此,在路径生命周期结束时定期删除路径,然后重新建立路径,这意味着就路径指标而言,路径及其通道始终是最佳的。Bluetooth Mesh 定向转发路径是组织 优化的。 

2.2.8 存取信息

访问报文是作为客户机和服务器模型的一部分定义的报文类型,它作用于模型的状态值。访问消息可通过Bluetooth Mesh 受管泛洪(Managed Flooding)或Bluetooth Mesh 定向转发(Directed Forwarding)在网络上传递。定向发布策略状态表明应使用这两种方法中的哪一种。

所有访问信息都在网络层使用由加密密钥和隐私密钥组成的安全材料进行加密。使用的安全材料由 NID 字段标识。使用 k2 安全函数的不同参数,可以从同一个 NetKey 生成多种不同的安全材料。这些安全材料用于不同的目的。Bluetooth Mesh 受管泛洪 材料用于通过与其 NetKey 相关联的子网发送的所有信息,某些特殊情况除外。例如,友情安全材料用于保护友节点及其依赖的低功率节点交换的 PDU。

为了向中继节点表明应使用Bluetooth Mesh 定向转发,网络 PDU 由路径原点用安全材料(称为定向安全材料)加以保护。

Bluetooth Mesh 受管泛洪和Bluetooth Mesh 定向转发安全材料的计算公式如下:

有管理的防洪安全材料

NID || EncryptionKey || PrivacyKey = k2(NetKey, 0x00)

定向转发安全材料

NID || EncryptionKey || PrivacyKey = k2(NetKey, 0x02)

可以看出,两个公式只有第二个参数值不同。函数 k2 定义于Bluetooth® Mesh 协议规范。

2.2.9 车道设置与车道使用

当发布接入信息并选择Bluetooth Mesh 定向转发作为传送方法时,可使用路径中所有线路上的所有节点。信息由路径原点广播,并由路径上和范围内的每个Bluetooth Mesh 定向转发中继节点转发,而不论其在路径发现和建立过程中被认为位于哪条线路。增加通道实际上只是在形成和服务 路径的节点集合中增加了节点,当用于传递访问信息时,通道之间的区别就不再重要了。这样做有一个好处。

路径创建程序可确定节点序列,这些序列可服务 从路径起始节点向一个或多个路径目标节点传送信息。节点序列是在发现和建立程序的一次或多次迭代中确定的,每次迭代都按顺序执行。我们可以把每条路径想象成包含不同的节点序列集,为相同的源节点和目标节点提供服务。但如前所述,当Bluetooth Mesh 定向转发用于传送接入信息时,这种区别就不复存在了。路径上的车道作为能够将信息转发到目的地的单个较大节点集运行。因此,在传送接入信息时,可能会有比路径发现和建立过程中明确识别的更多不同的节点序列。

图11

图 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 节点依赖性

节点依赖的概念描述了不同类型节点之间的关系,其中一个节点作为支持节点,为一个或多个其他依赖节点提供服务 。例如,友节点充当低功率节点的支持节点,而低功率节点则是这种关系中的从属节点。友节点通过临时存储发给低功率节点的信息,为其提供服务 。低功耗节点可在方便时从好友节点收集这些信息,从而通过减少无线电活动来节约电能。

在Bluetooth® Mesh 协议规范的 1.1 版中,节点依赖已成为一个适用范围更广的概念,可在多种情况下应用于Bluetooth Mesh 定向转发。从本质上讲,为从属节点提供定向转发服务 的支持节点将确保所有来自从属节点的信息在转发时使用定向安全材料进行保护,并代表从属节点执行所需的定向转发程序。

支持节点的转发表包含从属节点元素的地址列表,并在代表从属节点执行的所有Bluetooth Mesh 定向转发操作(包括执行Bluetooth Mesh 定向转发程序)中充当路径原点。

代理节点和Bluetooth Mesh 定向转发

代理功能涉及代理客户端代理服务器。代理客户端通常在 GATT 承载上使用代理协议,通过代理服务器向网络中的其他节点发送和接收mesh PDU。代理客户端通常是智能手机、桌面或网络应用程序。

代理服务器实现了一个 GATT服务 ,其中包含两个 GATT 特性:mesh proxy data in(代理数据输入)和mesh proxy data out(代理数据输出)。代理客户端将代理 PDU 写入mesh 代理数据输入特性,并接收 PDU 作为 GATT 通知。

代理服务器可能支持Bluetooth Mesh Directed Forwarding(定向转发),如果支持,则表示定向代理状态已存在且值为启用

代理服务器的行为会因不同的连接而异,取决于许多参数。代理客户端首次连接定向代理服务器时,会收到一条名为 DIRECTED_PROXY_CAPABILITIES_STATUS 的代理配置信息。该信息显示当前适用于连接的Bluetooth Mesh 定向转发参数,由两个字段组成。Directed_Proxy表示代理服务器是否启用了定向代理功能。Use_Directed表示Bluetooth Mesh Directed Forwarding 是否将用于此连接上的代理客户端报文。

代理客户端可以通过发送 DIRECTED_PROXY_CONTROL 消息,对定向代理服务器的行为进行某些控制。它包括 Use_Directed 字段,这样代理客户端就可以通知代理服务器,它应该对该客户端发送的报文使用Bluetooth Mesh Directed Forwarding(定向转发)。如果 Use_Directed 字段的值为enabled,则报文还必须包含一个名为 Proxy_Client_Unicast_Addr_Range 的可选字段。该字段包含代理服务器必须使用Bluetooth Mesh 定向转发的单播地址范围。

代理客户端可直接或间接使用Bluetooth Mesh 定向转发。

要直接使用Bluetooth Mesh 定向转发,代理客户端要使用定向安全材料保护信息,向代理服务器表明它必须充当定向中继节点。

要间接使用它,客户端需要利用其支持的定向代理服务器提供的服务 。信息使用Bluetooth Mesh Managed Flooding 材料进行保护,如果代理服务器启用了定向中继,并且存在通往目标地址的路径,Bluetooth Mesh 定向转发将由代理服务器代表从属客户端用于信息。

友谊和Bluetooth Mesh 定向转发

好友节点可充当定向好友,并以与代理节点类似的方式,向相关低功耗节点提供Bluetooth Mesh 定向转发服务 。如果在定向控制状态下启用了该功能,则友节点将充当定向节点。在这种情况下,友节点将在可能的情况下使用Bluetooth Mesh 定向转发来转发来自其低功耗节点的信息,并在必要时执行Bluetooth Mesh 定向转发程序。例如,如果一个低功耗节点要向一个地址发送信息,而该地址目前在友节点的转发表中没有列出路径,则友节点将创建一个路径起源状态机状态实例,并启动Bluetooth Mesh 定向转发初始化程序。要使用此功能,低功耗节点必须使用好友安全材料来发送信息。

3.关闭

Bluetooth® Mesh 定向转发功能提高了网络内共享无线电频谱的使用效率,从而增强了网络的整体可扩展性。Bluetooth Mesh 定向转发路径的自动创建和维护使网络规划和配置变得更加容易。

获得帮助