数据转发路径选择方法及装置、存储介质、服务端
技术领域
本发明涉及蓝牙数据传输技术领域,尤其涉及一种数据转发路径选择方法及装置、存储介质、服务端。
背景技术
蓝牙技术已有近二十年的历史,以绿色节能、低成本为设计理念,大量用于手机、无线耳机等产品和相关的技术领域。近年来随着蓝牙协议4.x-5.0的发布,其中低功耗规范(BLE,Bluetooth Low Energy)试图将蓝牙推广至更广泛的低成本应用领域,如仪表监控等。
近年来,随着物联网的兴起,蓝牙组织最近也推出了蓝牙网格协议(Mesh Profile1.0,简称Mesh),以期抢占标准及市场的先机。Mesh主要面向楼宇自动化(如灯光门禁控制等),具有自适应等特点。为了满足其低成本、低功耗的设计目标,Mesh的广告承载层(空中包)以“可控的洪泛广播”方式来转发数据,它以TTL(Time To Live)及缓存检查作为“可控算法”来控制网络中数据的转发过程,采用这种方法的结果是,对于任何一个从某节点发往另一节点的数据包来说,整个数据传输网络上几乎所有节点都会需要转发该数据包一次,从而增加了网络的整体功耗,而且节点每次转发数据包还需增加一个随机的延时。采用现有的这种方法进行网络数据传输浪费了公共带宽,大幅降低传输速率,降低了数据传输的实时性。
发明内容
本发明实施例的目的是提供一种数据转发路径选择方法及装置、存储介质、服务端,能有效解决现有技术中网络数据传输浪费了公共带宽,大幅降低传输速率的问题,提高了数据传输的实时性。
为实现上述目的,本发明实施例提供了一种数据转发路径选择方法,包括步骤:
S1、预设节点向多个与所述预设节点存在直接通信的节点广播选路请求包;
S2、若当前节点不是预设的终止节点,则将所述选路请求包中的源地址修改为所述当前节点的地址,继续向与所述当前节点存在直接通信的节点广播选路请求包;
S3、若当前节点是预设的终止节点,则所述终止节点向响应目标发送选路响应包;其中,所述响应目标为向所述终止节点发送所述选路请求包的节点;
S4、当预设节点接收到多个所述选路响应包时,所述预设节点根据多个所述选路响应包进行选路协商;其中,所述选路协商包括计算节点的TTL以及通信通道的信噪比;
S5、若所述预设节点与选中的节点选路协商成功,则所述预设节点向所述选中的节点发送选路数据包;其中,所述选中的节点为一与所述预设节点存在直接通信的节点。
与现有技术相比,本发明公开的数据转发路径选择方法,通过预设节点向与自身存在直接通信的节点广播选路请求包,若当前节点不是预设的终止节点则将所述选路请求包的内容复制并修改地址后继续与自身存在直接通信的下一级节点广播选路请求包;若当前节点是预设的终止节点则所述终止节点向与自身存在直接通信的节点转发选路响应包。当所述预设节点接收到多个所述选路响应包后,根据所述选路响应包进行选路协商,当所述预设节点与一自身存在直接通信的下一级节点协商成功时,则该下一级节点为选中的节点,所述预设节点向所述选中的节点发送选路数据包。由于所述预设节点与所述选中的节点选路协商成功,则表明所述选中的节点为所述预设节点通向所述终止节点的路径中的下个最优节点的方法,通过当前节点只与其下一级的节点进行交互,减少了数据不必要的转发,增大了传输速率,提高了数据传输的实时性。
作为上述方案的改进,所述选路请求包包括源地址、目的地址和发起节点地址;其中,所述选路请求包的源地址为发送所述选路请求包的节点地址,所述选路请求包的目的地址为所述终止节点的地址,所述选路请求包的发起节点地址为所述起始节点的地址。
作为上述方案的改进,所述步骤S2具体包括:
若当前节点不是预设的终止节点,则将所述选路请求包的内容复制后生成副本数据包;
将所述副本数据包的源地址修改为所述当前节点的地址后继续向与所述当前节点存在直接通信的节点发送所述选路请求包。
作为上述方案的改进,所述选路响应包包括源地址、目的地址、解析地址;其中,所述选路响应包的源地址为发送所述选路响应包的节点地址,所述选路响应包的目的地址为所述响应目标的地址,所述解析地址为所述预设的终止节点的地址。
作为上述方案的改进,所述预设节点根据多个所述选路响应包进行选路协商具体包括:
所述预设节点根据多个所述选路响应包计算所述选路响应包的TTL以及该节点与所述预设节点之间通信通道的信噪比,并根据计算结果选择其中一节点作为所述选中的节点;
将所述选中的节点作为所述预设节点数据传输的下一节点,并保存所述选中的节点的地址至所述预设节点的路由表中;
所述预设节点根据所述路由表中的信息将所述选路数据包发送至所述选中的节点。
作为上述方案的改进,所述路由表包括多个数据项;其中,任一数据项包括数据转发路径中预设的终止节点的地址和当前节点数据传输的下一个节点的地址。
作为上述方案的改进,所述选路数据包包括源地址和、目的地址及下站地址;其中,所述选路数据包的源地址为所述起始节点的地址,所述选路数据包的目的地址为所述终止节点的地址,所述下站地址为所述选中节点的地址。
本发明实施例还提供了一种数据转发路径选择装置,包括:
选路请求模块,用于预设节点向多个与所述预设节点存在直接通信的节点广播选路请求包;
选路转发模块,用于若当前节点不是预设的终止节点,则将所述选路请求包中的源地址修改为所述当前节点的地址,继续向与所述当前节点存在直接通信的节点广播选路请求包;
选路响应模块,用于若当前节点是预设的终止节点,则所述终止节点向响应目标发送选路响应包;其中,所述响应目标为向所述终止节点发送所述选路请求包的节点;
选路协商模块,用于当预设节点接收到多个所述选路响应包时,所述预设节点根据多个所述选路响应包进行选路协商;其中,所述选路协商包括计算节点的TTL以及通信通道的信噪比;
数据发送模块,用于若所述预设节点与选中的节点选路协商成功,则所述预设节点向所述选中的节点发送选路数据包;其中,所述选中的节点为一与所述预设节点存在直接通信的节点。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任一项所述的数据转发路径选择方法。
本发明实施例还提供了一种服务端,包括一个或多个处理器;存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序包括用于执行上述任一项所述的数据转发路径选择方法。
附图说明
图1是本发明实施例1提供的一种数据转发路径选择方法的流程示意图。
图2是本发明实施例2提供的一种数据转发路径选择方法的流程示意图。
图3是本发明实施例2提供的一种数据转发路径选择方法中BLE广告包的结构示意图。
图4为本发明实施例3提供的一种数据转发路径选择装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例1提供的一种数据转发路径选择方法的流程示意图,包括步骤S1~S5:
S1、预设节点向多个与所述预设节点存在直接通信的节点广播选路请求包;
S2、若当前节点不是预设的终止节点,则将所述选路请求包中的源地址修改为所述当前节点的地址,继续向与所述当前节点存在直接通信的节点广播选路请求包;
S3、若当前节点是预设的终止节点,则所述终止节点向响应目标发送选路响应包;其中,所述响应目标为向所述终止节点发送所述选路请求包的节点;
S4、当预设节点接收到多个所述选路响应包时,所述预设节点根据多个所述选路响应包进行选路协商;其中,所述选路协商包括计算节点的TTL以及通信通道的信噪比;
S5、若所述预设节点与选中的节点选路协商成功,则所述预设节点向所述选中的节点发送选路数据包;其中,所述选中的节点为一与所述预设节点存在直接通信的节点。
参见图2,图2为本发明实施例2提供的一种数据转发路径选择方法的流程示意图。实施例2在实施例1的基础上,所述方法包括步骤S21~S28:
S21、预设节点向多个与所述预设节点存在直接通信的节点广播选路请求包;
S22、若当前节点不是预设的终止节点,则将所述选路请求包的内容复制后生成副本数据包;
S23、将所述副本数据包的源地址修改为所述当前节点的地址后继续向与所述当前节点存在直接通信的节点广播所述选路请求包。
优选地,所述选路请求包包括源地址、目的地址和发起节点地址;其中,所述选路请求包的源地址为发送所述选路请求包的节点地址,所述选路请求包的目的地址为所述终止节点的地址,所述选路请求包的发起节点地址为所述起始节点的地址。
S24、若当前节点是预设的终止节点,则所述终止节点向响应目标发送选路响应包;其中,所述响应目标为发送所述选路请求包的节点;
优选地,所述选路响应包包括源地址、目的地址、解析地址;其中,所述选路响应包的源地址为发送所述选路响应包的节点地址,所述选路响应包的目的地址为所述响应目标的地址,所述解析地址为所述预设的终止节点的地址。
S25、所述预设节点根据多个所述选路响应包计算所述选路响应包的TTL以及该节点与所述预设节点之间通信通道的信噪比,并根据计算结果选择其中一节点作为所述选中的节点;
S26、将所述选中的节点作为所述预设节点数据传输的下一节点,并保存所述选中的节点的地址至所述预设节点的路由表中;
S27、所述预设节点根据所述路由表中的信息将所述选路数据包发送至所述选中的节点。
优选地,所述路由表包括多个数据项;其中,任一数据项包括数据转发路径中预设的终止节点的地址和当前节点数据传输的下一个节点的地址。
S28、若所述预设节点与选中的节点选路协商成功,则所述预设节点向所述选中的节点发送选路数据包;其中,所述选中的节点为一与所述预设节点存在直接通信的节点。
优选地,所述选路数据包包括源地址和、目的地址及下站地址;其中,所述选路数据包的源地址为所述起始节点的地址,所述选路数据包的目的地址为所述终止节点的地址,所述下站地址为所述选中节点的地址。
基于上述方案,通过预设节点向与自身存在直接通信的节点广播选路请求包,若当前节点不是预设的终止节点则将所述选路请求包的内容复制并修改地址后继续与自身存在直接通信的下一级节点广播;若当前节点是预设的终止节点则所述终止节点向与自身存在直接通信的节点转发选路响应包。当所述预设节点接收到多个所述选路响应包后,根据所述选路响应包进行选路协商,当所述预设节点与一自身存在直接通信的下一级节点协商成功时,则该下一级节点为选中的节点,所述预设节点向所述选中的节点发送选路数据包。由于所述预设节点与所述选中的节点选路协商成功,则表明所述选中的节点为所述预设节点通向所述终止节点的路径中的下个最优节点的方法,通过当前节点只与其下一级的节点进行交互,减少了数据不必要的转发,增大了传输速率,提高了数据传输的实时性。
在蓝牙Mesh网络数据传输中一般通过BLE的广告包发送数据,而BLE的广告包又分为Mesh包及选路包。其中,Mesh包是指标准Mesh协议所传播的包,选路包是指本选路协议所用到的包,它又可分为选路请求包、选路响应包及选路数据包三种类型,每种类型的数据包都含有三个地址。
所述选路请求包包括源地址、目的地址和发起节点地址;其中,所述选路请求包的源地址为发送所述选路请求包的节点地址,所述选路请求包的目的地址为所述终止节点的地址,所述选路请求包的发起节点地址为所述起始节点的地址。
所述选路响应包还包括源地址、目的地址、解析地址;其中,所述选路响应包的源地址为发送所述选路响应包的节点地址,所述选路响应包的目的地址为所述响应目标的地址,所述解析地址为所述预设的终止节点的地址。
所述选路数据包还包括源地址和、目的地址及下站地址;其中,所述选路数据包的源地址为所述起始节点的地址,所述选路数据包的目的地址为所述终止节点的地址,所述下站地址为所述选中节点的地址。在数据转发的过程中所述选路数据包的源地址和目的地址保持不变,所述选路数据包的下站地址在不停的改变。
本发明实施例提供的数据转发路径选择方法采用数据包中的一个标识的值区分该数据包是Mesh包还是选路包。参见图3,为本发明实施例2提供的一种数据转发路径选择方法中BLE广告包的结构示意图。下面结合图3说明本发明如何区分Mesh包和选路包,若所述广告包中的AdType标志为M则该广告包为Mesh包,其中AdType标志具体为一个8位字节的数值;若所述广告包中的AdType标志为R则该广告包为选路包。本发明实施例中只有具有选路功能的节点才可以转发选路包,而普通的标准Mesh节点无法识别选路包,所以就会自动忽略选路包。本发明实施例采用上述方法避免了不必要的数据转发,节省了公共带宽,提高了数据转发的效率。
优选地,所述节点在进行数据包的转发采用的是广播模式,可以理解的,所述节点会向所有与自身存在直接通信联系的节点发送选路包,但是只有具有选路功能的节点才能直接接受所述选路包。
进一步地,若具有选路功能的节点要向标准Mesh节点发送数据,则先将选路包转换为标准的Mesh包,然后再向标准Mesh节点发送;若标准Mesh节点要向具有选路功能的节点发送数据,则先将标准的Mesh包转换为选路包,然后再向具有选路功能的节点发送。
优选地,所述具有选路功能的节点中包括路由表,所述路由表包括多个数据项;其中,任一数据项包括数据包的目的节点地址和该节点下一个节点的地址。
优选地,当路径中的一些节点被移除时,转发可能引起失败,这时原发送节点可以重新发起选路请求。
参见图4,为本发明实施例3提供的一种数据转发路径选择装置的结构示意图,所述装置包括:
选路请求模块101,用于预设节点向多个与所述预设节点存在直接通信的节点广播选路请求包;
选路转发模块102,用于若当前节点不是预设的终止节点,则将所述选路请求包中的源地址修改为所述当前节点的地址,继续向与所述当前节点存在直接通信的节点广播选路请求包;
选路响应模块103,用于若当前节点是预设的终止节点,则所述终止节点向响应目标发送选路响应包;其中,所述响应目标为向所述终止节点发送所述选路请求包的节点;
选路协商模块104,用于当预设节点接收到多个所述选路响应包时,所述预设节点根据多个所述选路响应包进行选路协商;其中,所述选路协商包括计算节点的TTL以及通信通道的信噪比;
数据发送模块105,用于若所述预设节点与选中的节点选路协商成功,则所述预设节点向所述选中的节点发送选路数据包;其中,所述选中的节点为一与所述预设节点存在直接通信的节点。
本发明实施例提供的数据转发路径选择装置,通过选路请求模块101将预设节点向多个与所述预设节点存在直接通信的节点广播选路请求包,若当前节点不是预设的终止节点,则选路转发模块102将所述选路请求包中的源地址修改为所述当前节点的地址,继续向与所述当前节点存在直接通信的节点广播选路请求包;若当前节点是预设的终止节点,则选路响应模块103向响应目标发送选路响应包;当预设节点接收到多个所述选路响应包时,选路协商模块104根据多个所述选路响应包进行选路协商;若所述预设节点与选中的节点选路协商成功,则数据发送模块105向所述选中的节点发送选路数据包的方法,通过当前节点只与其下一级的节点进行交互,减少了数据的转发次数,增大了传输速率,提高了数据传输的实时性。
本发明实施例还提供了一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任一实施例所述的数据转发路径选择方法。
本发明实施例还提供了一种服务端,包括一个或多个处理器;存储器;以及
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序包括用于执行上述任一实施例所述的数据转发路径选择方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。