蓝牙Mesh节点承载层的缓存管理方法和系统转让专利

申请号 : CN202010614041.5

文献号 : CN111786907B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈柏康

申请人 : 深圳市中科蓝讯科技股份有限公司

摘要 :

本发明提供了一种蓝牙Mesh节点承载层的缓存管理方法和系统,所述承载层具有用于缓存消息的缓存空间,所述方法包括:从Mesh网络接收第一消息,在缓存空间已满时,对所述第一消息或缓存空间内的至少一个消息进行转发处理。该方法和系统能够降低丢包风险,提高Mesh网络各节点之间通信的可靠性。

权利要求 :

1.一种蓝牙Mesh节点承载层的缓存管理方法,其特征在于,所述承载层具有用于缓存消息的缓存空间,所述方法包括:从Mesh网络接收第一消息,在缓存空间已满时,在所述承载层通过接口转发所述第一消息或缓存空间内的至少一个消息到Mesh网络中进行泛洪式传输;

当节点为中继节点时,随机选取第一消息或缓存空间内的至少一个消息,将其发送回Mesh网络;

当节点为朋友节点时,根据消息在缓存空间内的缓存时间长度,将缓存空间内的至少一个消息发送回Mesh网络。

2.如权利要求1所述的缓存管理方法,其特征在于,所述缓存空间内的至少一个消息进行转发处理,具体为,将缓存空间内的至少一个消息发送回Mesh网络,并将第一消息缓存至缓存空间。

3.如权利要求1所述的缓存管理方法,其特征在于,所述根据消息在缓存空间内的缓存时间长度,将缓存空间内的至少一个消息发送回Mesh网络,具体为,将缓存时间长度较其他消息缓存时间长度短的消息,发送回Mesh网络。

4.如权利要求1所述的缓存管理方法,其特征在于,所述根据消息在缓存空间内的缓存时间长度,将缓存空间内的至少一个消息发送回Mesh网络,具体为,将缓存时间长度较其他消息缓存时间长度长的消息,发送回Mesh网络。

5.一种蓝牙Mesh系统,该系统包括多个节点,所述节点采用了权利要求1‑4任一项所述缓存管理方法。

说明书 :

蓝牙Mesh节点承载层的缓存管理方法和系统

技术领域

[0001] 本发明涉及蓝牙Mesh领域,具体涉及一种蓝牙Mesh节点承载层的缓存管理方法和系统。

背景技术

[0002] 2017年7月,Bluetooth SIG(BluetoothSpecial Interest Group,蓝牙技术联盟)发布了基于低功耗蓝牙(BLE,Bluetooth Low Energy)的多对多网络,即蓝牙Mesh网状网
络,Mesh网络中的BLE设备称之为Node,即节点,每个节点都可以和其他节点通过广播自由
通信。节点的类型根据其特性分为:LP Node(LowPower Node,低功耗节点),为功率受限的
节点,利用低功耗特性来节省功耗;Friend Node(朋友节点),与LP Node配合,存储发往LP 
Node的消息和安全更新,当LP Node需要时再将存储的信息传输至LP Node;Relay Node(中
继节点),能够接收和转发消息,通过消息在节点之间的中继,实现大规模的网络通信;
Proxy Node(代理节点),实现GATT(Generic Attribute,通用属性)和蓝牙Mesh节点之间的
Mesh消息发送与接收。
[0003] 单一BLE设备的无线覆盖范围小,距离相对较远的两个BLE设备无法实现通信,而在由多个BLE设备组成的Mesh网络中,消息的传输通过Relay Node实现,Relay Node能够接
收和转发消息,通过消息在多个Relay Node一级一级的广播,最终到达目标节点,实现BLE
设备的远距离通信。
[0004] Mesh网络中消息的传输通过广播实现,常用的传输方式为网络泛洪,采用无定向广播,通过Relay Node多路径的传输往Mesh网络中的其他各个节点,以提高消息被目标节
点顺利接收的可能性。Mesh网络中的每个节点中收到mesh消息都需要存储起来并进行处
理,在承载层层中,需要将消息送往network层进行解密处理,需要解密完成并处理完毕,才
能释放该消息存储空间,假如在解密处理过程中存储mesh消息空间已满,且又有新的mesh
消息收进来时,无论丢弃新消息或者用新消息替换旧消息的空间,都会有丢包的问题存在。

发明内容

[0005] 有鉴于此,本发明提供了一种蓝牙Mesh节点承载层的缓存管理方法和系统,能够降低丢包风险,提高Mesh网络各节点之间通信的可靠性。
[0006] 第一方面,本发明提供了一种蓝牙Mesh节点承载层的缓存管理方法,所述承载层具有用于缓存消息的缓存空间,所述方法包括:从Mesh网络接收第一消息,在缓存空间已满
时,对所述第一消息或缓存空间内的至少一个消息进行转发处理。
[0007] 具体的,所述对第一消息进行转发处理,具体为,将所述第一消息发送回Mesh网络。
[0008] 具体的,所述缓存空间内的至少一个消息进行转发处理,具体为,将缓存空间内的至少一个消息发送回Mesh网络,并将第一消息缓存至缓存空间。
[0009] 具体的,所述对第一消息或缓存空间内的至少一个消息发送回Mesh网络,具体为,随机选取第一消息或缓存空间内的至少一个消息,将其发送回Mesh网络。
[0010] 具体的,所述将缓存空间内的至少一个消息发送回Mesh网络,具体为,根据消息在缓存空间内的缓存时间长度,将缓存空间内的至少一个消息发送回Mesh网络。
[0011] 具体的,所述根据消息在缓存空间内的缓存时间长度,将缓存空间内的至少一个消息发送回Mesh网络,具体为,将缓存时间长度较其他消息缓存时间长度短的消息,发送回
Mesh网络。
[0012] 具体的,所述根据消息在缓存空间内的缓存时间长度,将缓存空间内的至少一个消息发送回Mesh网络,具体为,将缓存时间长度较其他消息缓存时间长度长的消息,发送回
Mesh网络。
[0013] 第二方面,本发明提供了一种蓝牙Mesh系统,该系统包括多个节点,所述节点采用了上述缓存管理方法。
[0014] 本发明提供的蓝牙Mesh节点承载层的缓存管理方法和系统,在节点的缓存空间占满同时有新的第一消息从Mesh网络中传输过来时,将第一消息或者缓存空间中的至少一个
消息转发到Mesh网络中,使消息在Mesh网络中再游荡一段时间后,重新回到该节点,此时节
点在将缓存空间内的消息处理完毕后,可顺利缓存被该节点转发的消息。蓝牙Mesh节点通
过这种将消息转发到Mesh网络中以延迟接收的方法,可降低丢包风险,提高Mesh网络的可
靠性。

附图说明

[0015] 附图1为蓝牙Mesh协议栈的层次架构示意图。
[0016] 附图2为本发明所述缓存管理方法中被发送回Mesh网络的传输路径示意图。
[0017] 附图3A为本发明所述缓存管理方法的其中一种流程图。
[0018] 附图3B为本发明所述缓存管理方法的其中另一种流程图。

具体实施方式

[0019] 下面将结合本发明中附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分,而不是全部。因此,以下对在附图中提供的本发明
的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定
实施方式。基于本发明,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其
他实施手段,都属于本发明保护的范围。
[0020] 蓝牙Mesh协议栈包括如图1所示的层次架构,从上至下分为:
[0021] Model Layer(模型层),实现各类应用功能的基础;
[0022] Foundation Model Layer(基础模型层),实现应用层与Mesh网络协议的适配,定义了其中的消息、状态等属性;
[0023] Access Layer(访问层),定义应用的数据格式,以及如何使用传输层的服务,同时能够定义、控制在传输层中的数据加密和解密过程,并对于传输层送达的数据进行验证;
[0024] Upper Transport Layer(上传输层),负责对上层应用数据进行加密、解密和认证;
[0025] Lower Transport Layer(下传输层),负责网络中传送的PDU的分片和重组;
[0026] Network Layer(网络层),定义了各种消息的地址类型、格式,完成数据的网络寻址和转发;
[0027] Bearer Layer(承载层),定义了如何使用底层BLE协议栈传输网络PDU(ProtocolDataUnit,协议数据单元),承载方式包括广播承载和GATT承载;
[0028] BLE Core Specification(BLE协议栈),低功耗蓝牙协议栈,实现节点之间的无线通信连接,是实现Mesh网络的基础。
[0029] 上述承载层通过广播承载接收Mesh网络中的消息,缓存在其缓存空间中以传输网络层处理,如背景技术所述,现有Mesh网络中,当缓存空间被占满时,新的消息将因无法缓
存而被抛弃。
[0030] 有基于此,本发明的方案提供了一种蓝牙Mesh节点承载层的缓存管理方法,所述承载层具有用于缓存消息的缓存空间,所述方法包括:从Mesh网络接收第一消息,在缓存空
间已满时,对所述第一消息或缓存空间内的至少一个消息进行转发处理。
[0031] 上述第一消息在本发明中指的是,在承载层的缓存空间占满后,从Mesh网络所接收到的新的消息。上述缓存空间内的至少一个消息在本发明中指的是,在承载层的缓存空
间占满后,已缓存在该缓存空间的消息。
[0032] 上述转发处理在本发明中指的是,消息在承载层通过接口转发,而不传输往上层进行处理。在节点的正常转发中,在承载层接收消息后,需发到网络层解密、识别、认证等操
作后传输往上层进行进一步处理,当是需要中继的消息的时候,再通过承载层完成转发。本
发明所述转发处理不同于Mesh网络所定义的消息转发,其不通过上层的各类操作,而直接
在承载层通过接口转发。
[0033] 作为本发明一种可选的实施方式,上述对第一消息进行转发处理,具体为,将所述第一消息发送回Mesh网络。作为本发明另一种可选的实施方式,上述缓存空间内的至少一
个消息进行转发处理,具体为,将缓存空间内的至少一个消息发送回Mesh网络,并将第一消
息缓存至缓存空间。
[0034] 上述可选实施方式中,将第一消息发送回Mesh网络,第一消息在Mesh网络中继续进行泛洪式的传输,一段时间后重新回到该节点,节点在将缓存空间内的消息处理完毕后,
即可顺利缓存被该节点转发的消息;或者,将缓存空间内的至少一个消息发送回Mesh网络,
节点的缓存空间释放,对第一消息进行缓存,而被发送回Mesh网络的消息以同样的方式在
一段时间后重新回到该节点,在节点处理完缓存空间内的消息后,顺利缓存被发送回Mesh
网络的消息。
[0035] 在上述被发送回Mesh网络的消息重新回到该节点,缓存空间依旧被占满时,对该消息或缓存空间内的至少一个消息重复上述转发处理操作。
[0036] 参照图2,图中所示节点N1在从节点N7接收到上述第一消息时,在缓存空间占满的情况下将第一消息或缓存空间内的至少一个消息发送回Mesh网络,消息可通过如图所示第
一路径、第二路径和第三路径以及图中未示出的其他路径传输,例如,在消息经过第一路径
回到节点N1时,节点N1将缓存空间内的消息处理完毕,可顺利缓存被该节点转发的消息;又
例如,在消息经过第一路径回到节点N1时,节点N1的缓存空间依旧被占满,消息再一次被发
送回Mesh网络,经第三路径回到节点N1,如此重复。
[0037] 在上述消息的重复发回Mesh网络中,由于消息的TTL(Time To Live,生存时间)值未做修改,因此在一定的正常转发次数后,消息不再被转发,不会由于频繁的转发造成Mesh
网络中的数据泛滥。
[0038] 在一种可选的实施方式中,上述对第一消息或缓存空间内的至少一个消息发送回Mesh网络,具体为,随机选取第一消息或缓存空间内的至少一个消息,将其发送回Mesh网
络。在另一种可选的实施方式中,上述将缓存空间内的至少一个消息发送回Mesh网络,具体
为,根据消息在缓存空间内的缓存时间长度,将缓存空间内的至少一个消息发送回Mesh网
络。
[0039] 在一种可选的实施方式中,上述根据消息在缓存空间内的缓存时间长度,将缓存空间内的至少一个消息发送回Mesh网络,具体为,将缓存时间长度较其他消息缓存时间长
度短的消息,发送回Mesh网络。在另一种可选的实施方式中,上述根据消息在缓存空间内的
缓存时间长度,将缓存空间内的至少一个消息发送回Mesh网络,具体为,将缓存时间长度较
其他消息缓存时间长度长的消息,发送回Mesh网络。
[0040] 上述缓存时间长度在本发明中指的是,消息在缓存空间内的缓存时间单位长度。上述可选实施方式中,根据节点特性的不同,可随机的将第一消息或缓存空间内的至少一
个消息发送回Mesh网络,也可有选择性的将缓存空间内缓存时间长度较长或较短的消息发
送回Mesh网络。作为一种示例,在中继节点中,对消息进行转发处理造成丢包风险的可能性
较小,可随机的选择将第一消息或缓存空间内的至少一个消息发送回Mesh网络。作为另一
种示例,在朋友节点中,对消息进行转发处理造成丢包风险的可能性较大,可有选择性的将
缓存空间内缓存时间长度较长或较短的消息发送回Mesh网络;此外,由于Mesh网络为泛洪
式的传输,在考虑第一消息从其他中继路径传输过来的可能,也可将第一消息发送回Mesh
网络。
[0041] 参照图3A,其示出了上述蓝牙Mesh节点承载层的缓存管理方法的一种流程,节点在接收到第一消息时,在承载层检测缓存空间是否已满,未满则正常缓存第一消息,已满则
进一步选择是否对第一消息进行转发,是则将第一消息发回Mesh网络,否则随机或选择性
的转发缓存空间中的至少一个消息,然后再缓存第一消息。
[0042] 参照图3B,其示出了上述蓝牙Mesh节点承载层的缓存管理方法的另一种流程,节点在接收到第一消息时,在承载层检测缓存空间是否已满,未满则正常缓存第一消息,已满
随机对第一消息或缓存空间中的至少一个消息进行转发,在缓存空间中的至少一个消息被
转发的情况下,缓存第一消息。
[0043] 本发明的方案还提供了一种蓝牙Mesh系统,该系统包括多个节点,所述节点采用了上述缓存管理方法。
[0044] 本发明上述缓存管理方法和系统,在节点的缓存空间占满同时有第一消息从Mesh网络中传输过来时,将第一消息或者缓存空间中的至少一个消息转发到Mesh网络中,使消
息在Mesh网络中再游荡一段时间后,重新回到该节点,此时节点在将缓存空间内的消息处
理完毕后,可顺利缓存被该节点转发的消息。蓝牙Mesh节点通过这种将消息转发到Mesh网
络中以延迟接收的方法,可明显降低丢包风险,提高Mesh网络的可靠性。
[0045] 尽管展示、描述并指出了应用于其优选实施方式的本发明的基本新颖特征,但是应该理解,本领域的熟练技术人员可以对所描述的设备和方法的形式和细节进行各种删
节、替换和变更,而并不背离本发明的实质。凡在本发明的精神和原则之内,所作的任何修
改、等同替换、改进等,均应包含在本发明的保护范围之内。