一种由蓝牙网状网络中的节点执行的消息转发方法与流程

未命名 08-17 阅读:103 评论:0


1.本发明涉及蓝牙网状网络,更具体地,涉及由蓝牙网状网络中的节点执行的消息转发方法,以及用于在蓝牙网状网络中操作的节点装置。


背景技术:

2.bluetooth网状网络(以下简称为ble mesh网络)是蓝牙技术联盟(sig)在2017年推出的一种基于ble协议的多对多通信网络,该网络能够在网状网络中的各个节点之间相互通信。具体地,ble mesh网络在网络中网络节点通过广播和中继的方式实现节点间的消息传输。
3.ble mesh使用发布/订阅(publish/subscribe)消息系统,并定义了可以被一个或多个节点所共有的组播地址。当发布者(publisher)向组播地址发送消息时,订阅了该地址的所有订阅者(subscriber)都将接收到来自组播地址的消息,并对其进行处理,以某种方式作出反应。
4.ble mesh采用管理型网络泛洪(managed flooding)方式来进行网络信息的传输,即网络中所有具备中继功能(relay)的节点都会转发收到的消息,而不需要沿着特定路径进行路由选择。相应地,在ble mesh网络中,在通信范围内的所有节点都会接收消息,而那些充当中继的节点会将消息重新传输到范围内的所有其他节点。这种泛洪技术的优点在于不需要特定节点充当集中式路由器,可以有效避免因个别节点的故障而导致整个网络无法运行。然而,泛洪的缺点是可能会由于网络消息泛滥而导致通信延迟。
5.为了减少不必要的冗余信息传输,ble mesh网络主要采用了如下两种措施来优化泛洪通信:(1)消息缓存(message cache):节点都会缓存收到消息的关键信息,以确定是否已经转发过此消息,如果是就忽略此消息。(2)生存时间(time to live,ttl):每个消息都会包含一个ttl的值,来限制中继的次数,最大可以中继126次。消息每转发一次ttl的值就减1,ttl值为1就不再转发。
6.尽管如此,现有的技术方案仍然会导致在网络中数据交换量大的情况下,例如发包频率大于每秒3个时,网络中将充斥着冗余或过期无效的信息。这些信息会对节点接收新消息造成干扰,导致接收新消息的效率下降,也会造成不必要的资源浪费,例如,节点的耗电量会因为不必要的转发而增加。
7.因此,本领域中需要一种新的技术方案,该技术方案至少能够根据特定条件在ble mesh网络中选择性地进行消息转发,从而减少网络中的中转数据包的数量,提高消息传播的效率。应当理解,上述所列举的技术问题仅作为示例而非对本发明的限制。此外,本发明并不限于同时解决上述所有技术问题的技术方案,本发明的技术方案可以实施为解决上述或其他技术问题中的一个或多个。


技术实现要素:

8.本发明的目的是为了解决现有蓝牙网状网络中存在的问题,即由于冗余转发消息
过多而造成的网络拥塞,进而导致网络数据延迟大、通信不可靠等。
9.在本发明的第一个方面,提供了一种由蓝牙网状网络中的节点执行的方法,该方法包括:(1)从蓝牙网状网络中的相邻节点接收消息;(2)响应于确定消息需要转发,执行基于概率的转发,包括:(a)基于相邻节点的覆盖区域与节点的覆盖区域的重叠度,确定节点转发消息的转发概率,其中转发概率与重叠度为负相关关系;(b)通过转发概率转发消息。
10.优选地,该方法还包括:响应于确定消息需要转发,确定相邻节点的覆盖区域与节点的覆盖区域的重叠度。
11.进一步优选地,确定相邻节点的覆盖区域与节点的覆盖区域的重叠度包括:(i)根据相邻节点的覆盖区域的球体半径、节点的覆盖区域的球体半径、以及相邻节点与节点的距离,确定相邻节点的覆盖区域的球体与节点的覆盖区域的球体的重叠部分的体积;(ii)确定重叠部分的体积在节点的覆盖区域的球体体积中的占比;其中,重叠度是基于占比确定的。
12.优选地,相邻节点的覆盖区域的球体半径是通过获取相邻节点的发射功率来确定的;以及节点的覆盖区域的球体半径是通过获取节点的发射功率来确定的。
13.优选地,相邻节点与节点的距离是基于从相邻节点接收到的信号的接收信号强度指示rssi和相邻节点的发射功率确定的。
14.优选地,相邻节点与节点的距离是基于相邻节点与节点的gps坐标来确定的。
15.优选地,相邻节点与节点的距离是通过红外测距来确定的。
16.优选地,通过转发概率转发消息包括:生成随机数,将随机数与转发概率进行比较;以及,响应于随机数小于或等于转发概率,立即转发消息。
17.优选地,响应于确定消息需要转发,还包括:确定节点处的网络负载量;以及,响应于网络负载量超出阈值,执行基于概率的转发。
18.优选地,响应于确定消息需要转发,还包括:确定消息是否为重传消息;以及,响应于确定消息为重传消息,立即转发消息。
19.优选地,确定消息是否为重传消息包括:确定消息中的标识码是否包括在节点的已接收消息标识码列表中;如果是,则确定消息为重传消息;其中标识码包括循环冗余校验码。
20.优选地,网络负载量包括节点在接收到消息之前的单位时间内所转发的消息的计数。
21.在本发明的第二个方面,还提供了一种用于在蓝牙网状网络中操作的节点装置,包括:处理器;以及存储器,其中,存储器存储有计算机指令,当计算机指令被处理器执行时,使得处理器执行如上所述的任一项的方法。
22.在本发明的第三个方面,还提供了一种包括计算机可读指令的计算机可读存储介质,计算机可读指令在被加载到节点装置的计算机上时执行如上所述的任一项的方法,节点装置被布置用于在蓝牙网状网络中操作。
23.通过本发明,可有效减少因节点对不必要的消息进行转发而导致的冗余数据包数量过多、消息传播效率下降、消息时延增加等问题。本方案根据两个节点的信号覆盖区域的重叠度确定转发消息的转发概率。这样可以避免因为两个节点的信号强度的差异而导致的误判或漏判,提高了消息转发的效率和准确性。本方案还可以根据网络状态和消息是否为
重传消息动态调整是否启动基于概率的转发机制,进一步优化消息转发的策略。
附图说明
24.图1示出了ble mesh网络的系统分层架构的示意图;
25.图2(a)示出ble mesh网络的网络层中定义的pdu的格式的示意图;
26.图2(b)示出一个示例性的获取发射功率的请求消息的格式;
27.图2(c)示出一个示例性的获取发射功率的响应消息的格式;
28.图3示出ble mesh网络的网络拓扑的示意图;
29.图4示出本发明的由蓝牙网状网络中的节点执行的方法的第一个实施方式的流程示意图;
30.图5示出了一个确定相邻节点的覆盖区域与节点的覆盖区域的重叠度的第一实施例的示例图;
31.图6示出了一个确定相邻节点的覆盖区域与节点的覆盖区域的重叠度的第二实施例的示例图;
32.图7示出了本发明的由蓝牙网状网络中的节点执行的方法的第二个实施方式的流程示意图;
33.图8示出了本发明的由蓝牙网状网络中的节点执行的方法的第三个实施方式的流程示意图;
34.图9示出了本发明的由蓝牙网状网络中的节点执行的方法的第四个实施方式的流程示意图;
35.图10示出了本发明的由蓝牙网状网络中的节点执行的另一方法的实施方式的流程示意图;
36.图11示出了根据本发明的实施例的一种用于在蓝牙网状网络中操作的节点装置的示意图;
37.图12示出了一种根据本发明的由蓝牙网状网络中的节点执行的方法的具体实施例示例的流程示意图;
38.图13示出了一种根据本发明的由蓝牙网状网络中的节点执行的方法的另一具体实施例示例的流程示意图;
39.图14示出了在200轮消息收发测试中的节点转发消息的数量和接收消息的时延的变化情况。
具体实施方式
40.以下将结合附图和具体的实施方式,对本发明的方法进行详细说明。应理解,附图所示以及下文所述的实施例仅仅是说明性的,而不作为对本发明的限制。
41.所属领域的技术人员显而易见,本发明中的节点不限于用户设备,而是无线通信系统中的其它类型的节点,例如中继节点,也在描述及所附权利要求书的范围内。
42.ble mesh网络采用分层架构的网络协议。具体地,图1示出了ble mesh网络的系统分层架构,其中从下至上分别包括作为组网协议栈的承载层、网络层、底层传输层、上层传输层、访问层、基础模型层,以及作为产品应用层的模型层。根据ble mesh网络协议的规定,
每层都有自己的职责和功能,具体如下所述。
43.承载层负责ble mesh网络中数据传输的基础支持。承载层直接与ble协议栈连接,用于使用ble对消息进行收发。
44.网络层用于对承载层接收的消息进行解密并验证,并传给底层传输层或转发给其他节点;同样地,网络层对底层传输层输出的消息进行加密并验证,并传给承载层。此外,网络层还提供重复检测、缓存等功能,并根据消息的生存时间和目标地址决定是否转发消息。如图2所示,示例性地示出了网络层中定义的pdu的格式,用于负责基于地址的消息传输。其中,网络层pdu中各个字段的定义参见下表1所示。
[0045][0046][0047]
底层传输层用于将网络层pdu传输到另外一个节点,并提供分包、重新组包等功能,以保证数据的完整。
[0048]
上层传输层从访问层获取消息或内部生成上层传输层控制消息,并将这些消息传输到对端的上层传输层。对于从访问层获取的消息,上层传输层负责应用密钥执行信息数据的加密和认证。由上层传输层内部生成的传输层控制消息仅在网络层加密和验证。
[0049]
访问层用于定义如何使用上层传输层、定义应用数据格式,以及提供访问控制、消息格式、消息处理等功能,以实现用户的应用需求。
[0050]
基础模型层定义了配置和管理ble mesh网络所需的访问层的状态、消息、模型等,以实现ble mesh网络的配置。
[0051]
ble mesh网络能够在节点之间建立“多对多”(m:m)关系,形成例如图3所示的网状网络拓扑。网状网络拓扑是一种没有固定结构的网络形式,其中每个节点都可以与其他任意节点通信,而不需要依赖于中心节点或路由器。在ble mesh网络中,节点可以与网络中的多个其他节点建立连接,且中继节点能够转发从其他节点接收到的消息。在转发消息时,它们能够与位于初始消息发布节点无线范围以外的节点进行通信。消息可多次被中继,每一次中继即为一“跳”,最多可进行127跳,足以在一片广阔的物理区域中进行消息传输。
[0052]
为了说明消息传输的过程,假设图3中的节点a向节点b发送消息,则会将网络层pdu中的源地址字段填充为节点a的地址,目的地址字段填充为节点b的地址。同时,在该消
息的ttl字段会填充该消息最多被转发的跳数,例如,默认ttl值为7,用以限制该消息在网络中的传播范围。由于该消息是通过广播方式发送至ble mesh网络中的,因此网络中的其他节点也可以收到该消息,在其他节点收到该消息时会对该消息进行转发,并对该消息的网络层pdu中的ttl值进行减一。当网络层pdu中的ttl值为0时,再次收到该消息的节点将不再转发该消息。
[0053]
由于网络层能够将数据中继到不在初始节点直接无线电覆盖区域内的其他节点,ble mesh网络可以扩展范围,从而能够跨越非常大的物理区域并包含大量节点。此外,该网络具有自我修复能力,如果其中一个节点从网状网络中掉线,其他节点仍然可以参与并向彼此发送消息。
[0054]
本公开旨在在网络层中设计一种基于概率的消息转发机制,根据节点之间的覆盖区域的重叠度动态地调整消息被转发的概率,以减少网络中的冗余信息和资源浪费,并提高消息传播的效率。本公开的具体技术方案将在下文中详细描述。
[0055]
图4示出了本发明的由蓝牙网状网络中的节点执行的方法的第一个实施方式的流程示意图,具体地:
[0056]
在步骤402中,从蓝牙网状网络中的相邻节点接收消息。作为示例而非限制,节点根据消息中的目标地址和生存时间,判断消息是否需要转发。作为示例而非限制,当消息的目标地址为当前节点或者消息的生存时间为0,则确定该消息无需转发。当消息的目标地址不是当前节点并且消息的生存时间不为0,则确定该消息需要转发。
[0057]
在步骤404中,响应于确定消息需要转发,执行基于概率的转发,包括:(a)基于相邻节点的覆盖区域与节点的覆盖区域的重叠度,确定节点转发消息的转发概率,其中转发概率与重叠度为负相关关系;(b)通过转发概率转发消息。
[0058]
可选地,该方法还包括响应于确定消息需要转发,确定相邻节点的覆盖区域与节点的覆盖区域的重叠度。作为示例而非限制,节点在执行基于概率的转发之前,可以确定相邻节点的覆盖区域与节点的覆盖区域的重叠度,从而避免因节点或相邻节点的位置发生变化或发射功率发生变化而造成的影响。
[0059]
进一步可选地,确定相邻节点的覆盖区域与节点的覆盖区域的重叠度包括:(i)根据相邻节点的覆盖区域的球体半径、节点的覆盖区域的球体半径、以及相邻节点与节点的距离,确定相邻节点的覆盖区域的球体与节点的覆盖区域的球体的重叠部分的体积;(ii)确定重叠部分的体积在节点的覆盖区域的球体体积中的占比;其中,重叠度是基于占比确定的。
[0060]
可选地,相邻节点的覆盖区域的球体半径是通过获取相邻节点的发射功率来确定的;以及节点的覆盖区域的球体半径是通过获取节点的发射功率来确定的。通常,节点的发射功率越高,节点的最远信号覆盖距离就越大,亦即节点的覆盖区域的球体半径就越大。作为示例而非限制,可以通过事先测量节点在不同发射功率下的覆盖区域半径,得到节点的覆盖区域的球体半径与节点的发射功率的对应关系。在通信过程中,可以基于事先测量的对应关系,根据节点的当前发射功率确定节点的覆盖区域的球体半径。例如,在事先测量中,假设节点的覆盖区域边缘接收到的信号强度为-80dbm,可以通过移动测量点并获取在测量点处的信号强度,直至测量点的信号强度到达-80dbm,此时测量点到节点的距离即为节点在当前发射功率下的覆盖区域的球体半径。本领域技术人员应理解,节点的覆盖区域
的球体半径与节点的发射功率的对应关系可以事先确定,并实现为例如映射表或函数等形式。
[0061]
可选地,相邻节点与节点的距离是基于从相邻节点接收到的信号的接收信号强度指示rssi和相邻节点的发射功率确定的。具体而言,由于信号在传输过程中会随着传播距离而衰减,因此节点接收到的信号的rssi与距离呈负相关。因此在已知发射节点(在此处为相邻节点)的发射功率和接收节点(在此处为节点)接收到的rssi的情况下,通过信号与距离之间的衰减模型就可以计算获得相邻节点与节点的距离。一个示例性的衰减模型如下:
[0062][0063]
其中,d为相邻节点与节点之间的距离;rssi为节点接收到的信号的接收信号强度指示,单位为dbm;a为相邻节点在当前发射功率下、距离相邻节点1米时的rssi值的绝对值;n为环境衰减因子。
[0064]
可选地,相邻节点与节点的距离是基于相邻节点与节点的gps坐标来确定的。
[0065]
可选地,相邻节点与节点的距离是通过红外测距来确定的。
[0066]
可选地,通过转发概率转发消息包括:生成随机数,将随机数与转发概率进行比较;以及,响应于随机数小于或等于转发概率,立即转发消息。
[0067]
示例1:获取发射功率
[0068]
节点通过发送和接收应用层消息获取相邻节点的发射功率。用户可以自定义该应用层消息的格式,并将请求发射功率和响应请求的信息填充至网络层pdu的data字段中。图2(b)和图2(c)是一个示例性的获取发射功率的请求消息和响应消息的格式,图2(b)是节点向相邻节点发送的请求消息的网络层pdu中的data字段的格式示例,其中data字段包括opcode操作码。opcode操作码为0x01指示该消息是请求获取相邻节点发射功率的消息。图2(c)中是相邻节点从节点收到请求消息后,向节点返回响应消息的网络层pdu中的data字段的格式示例,其中data字段包括opcode操作码和textpower字段。opcode操作码为0x02指示该消息是返回该相邻节点发射功率的响应消息。相邻节点也可以采用同样的方式获取节点的发射功率。作为示例而非限制,蓝牙网状网络中的任意一个节点在计划改变其发射功率前,可以根据上述获取发射功率的响应消息的格式,向网络中的其他节点通知其即将更新的发射功率。进一步地,在一个优选示例中,该响应消息中的ttl可以设置为0,以仅向该源节点的一跳通信范围的节点发送即将更新的发射功率。该源节点在发送通知后,再将其发射功率变更为更新的发射功率。
[0069]
示例2:确定相邻节点的覆盖区域与节点的覆盖区域的重叠度
[0070]
图5示出了一个确定相邻节点的覆盖区域与节点的覆盖区域的重叠度的第一实施例的示例图。
[0071]
根据节点的发射功率,可以确定节点的消息覆盖区域。在图5的示例中,节点的覆盖区域为以o1为球心、半径ra=3米的球体。
[0072]
根据相邻节点的发射功率,可以确定相邻节点的消息覆盖区域。在图5的示例中,相邻节点的覆盖区域为o2为球心、半径rb=5米的球体。
[0073]
基于从相邻节点接收到的信号的接收信号强度指示rssi和相邻节点的发射功率,确定相邻节点与节点的距离。此外,可以通过红外测距或者gps定位确定相邻节点与节点的
距离。在图5的示例中,相邻节点与节点的距离d为4.5米。
[0074]
相邻节点的覆盖区域与节点的覆盖区域相交于a、b两点。根据余弦定理的公式,可以计算获得ao1与o1o2的夹角∠ao1o2,具体计算公式如下:
[0075][0076]
据此,在图5的示例中,ao1与o1o2的夹角∠ao1o2约等于75.5
°
。该夹角为锐角,因此可以确定由ab两点所在的球体交界面在两个球心o1和o2的之间。从而,相邻节点与节点的覆盖区域的重叠区域可以经由球体交界面分割为两个球缺。球缺的体积计算公式如下:
[0077][0078]
其中,r是球缺所在球体的半径,h为球缺的缺口平面中心到球体表面的垂直距离。
[0079]
因此,对于相邻节点与节点的覆盖区域的重叠区域中位于节点的覆盖区域球体中的球缺,该球缺体积可以根据上述球缺的体积计算公式获得。具体地,
[0080]
h=d-racos∠ao1o2[0081]
经过计算,h=2.53,且r=ra=3,将以上已知的数据代入球缺的体积计算公式,可以获得该球缺的体积v1为43.35。
[0082]
类似地,可以计算相邻节点与节点的覆盖区域的重叠区域中位于相邻节点的覆盖区域球体中的球缺,该球缺体积v2为13.82。
[0083]
相邻节点与节点的覆盖区域的重叠区域体积为两个球缺的体积之和。在该示例中,重叠部分的体积为v1+v2=57.17。
[0084]
进一步地,节点的覆盖区域的球体体积因此,可以确定,对于节点而言,相邻节点的覆盖区域与节点的覆盖区域的重叠度可以确定为重叠部分的体积在节点的覆盖区域的球体体积中的占比,即积在节点的覆盖区域的球体体积中的占比,即
[0085]
图6示出了一个确定相邻节点的覆盖区域与节点的覆盖区域的重叠度的第二实施例的示例图。
[0086]
根据节点的发射功率,可以确定节点的消息覆盖区域。在图6的示例中,节点的覆盖区域为以o1为球心、半径ra=3米的球体。
[0087]
根据相邻节点的发射功率,可以确定相邻节点的消息覆盖区域。在图6的示例中,相邻节点的覆盖区域为o2为球心、半径rb=5米的球体。
[0088]
基于从相邻节点接收到的信号的接收信号强度指示rssi和相邻节点的发射功率,确定相邻节点与节点的距离。此外,可以通过红外测距或者gps定位确定相邻节点与节点的距离。在图6的示例中,相邻节点与节点的距离d为3.5米。
[0089]
根据上述的计算方式,在图6的示例中,ao1与o1o2的夹角∠ao1o2约等于100.29
°
。该夹角为钝角,因此可以确定由ab两点所在的球体交界面在两个球心o1和o2的连线之外。在该示例中,相邻节点与节点的覆盖区域的重叠区域可以经由球体交界面分割为两个球缺。
[0090]
对于相邻节点与节点的覆盖区域的重叠区域中位于节点的覆盖区域球体中的球缺,该球缺的缺口平面中心到节点的覆盖区域的球体表面的垂直距离h可以根据以下计算
公式获得:
[0091]
h=r
a-racos∠ao1o2[0092]
经过计算,h=3.54,且r=ra=3,将以上已知的数据代入球缺的体积计算公式,可以获得该球缺的体积v1为71.61。
[0093]
类似地,可以计算相邻节点与节点的覆盖区域的重叠区域中位于相邻节点的覆盖区域球体中的球缺,该球缺体积v2为30.21。
[0094]
相邻节点与节点的覆盖区域的重叠区域体积为两个球缺的体积之和。在该示例中,重叠部分的体积为v1+v2=101.82。
[0095]
因此,可以确定,对于节点而言,相邻节点的覆盖区域与节点的覆盖区域的重叠度可以确定为重叠部分的体积在节点的覆盖区域的球体体积中的占比,即
[0096]
尽管在图5和图6的实施例中,节点的覆盖区域以三维球体表示,但是本领域技术人员可以理解,上述方法中的覆盖区域也可以简化为二维平面中的圆形,并在此基础上计算覆盖区域的重叠度。
[0097]
示例3:通过转发概率转发消息
[0098]
基于相邻节点的覆盖区域与节点的覆盖区域的重叠度,确定节点转发消息的转发概率,其中转发概率与重叠度为负相关关系。在一些实施例中,转发概率与重叠度是线性函数关系,例如,转发概率等于100%减去重叠度。在一个示例中,假设重叠度为50.58%,则转发概率49.42%。在另一些实施例中,转发概率与重叠度是指数函数关系,例如,转发概率等于某个常数系数乘以e的负重叠度次方。在一个示例中,假设常数系数为0.5,该值为50.58%,则转发概率约为30.15%。
[0099]
在获得确定的转发概率后,节点会生成一个0到1之间的随机数,并将随机数与转发概率进行比较。如果随机数小于或等于转发概率,则节点立即转发消息,否则节点会丢弃消息,从而可以实现在确定重叠度的情况下,通过相应的转发概率转发消息。由于转发概率是根据节点的覆盖区域与相邻节点的覆盖区域的重叠度确定的,当重叠度较高时,节点转发消息的概率较低,可以避免多余的重复转发和网络拥塞;当重叠度较低时,节点转发消息的概率较高,可以提高消息到达目标地址的可能性。
[0100]
图7示出了本发明的由蓝牙网状网络中的节点执行的方法的第二个实施方式的流程示意图,具体地:
[0101]
在步骤702中,从蓝牙网状网络中的相邻节点接收消息。节点根据消息中的目标地址和生存时间,判断消息是否需要转发。作为示例而非限制,节点根据消息中的目标地址和生存时间,判断消息是否需要转发。作为示例而非限制,当消息的目标地址为当前节点或者消息的生存时间为0,则确定该消息无需转发。当消息的目标地址不是当前节点并且消息的生存时间不为0,则确定该消息需要转发。
[0102]
在步骤704中,响应于确定消息需要转发,确定节点处的网络负载量。可选地,网络负载量包括节点在接收到消息之前的单位时间内所转发的消息的计数。可选地,网络负载量包括网络中所有节点在接收到消息之前的单位时间内所转发的消息的计数。
[0103]
在步骤706中,响应于网络负载量超出阈值,执行基于概率的转发,包括:(a)基于
相邻节点的覆盖区域与节点的覆盖区域的重叠度,确定节点转发消息的转发概率,其中转发概率与重叠度为负相关关系;(b)通过转发概率转发消息。作为示例而非限制,节点可以通过设置定时器,对本节点每秒转发的消息进计数,如果该计数大于阈值(该阈值可由用户自己根据实际情况配置,阈值的一个示例默认值为2),便确定节点处的网络负载较大,执行基于概率的转发。
[0104]
根据本公开的实施例提出了一种基于概率的转发机制,可以根据节点处的网络负载量动态地调整转发策略。当网络负载较小时,为了提高消息的传递成功率,可以不启用基于概率的转发机制,而是对所有需要转发的消息都进行转发。当网络负载较大时,则启用基于概率的转发机制,根据一定的概率决定是否转发消息,从而减少网络中冗余的转发消息。这种技术方案可以有效地降低网络拥塞,提高网络吞吐量和传输效率,同时保证消息的可靠性和时效性。
[0105]
图8示出了本发明的由蓝牙网状网络中的节点执行的方法的第三个实施方式的流程示意图,具体地:
[0106]
在步骤802中,从蓝牙网状网络中的相邻节点接收消息。节点根据消息中的目标地址和生存时间,判断消息是否需要转发。作为示例而非限制,节点根据消息中的目标地址和生存时间,判断消息是否需要转发。作为示例而非限制,当消息的目标地址为当前节点或者消息的生存时间为0,则确定该消息无需转发。当消息的目标地址不是当前节点并且消息的生存时间不为0,则确定该消息需要转发。
[0107]
在步骤804中,响应于确定消息需要转发,确定消息是否为重传消息。可选地,确定消息是否为重传消息包括:确定消息中的标识码是否包括在节点的已接收消息标识码列表中;如果是,则确定消息为重传消息;其中标识码包括循环冗余校验码。尽管循环冗余校验码(cyclic redundancy check,简称crc)通常是检验消息的完整性,本发明创造性地使用循环冗余校验码作为消息的唯一性标识,即确定消息是否为重传消息的标识码。这是因为在本发明的技术方案中,每个存储的消息的crc只存在很短的时间(大多数情况下不超过1秒),导致不同的消息出现crc冲突的可能性极低,因此crc可以用于作为重传消息的标识码。
[0108]
在步骤806中,响应于确定消息为重传消息,立即转发消息;响应于确定消息为非重传消息,执行基于概率的转发,包括:(a)基于相邻节点的覆盖区域与节点的覆盖区域的重叠度,确定节点转发消息的转发概率,其中转发概率与重叠度为负相关关系;(b)通过转发概率转发消息。
[0109]
本公开的实施例提出了一种基于概率的转发机制,可以根据消息中的标识码,快速准确地识别出重传消息,并立即转发,避免了重传消息的延迟和丢失。同时,对于非重传消息,本公开的实施例采用了基于概率的转发机制,根据相邻节点的覆盖区域与节点的覆盖区域的重叠度,动态调整转发概率,减少了网络中冗余的转发消息,降低了网络拥塞,提高了网络吞吐量和传输效率。本公开的实施例可以有效提高蓝牙网状网络中消息的可靠性和时效性,适用于各种需要高效通信的场景。
[0110]
图9示出了本发明的由蓝牙网状网络中的节点执行的方法的第四个实施方式的流程示意图,具体地:
[0111]
在步骤902中,从蓝牙网状网络中的相邻节点接收消息。节点根据消息中的目标地
址和生存时间,判断消息是否需要转发。作为示例而非限制,节点根据消息中的目标地址和生存时间,判断消息是否需要转发。作为示例而非限制,当消息的目标地址为当前节点或者消息的生存时间为0,则确定该消息无需转发。当消息的目标地址不是当前节点并且消息的生存时间不为0,则确定该消息需要转发。
[0112]
在步骤904中,响应于确定消息需要转发,确定节点处的网络负载量。可选地,网络负载量包括节点在接收到消息之前的单位时间内所转发的消息的计数。可选地,网络负载量包括网络中所有节点在接收到消息之前的单位时间内所转发的消息的计数。
[0113]
在步骤906中,响应于网络负载量超出阈值,确定消息是否为重传消息。可选地,确定消息是否为重传消息包括:确定消息中的标识码是否包括在节点的已接收消息标识码列表中;如果是,则确定消息为重传消息;其中标识码包括循环冗余校验码。
[0114]
在步骤908中,响应于确定消息为重传消息,立即转发消息;响应于确定消息为非重传消息,执行基于概率的转发,包括:(a)基于相邻节点的覆盖区域与节点的覆盖区域的重叠度,确定节点转发消息的转发概率,其中转发概率与重叠度为负相关关系;(b)通过转发概率转发消息。
[0115]
本公开的实施例提出了一种基于概率的转发机制,可以根据网络负载确定是否启用基于概率的转发机制,同时还利用消息中的标识码,快速准确地识别出重传消息,并立即转发,避免了重传消息的延迟和丢失。在提高蓝牙网状网络的效率的同时,也提高了网络的安全性和可靠性。
[0116]
图10示出了本发明的由蓝牙网状网络中的节点执行的另一方法的实施方式的流程示意图,具体地:
[0117]
在步骤1002中,从蓝牙网状网络中的相邻节点接收消息。作为示例而非限制,节点根据消息中的目标地址和生存时间,判断消息是否需要转发。作为示例而非限制,当消息的目标地址为当前节点或者消息的生存时间为0,则确定该消息无需转发。当消息的目标地址不是当前节点并且消息的生存时间不为0,则确定该消息需要转发。
[0118]
在步骤1004中,响应于确定消息需要转发,执行基于概率的转发,包括:(a)判断相邻节点的发射功率与节点的发射功率是否相同;(b)响应于相邻节点与节点的发射功率相同,基于相邻节点与所述节点的距离,确定节点转发消息的转发概率,其中转发概率与距离为负相关关系;以及,响应于相邻节点与节点的发射功率不同,基于相邻节点的覆盖区域与节点的覆盖区域的重叠度,确定节点转发消息的转发概率,其中转发概率与重叠度为负相关关系;(c)通过转发概率转发消息。作为示例而非限制,在相邻节点与节点的发射功率相同的情形下,两节点之间的距离可以用于估计节点与相邻节点的覆盖区域的重叠度。因此,可以根据距离确定节点转发消息的转发概率。例如,当两者的距离越大,转发概率越低。
[0119]
可选地,该方法还包括响应于相邻节点与节点的发射功率相同,确定相邻节点与节点的距离。
[0120]
可选地,该方法还包括响应于相邻节点与节点的发射功率不同,确定相邻节点的覆盖区域与节点的覆盖区域的重叠度。作为示例而非限制,节点在执行基于概率的转发之前,可以确定相邻节点的覆盖区域与节点的覆盖区域的重叠度,从而避免因节点或相邻节点的位置发生变化或发射功率发生变化而造成的影响。
[0121]
进一步可选地,确定相邻节点的覆盖区域与节点的覆盖区域的重叠度包括:(i)根
据相邻节点的覆盖区域的球体半径、节点的覆盖区域的球体半径、以及相邻节点与节点的距离,确定相邻节点的覆盖区域的球体与节点的覆盖区域的球体的重叠部分的体积;(ii)确定重叠部分的体积在节点的覆盖区域的球体体积中的占比;其中,重叠度是基于占比确定的。
[0122]
可选地,相邻节点的覆盖区域的球体半径是通过获取相邻节点的发射功率来确定的;以及节点的覆盖区域的球体半径是通过获取节点的发射功率来确定的。
[0123]
可选地,相邻节点与节点的距离是基于从相邻节点接收到的信号的接收信号强度指示rssi和相邻节点的发射功率确定的。
[0124]
可选地,相邻节点与节点的距离是基于相邻节点与节点的gps坐标来确定的。
[0125]
可选地,相邻节点与节点的距离是通过红外测距来确定的。
[0126]
可选地,通过转发概率转发消息包括:生成随机数,将随机数与转发概率进行比较;以及,响应于随机数小于或等于转发概率,立即转发消息。
[0127]
在另一实施例中,在步骤1004之前,还可以包括以下步骤:响应于确定消息需要转发,确定节点处的网络负载量;以及响应于网络负载量超出阈值,执行基于概率的转发。
[0128]
在又一实施例中,在步骤1004之前,还可以包括以下步骤:响应于确定消息需要转发,确定消息是否为重传消息;以及,响应于确定消息为重传消息,立即转发消息。
[0129]
在再一实施例中,在步骤1004之前,还可以包括以下步骤:响应于确定消息需要转发,确定节点处的网络负载量;以及响应于网络负载量超出阈值,确定消息是否为重传消息;以及,响应于确定消息为重传消息,立即转发消息。
[0130]
可选地,确定所述消息是否为重传消息包括:确定消息中的标识码是否包括在节点的已接收消息标识码列表中;如果是,则确定消息为重传消息;其中标识码包括循环冗余校验码。
[0131]
如图11所示,示出了根据本发明的实施例的一种用于在蓝牙网状网络中操作的节点装置的示意图,该节点装置包括:处理器1102;以及存储器1104,其中,存储器存储有计算机指令,当计算机指令被处理器1102执行时,使得处理器1104执行如上所述的任意一种方法。
[0132]
根据本发明的实施例,还提供了一种包括计算机可读指令的计算机可读存储介质,计算机可读指令在被加载到节点装置的计算机上时执行根据如上所述的任意一种方法,且节点装置被布置用于在蓝牙网状网络中操作。
[0133]
具体实施例示例1
[0134]
如图12所示,示出了一种根据本发明的由蓝牙网状网络中的节点执行的方法的具体实施例示例的流程示意图。
[0135]
在该具体实施例中,公开了一种由蓝牙网状网络中的网络节点执行的优化消息转发机制的方案。
[0136]
具体而言,在步骤1202中,节点从蓝牙网状网络中的相邻节点接收消息,该消息可以是网络层pdu,且该消息包括目的地址字段和ttl字段。在步骤1204中,节点检查目的地址字段是否与本节点的地址相同。如果相同,则表示该消息是发给本节点的消息,继续执行步骤1206,根据该消息的data字段中的内容处理该消息。如果目的地址与本节点的地址不同,则表示该消息需要被转发给其他节点,继续执行步骤1208。在步骤1208中,检查消息的ttl
字段是否大于0。如果等于0,则表示该消息已达到最大转发次数,执行步骤1210丢弃该消息;如果该消息的ttl字段大于0,则表示该消息还可以被继续转发,进行进一步的操作。
[0137]
在一个实施例中,在可选的步骤1212中,节点确定网络是否繁忙。例如,节点可以通过比较节点每秒转发的消息数和阈值来判断网络负载是否过高。如果确定网络负载过高,则采用基于概率的转发方式。如果确定网络负载未过高,则进入步骤1214,将消息中的ttl字段减1,然后转发更新后的消息。仅作为示例而非限制,节点可以使用一个网络负载判断器执行步骤1212,该网络负载判断器主要用于决定是否开启基于概率的转发方式。在网络负载较低的时候,为了保证消息的到达率,节点会转发所有收到的消息。当网络负载较高时,为了减少不必要的重复转发和网络拥塞,节点会根据一定的概率来决定是否转发消息。具体地,在本方案中,可以通过一个定时器对每秒转发的消息进行计数,一旦该计数大于阈值便确定网络负载较高,此时启动基于概率的转发方式。
[0138]
在一个实施例中,在可选的步骤1216中,节点确定消息是否为重传消息。如果确定该消息为重传消息,则进入步骤1214,将消息中的ttl字段减1,然后转发更新后的消息。如果确定该消息不是重传消息,则继续执行基于概率的转发操作。仅作为示例而非限制,节点可以使用一个消息重传判断器执行步骤1216。
[0139]
在启动基于概率的转发方式后,有可能出现极端情况,导致消息没有到达目的节点。为了避免这种情况、提高消息的到达率,源节点会在没有收到目的节点的ack消息的情况下重传消息。中间节点收到重传消息后,直接转发该消息,以最大程度上确保该消息可以到达目的节点。源节点的消息重传是协议中规定的功能,即节点在一定时间内如果没有收到ack消息,则重传消息。蓝牙网状网络协议规范中规定了消息重传定时器的超时时间为:200ms+50ms*ttl。
[0140]
根据本发明的具体实施例,每个节点会维护一个链表(其采用队列、树或者其他数据结构),用来保存每个接收到的消息的32位循环冗余校验码,作为消息的标识码。每个链表中的数据单元都有一个定时器,如果相应的定时器超时,则说明该消息没有在指定时间内被重传,将该消息从链表中删除。
[0141]
在本发明中,由于节点需要判断收到的数据包是否是重传消息,链表中的数据单元的定时器设置需要考虑多种因素。如果设置的超时时间过短,则可能出现源节点还处于等待ack消息的时间段内(由消息重传定时器设置的超时时间)、尚未发出重传消息;而如果设置的超时时间过长,则会导致链表内数据过多,占用较多的存储空间。具体地,在一个示例中,链表中的数据单元的定时器可以设置超时时间为:800ms+(50ms+30ms)*ttl。其中,由于节点需要进行底层数据处理,例如源节点需要进行重传操作,中间节点需要判断接收的消息是否为重传消息,因此示例中为每个转发节点提供30ms的冗余时间。此外,由于中间节点接收到的消息的ttl值将逐步减小,例如多跳之后的中间节点的消息的ttl可能远小于源节点的消息的ttl值,为了避免链表中的数据单元的超时时间小于消息重传定时器的时间,在上述示例计算公式中,设定一个较大的固定值(800ms)。
[0142]
启动基于概率的转发方式后,执行步骤1218,其中节点对每一个收到的需要转发的消息进行转发概率的计算。仅作为示例而非限制,节点可以使用一个转发控制器执行步骤1218。在一种具体示例中,节点通过对相邻节点的覆盖区域与节点的覆盖区域的重叠度进行评估计算,确定转发效率,其中转发概率与重叠度为负相关关系。具体地,根据相邻节
点的覆盖区域的球体半径、节点的覆盖区域的球体半径、以及相邻节点与节点的距离,确定相邻节点的覆盖区域的球体与节点的覆盖区域的球体的重叠部分的体积;确定重叠部分的体积在节点的覆盖区域的球体体积中的占比;其中,重叠度是基于占比确定的。在另一个替代的具体示例中,可以进一步优化方法以节约计算资源。具体地,首先判断相邻节点的发射功率与节点的发射功率是否相同。如果相邻节点与节点的发射功率相同,则基于相邻节点与节点的距离,确定节点转发消息的转发概率,其中转发概率与距离为负相关关系。在这种情形下,由于相邻节点与节点的发射功率相同,两者的信号覆盖区域的半径近似相等,因此两节点间的距离可以用于评估两节点信号重叠度。例如,当从相邻节点接收到的信号的接受强度指示rssi超过某一阈值时,可以确定两者的距离很近,因此两者的信号覆盖区域重叠度较高。此外,也可以利用gps坐标、红外测距或者超声波测距等方法确定相邻节点与节点之间的距离,并根据距离确定转发概率。如果相邻节点与节点的发射功率不同,则基于相邻节点的覆盖区域与节点的覆盖区域的重叠度,确定节点转发消息的转发概率,其中转发概率与重叠度为负相关关系。具体地重叠度计算方法可以采用上文所述的任一示例方法。
[0143]
进一步的,在步骤1220中,生成一个数值范围为0-1的随机数。在步骤1222中,判断生成的随机数是否小于或等于转发概率,如果是,则进入步骤1214,转发该消息,否则进入步骤1210,丢弃该消息。
[0144]
具体实施例示例2
[0145]
如图13所示,示出了一种根据本发明的由蓝牙网状网络中的节点执行的方法的另一具体实施例示例的流程示意图。
[0146]
在该示例中,节点从相邻节点接收到待转发的消息。该消息可能是由其他节点发送给目的节点的数据包或广播包。为了有效地转发消息,并避免重复转发或网络拥塞,本实施例采用了以下步骤。
[0147]
框1302中为由网络负载判断器执行的步骤,其中包括:使用定时器统计当前节点的转发消息数,并判断1s时间是否已经到达。如果1s时间未到达,则继续统计转发消息数,如果1s时间已经到达,则进一步判断每秒转发的消息数是否超过预设的阈值。如果每秒转发的消息数未超过阈值,则直接转发该消息,并将节点的转发消息数清零;如果每秒转发的消息超过阈值,则进入下一步骤。
[0148]
框1304中为由重传消息判断器执行的步骤,其中包括:计算消息的crc校验码,并将其与链表中已经存储的crc校验码进行比较,判断链表中是否已有相同的校验码。如果已有相同的校验码,则确定消息为重传消息,并丢弃该消息。如果链表中未出现相同的crc校验码,则确定消息为非重传消息,将该消息的crc校验码存入至链表中,并进入下一步骤。
[0149]
框1306中为由转发控制器执行的步骤,其中包括:确定发送该消息的相邻节点的覆盖区域与节点的覆盖区域的重叠度。基于重叠度,确定节点转发该消息的转发概率。进一步地,生成一个数值范围为0-1的随机数。判断生成的随机数是否小于或等于转发概率,如果是,则转发该消息,否则丢弃该消息。
[0150]
具体实施例示例3
[0151]
为了进一步说明本发明的技术方案的效果,在模拟实验中总共进行了200轮消息收发测试。其中,在前100轮中使用未优化的蓝牙网状网络的消息转发机制,而在后100轮中应用了本公开的技术方案。图14示出了在200轮消息收发测试中的节点转发消息的数量和
接收消息的时延的变化情况。在图14中,虚线代表节点转发消息的数量(单位为个),实线代表节点接收消息的时延(单位为毫秒),其中接收消息的时延是指从源节点发出消息到收到来自目的节点的消息应答的时间。
[0152]
从图14中可以看出,在使用本方案后(即后100轮测试中),节点转发消息的数量和接收消息的时延均出现了大幅度下降。具体来说,在第100轮测试前后,节点转发消息的数量从平均每轮49个降低到21个左右,下降了约57%;节点接收消息的时延从平均每轮约249毫秒降低到约128毫秒左右,下降了48.6%。这说明本方案能够有效地减少网络负载和提高消息传输效率,网络性能得到大幅度提升。
[0153]
应当理解的是,上述网络负载判断器、转发控制器、消息重传判断器均可以实现为由处理器执行的计算机程序。
[0154]
通过上述基于概率的消息转发的方法,本发明中采用概率转发的方案可避免网络中的冗余消息过多而影响通信的情况。
[0155]
综上,本发明的方法可减少因网络中的转发消息过多而导致数据包拥堵的问题,并可优化消息转发流程,从而提升了网络通信的时效性和效率。
[0156]
虽然出于本公开的目的已经描述了本发明各方面的各种实施例,但是不应理解为将本公开的教导限制于这些实施例。在一个具体实施例中公开的特征并不限于该实施例,而是可以和不同实施例中公开的特征进行组合。例如,在一个实施例中描述的根据本发明的方法的一个或多个特征和/或操作,亦可单独地、组合地或整体地应用于另一实施例中。此外,应理解,上文所述方法步骤可以顺序执行、并行执行、合并为更少步骤、拆分为更多步骤,以不同于所述方式组合和/或省略。本领域技术人员应理解,还存在可能的更多可选实施方式和变型,可以对上述方法步骤进行各种改变和修改,而不脱离由本发明权利要求所限定的范围。

技术特征:
1.一种由蓝牙网状网络中的节点执行的方法,其特征在于,所述方法包括:-从所述蓝牙网状网络中的相邻节点接收消息;-响应于确定所述消息需要转发,执行基于概率的转发,包括:-基于所述相邻节点的覆盖区域与所述节点的覆盖区域的重叠度,确定所述节点转发所述消息的转发概率,其中所述转发概率与所述重叠度为负相关关系;-通过所述转发概率转发所述消息。2.如权利要求1所述的方法,其特征在于,所述方法还包括:响应于确定所述消息需要转发,确定所述相邻节点的覆盖区域与所述节点的覆盖区域的重叠度。3.如权利要求1所述的方法,其特征在于,所述确定所述相邻节点的覆盖区域与所述节点的覆盖区域的重叠度包括:-根据所述相邻节点的覆盖区域的球体半径、所述节点的覆盖区域的球体半径、以及所述相邻节点与所述节点的距离,确定所述相邻节点的覆盖区域的球体与所述节点的覆盖区域的球体的重叠部分的体积;-确定所述重叠部分的体积在所述节点的覆盖区域的球体体积中的占比;其中,所述重叠度是基于所述占比确定的。4.如权利要求3所述的方法,其特征在于,所述相邻节点的覆盖区域的球体半径是通过获取所述相邻节点的发射功率来确定的;以及所述节点的覆盖区域的球体半径是通过获取所述节点的发射功率来确定的。5.如权利要求3所述的方法,其特征在于,所述相邻节点与所述节点的距离是基于从所述相邻节点接收到的信号的接收信号强度指示rssi和所述相邻节点的发射功率确定的。6.如权利要求3所述的方法,其特征在于,所述相邻节点与所述节点的距离是基于所述相邻节点与所述节点的gps坐标来确定的。7.如权利要求3所述的方法,其特征在于,所述相邻节点与所述节点的距离是通过红外测距来确定的。8.如权利要求1所述的方法,其特征在于,所述通过转发概率转发所述消息包括:-生成随机数,将所述随机数与所述转发概率进行比较;以及-响应于所述随机数小于或等于所述转发概率,立即转发所述消息。9.如权利要求1所述的方法,其特征在于,响应于确定所述消息需要转发,还包括:-确定所述节点处的网络负载量;以及-响应于所述网络负载量超出阈值,执行所述基于概率的转发。10.如权利要求1所述的方法,其特征在于,还包括:响应于确定所述消息需要转发,还包括:-确定所述消息是否为重传消息;以及,

响应于确定所述消息为重传消息,立即转发所述消息。11.如权利要求10所述的方法,其特征在于,所述确定所述消息是否为重传消息包括:确定所述消息中的标识码是否包括在所述节点的已接收消息标识码列表中;如果是,则确定所述消息为重传消息;其中所述标识码包括循环冗余校验码。12.如权利要求1所述的方法,其特征在于,所述网络负载量包括所述节点在接收到所述消息之前的单位时间内所转发的消息的计数。13.一种用于在蓝牙网状网络中操作的节点装置,其特征在于,包括:处理器;以及存储器,其中,所述存储器存储有计算机指令,当所述计算机指令被所述处理器执行时,使得所述处理器执行权利要求1-12中的任一项所述的方法。14.一种包括计算机可读指令的计算机可读存储介质,其特征在于所述计算机可读指令在被加载到节点装置的计算机上时执行根据权利要求1-12中的任一项所述的方法,所述节点装置被布置用于在蓝牙网状网络中操作。

技术总结
本发明公开了一种由蓝牙网状网络中的节点执行的方法,该方法包括:(1)从蓝牙网状网络中的相邻节点接收消息;(2)响应于确定消息需要转发,执行基于概率的转发,包括:(a)基于相邻节点的覆盖区域与节点的覆盖区域的重叠度,确定节点转发消息的转发概率,其中转发概率与重叠度为负相关关系;(b)通过转发概率转发消息。利用本发明,可解决在蓝牙网状网络中由于冗余转发消息过多而造成的网络拥塞,进而导致的网络数据延迟大、通信不可靠等问题。通信不可靠等问题。通信不可靠等问题。


技术研发人员:罗旭
受保护的技术使用者:乐鑫信息科技(上海)股份有限公司
技术研发日:2023.06.29
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐