掌桥专利:专业的专利平台
掌桥专利
首页

基于无线Mesh网络的中心节点路由发现方法及相关设备

文献发布时间:2023-06-19 18:37:28


基于无线Mesh网络的中心节点路由发现方法及相关设备

技术领域

本申请涉及无线网络技术领域,特别是涉及一种基于无线Mesh网络的中心节点路由发现方法及相关设备。

背景技术

随着智能家居的发展,越来越多的智能家居设备具备了联网功能,这些智能家居设备在使用的过程中需要运用一些无线网络技术。一般地,在无线网络技术中,在各路由节点需要相互通讯、但是又无法单跳到达目的节点,例如中心节点的情况下,需要建立各路由节点分别到达目的节点的路径,以上的路径建立过程就叫做路由发现。

传统的路由发现方法的各路由节点在转发路由发现广播的过程中,每个路由节点都会将接收到的路由发现广播转发至下一跳路由节点,再由下一跳路由节点继续转发。但是,在某些情况下,路由节点转发给下一跳路由节点的路由发现广播很有可能是该路由节点曾经转发过的,此时就会存在重复转发的问题,因此会影响无线网络的开销。

发明内容

基于此,有必要针对上述技术问题,提供一种能够减小路由发现的网络开销的基于无线Mesh网络的中心节点路由发现方法及相关设备。

第一方面,本申请提供了一种基于无线Mesh网络的中心节点路由发现方法,所述方法包括:

获取上一跳路由节点转发给当前跳路由节点的路由发现广播;其中,所述路由发现广播携带上一跳的最佳路径,所述上一跳的最佳路径为所述上一跳路由节点到中心节点的最佳路径;所述中心节点为第一跳路由节点;

通过将所述上一跳的最佳路径所经过的各路由节点与所述当前跳路由节点进行比对,确定所述上一跳的最佳路径的有效性;

在所述上一跳的最佳路径有效的情况下,根据所述当前跳路由节点和所述上一跳的最佳路径确定出当前跳的最佳路径,并根据所述当前跳的最佳路径更新所述路由发现广播;

将更新后的路由发现广播转发给下一跳路由节点,并将下一跳路由节点作为当前跳路由节点以继续执行路由发现,直到确定出各路由节点各自到所述中心节点的最佳路径。

第二方面,本申请提供了一种基于无线Mesh网络的中心节点路由发现系统,所述系统包括:中心节点和多个路由节点;

多个路由节点中的当前跳路由节点,用于获取上一跳路由节点转发给当前跳路由节点的路由发现广播;其中,路由发现广播携带上一跳的最佳路径,上一跳的最佳路径为上一跳路由节点到中心节点的最佳路径;中心节点为第一跳路由节点;通过将上一跳的最佳路径所经过的各路由节点与当前跳路由节点进行比对,确定上一跳的最佳路径的有效性;在上一跳的最佳路径有效的情况下,根据当前跳路由节点和上一跳的最佳路径确定出当前跳的最佳路径,并根据当前跳的最佳路径更新路由发现广播;将更新后的路由发现广播转发给下一跳路由节点,并将下一跳路由节点作为当前跳路由节点以继续执行路由发现,直到确定出各路由节点各自到中心节点的最佳路径。

在一些实施例中,上一跳路由节点转发的路由发现广播还携带本次广播标识;当前跳路由节点还用于:获取历次广播标识的集合;历次广播标识是当前跳路由节点转发过的历史路由发现广播的标识;在本次广播标识包含于集合的情况下,确定当前跳路由节点不执行路由发现。

在一些实施例中,当前跳路由节点还用于:在上一跳路由节点为多个的情况下,根据各上一跳的最佳路径和当前跳路由节点,生成当前跳路由节点的多条当前跳的备选路径;根据各条当前跳的备选路径各自对应的备选路径跳数和备选路径质量,对各条当前跳的备选路径进行路径筛选,以确定出当前跳的最佳路径。

在一些实施例中,当前跳路由节点还用于:根据各条当前跳的备选路径各自对应的备选路径跳数,从各条当前跳的备选路径中筛选出当前跳的目标备选路径;在当前跳的目标备选路径为多条的情况下,根据当前跳的目标备选路径各自对应的备选路径质量,从当前跳的目标备选路径中确定当前跳的最佳路径。

在一些实施例中,各条当前跳的备选路径存储在对应的路由表中;当前跳路由节点还用于:将确定出的当前跳的最佳路径同步存储至路由表中。

在一些实施例中,在各路由节点中的目标路由节点用于:根据对应的最佳路径与中心节点通讯失败的情况下,从目标路由节点对应的路由表中存储的备选路径中筛选出目标路径;基于目标路径与中心节点通讯。

在一些实施例中,当前跳路由节点还用于:确定当前跳路由节点接收到路由发现广播的接收时间点,以及当前跳路由节点的转发窗口;转发窗口用于控制当前跳路由节点在转发窗口的时间范围内转发更新后的路由发现广播;当前跳路由节点的转发窗口由当前跳路由节点所在的层级所确定;根据接收时间点和转发窗口确定更新后的路由发现广播的转发时间范围;基于转发时间范围内的随机时间点,将更新后的路由发现广播转发给下一跳路由节点。

第三方面,本申请提供了一种计算设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的基于无线Mesh网络的中心节点路由发现方法的步骤。

第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的基于无线Mesh网络的中心节点路由发现方法的步骤。

第五方面,本申请还提供了一种计算机程序产品。计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述的基于无线Mesh网络的中心节点路由发现方法中的步骤。

上述基于无线Mesh网络的中心节点路由发现方法、系统、计算机设备、存储介质和计算机程序产品,获取上一跳路由节点转发给当前跳路由节点的路由发现广播;其中,路由发现广播携带上一跳的最佳路径,上一跳的最佳路径为上一跳路由节点到中心节点的最佳路径;中心节点为第一跳路由节点。通过将上一跳的最佳路径所经过的各路由节点与当前跳路由节点进行比对,确定上一跳的最佳路径的有效性,在上一跳的最佳路径有效的情况下,根据当前跳路由节点和上一跳的最佳路径得到当前跳的备选路径,在上一跳的最佳路径无效的情况下,则不执行确定当前跳的最佳路径、更新和转发路由发现广播的过程,以避免多余的路径筛选和广播转发所造成的额外开销。本申请在确定上一跳的最佳路径有效的情况下,才考虑确定出当前跳的最佳路径,并根据当前跳的最佳路径更新路由发现广播;将更新后的路由发现广播转发给下一跳路由节点,能够避免相同路径的重复转发,接着继续将下一跳路由节点作为当前跳路由节点以继续执行路由发现的过程,直到确定出各路由节点各自到中心节点的最佳路径,从而减小路由发现的网络开销。

附图说明

图1为本申请实施例提供的一种基于无线Mesh网络的中心节点路由发现方法的流程示意图;

图2为本申请实施例提供的一种路由节点之间的位置关系示意图;

图3为本申请实施例提供的另一种路由节点之间的位置关系示意图;

图4为本申请实施例提供的另一种路由节点之间的位置关系示意图;

图5为本申请实施例提供的另一种路由节点之间的位置关系示意图;

图6为本申请实施例提供的一种路由表的示意图;

图7为本申请实施例提供的另一种路由节点之间的位置关系示意图;

图8为本申请实施例提供的一种基于无线Mesh网络的中心节点路由发现系统的结构示意图;

图9为本申请实施例提供的一种计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在一些实施例中,如图1所示,提供了一种基于无线Mesh网络的中心节点路由发现方法,该方法应用于中心节点以及除中心节点之外的各路由节点之间的交互为例进行说明,包括以下步骤:

步骤102,获取上一跳路由节点转发给当前跳路由节点的路由发现广播。

可以理解,在某个无线网络中,包括多个不同的路由节点,在各路由节点之间需要互相通讯,但是又无法单跳到达目的节点的情况下,需要建立各路由节点分别到达目的节点,例如中心节点的通讯路径,以上的路径建立过程就叫做路由发现。

其中,目的节点可以理解为某个或多个路由节点想要与其进行通讯的通讯对象。中心节点,则是无线网络的发起者,一般集成在网关或者中控内部。

在一些实施例中,中心节点可以是家庭网关、中控、智能设备,例如多功能音响等形态,而除中心节点之外的其他路由节点则可以是一些不同的智能设备。可以理解,中心节点是无线网络内绝大多数信息的集中点,同样也是数据量最大、通讯最为频繁的路由节点。例如,用户在通过语音指令或者软件控制其他路由节点的情况下,都需要经过中心节点下发命令,其他路由节点的信息上报绝大多数也需要上报至中心节点,由中心节点进行集中处理。

示例性的,如图2所示,为一个无线网络中各路由节点之间的位置关系示意图,该无线网络一共有8个路由节点,分别是节点1、节点2、节点3、节点4、节点5、节点6、节点7和节点8。其中,节点1是无线网络的发起者,也是该无线网络的中心节点,而在无线网络内除中心节点之外的路由节点则是普通的路由节点,例如节点2、节点3、节点4、节点5、节点6、节点7和节点8在图2所示的无线网络中则是普通的路由节点。

需要说明的是,图2中用虚线连接的两个路由节点代表能够直接相互通讯,虚线上的数字代表两个用虚线连接的路由节点之间的信号值,例如图2中的节点1和节点4之间连接了一条虚线,这表示节点1和节点4能够直接互相通讯,且节点1和节点4之间的信号值为1。其中,信号值所反映的信号强度可分为多档,例如信号值为1则为第一档、信号值为2则为第二档等,信号值越小则表示信号强度越大,信号值越大则表示信号强度越小。

在其他情况下,没有直接以虚线连接起来的路由节点则代表不能直接进行通讯,若这两个路由节点需要通讯,则只能通过其他路由节点进行中继转发。例如节点4和节点6没有以一条虚线连接,则表示节点4和节点6不能直接相互通讯,若节点4需要和节点6通讯,则需要通过其他路由节点,例如通过节点5进行中继转发。

可以理解,由于中心节点无法直接与所有路由节点直接互相通讯,所以需要通过中心节点的路由发现来建立各路由节点分别到中心节点之间的通讯路径,各路由节点则可以根据建立好的通讯路径实现和中心节点的通讯。

在本实施例中,路由发现广播,是由无线网络的中心节点发起的、且通过全网内除中心节点之外的其他各路由节点进行转发以实现该中心节点的路由发现的广播。可以理解,其他普通的路由节点也是可以发起路由发现广播的,只是其不属于中心节点的路由发现而已。

通过各路由节点在无线网络中转发路由发现广播,可以得到各路由节点分别到该中心节点之间的通讯路径。在实际应用中,中心节点1可以按照周期T0,例如按照一个周期60秒来循环发送路发现广播。

其中,中心节点是首个发送路由发现广播的路由节点,因此中心节点可以是第一跳路由节点。路由发现广播携带上一跳的最佳路径,即,路由发现广播携带上一跳路由节点所确定的、且是上一跳路由节点到中心节点的最佳路径。其中,最佳路径可以指某个路由节点到中心节点经过路由节点个数最少,或者信号强度最大的路径等,本领域技术人员也可以根据实际需求制定其他的用于衡量最佳路径的标准,本申请对此不做具体限定。

可以理解,当前跳路由节点指的是接收到上一跳路由节点的路由发现广播、且还未转发该路由发现广播的路由节点,上一跳路由节点为发送路由发现广播给当前跳路由节点的路由节点,下一跳路由节点为当前跳路由节点需要将接收到的路由发现广播进行转发的通讯对象。其中,当前跳路由节点与上一跳路由节点相邻,当前跳路由节点也与下一跳路由节点相邻。换句话说,当前跳路由节点是上一跳路由节点的邻节点,当前跳路由节点也是下一跳路由节点的邻节点。

其中,邻节点表示路由节点周边可以直接进行通讯的通讯节点,不需要通过其他路由节点进行中继转发。例如,图2中节点1的邻节点为节点2、节点4和节点5。

在一些实施例中,中心节点作为首次发起路由发现广播的路由节点,首先向各邻节点发送路由发现广播。此时,可以将中心节点作为当前跳路由节点,而将中心节点的各邻节点作为下一跳路由节点。在中心节点的某个邻节点接收到中心节点发送的路由发现广播后,则可以将该邻节点作为当前跳路由节点,将转发给该邻节点路由发现广播的中心节点作为上一跳路由节点,作为当前跳路由节点的邻节点接收到路由发现广播后,则可以从各路由发现广播确定本节点到中心节点的最佳路径,并将确定出的最佳路径加入路由发现广播并转发给其邻节点,即下一跳节点,由下一跳节点继续执行最佳路径的确定,并转发路由发现广播的过程。

示例性的,如图3所示,节点1首先发起路由发现广播,由于节点1的邻节点包括节点2、节点4和节点5,所以节点2、节点4和节点5可以直接接收到节点1发送的第一跳路由发现广播。其中,该路由发现广播可以仅携带该广播的发起者地址,例如节点1的地址,或者还携带本次路由发现的标识。可以理解,发起者地址为了表示发起者的身份,标识是为了区分同一发起者的不同时间点发起的路由发现广播。需要说明的是,每个路由节点都可以是路由发现广播的发起者,并不仅限于中心节点。

具体地,当前跳路由节点获取一个或多个上一跳路由节点所转发的、一个或多个路由发现广播。

步骤104,通过将上一跳的最佳路径所经过的各路由节点与当前跳路由节点进行比对,确定上一跳的最佳路径的有效性。

具体地,当前跳路由节点获取来自一个或多个上一跳路由节点转发的路由发现广播中携带的上一跳的最佳路径,并将这一条或多条上一跳的最佳路径所经过的各路由节点与当前跳路由节点进行比对,确定一条或多条上一跳的最佳路径所经过的各路由节点与当前跳路由节点是否发生重复。若不发生重复,则说明上一跳的最佳路径有效,此时当前跳路由节点可继续执行路由发现的过程;若发生重复,则说明上一跳的最佳路径无效,此时当前跳路由节点则不继续执行路由发现的过程,例如直接忽略掉上一跳的最佳路径。

为了便于理解,现举例说明。假设节点5收到来自节点6和节点7转发的路由发现广播,这两条路由发现广播所附带的最佳路径分别为:节点1->节点5->节点6和节点1->节点5->节点7,节点5在收到以上两条最佳路径后,会检查这两条最佳路径明显是否有本节点,即是否包括节点5。由于节点1->节点5->节点6和节点1->节点5->节点7都包括节点5,因此判定这两条最佳路径无效。例如节点5收到来自节点4转发的路由发现广播,且该路由发现广播所附带的最佳路径是:节点1->节点4,由于该最佳路径不包含节点5本身,因此可以判定该最佳路径是有效的。

步骤106,在上一跳的最佳路径有效的情况下,根据当前跳路由节点和上一跳的最佳路径确定出当前跳的最佳路径,并根据当前跳的最佳路径更新路由发现广播。

具体地,在当前跳路由节点确定上一跳的最佳路径有效的情况下,当前跳路由节点则将当前跳路由节点加入上一跳的最佳路径中,得到当前跳的最佳路径,并将当前跳的最佳路径替换掉路由发现广播中的上一跳的最佳路径,以更新该路由发现广播。

例如,当前跳路由节点为节点7,当节点7确定上一跳的最佳路径节点1->节点5有效的情况下,则将节点7加入上一跳的最佳路径中,得到当前跳的最佳路径为节点1->节点5->节点7,并将当前跳的最佳路径1->节点5->节点7替换路由发现广播中的上一跳的最佳路径节点1->节点5以更新该路由发现广播。

步骤108,将更新后的路由发现广播转发给下一跳路由节点,并将下一跳路由节点作为当前跳路由节点以继续执行路由发现,直到确定出各路由节点各自到中心节点的最佳路径。

具体地,当前跳路由节点将更新后的路由发现广播转发给其邻节点,即下一跳路由节点,并将下一跳路由节点作为当前跳路由节点以继续执行路由发现。即,将下一跳路由节点作为当前跳路由节点继续将其获取到的路由发现广播中的最佳路径进行有效性比对,且继续执行最佳路径的确定以及路由发现广播的转发过程,直到确定出各路由节点各自到中心节点的最佳路径,从而完成中心节点的路由发现的过程。

示例性的,如图4所示,按照邻节点的关系,节点1将第一跳路由发现广播发送给节点2、节点4和节点5后,节点2、节点4和节点5将作为当前跳路由节点,在确定出当前跳的最佳路径后,分别将包含最佳路径的路由发现广播分别发送给下一跳节点。例如,节点2在确定本节点的最佳路径并进行路由发现广播的更新之后,可以将更新后的路由发现广播发送给节点1、节点3和节点6。节点4在确定本节点的最佳路径并进行路由发现广播的更新之后,可以将更新后的路由发现广播发送给节点1和节点5。节点5在确定本节点的最佳路径并进行路由发现广播的更新之后,可以将更新后的路由发现广播发送给节点1、节点4、节点6和节点7。

上述基于无线Mesh网络的中心节点路由发现方法,获取上一跳路由节点转发给当前跳路由节点的路由发现广播;其中,路由发现广播携带上一跳的最佳路径,上一跳的最佳路径为上一跳路由节点到中心节点的最佳路径;中心节点为第一跳路由节点。通过将上一跳的最佳路径所经过的各路由节点与当前跳路由节点进行比对,确定上一跳的最佳路径的有效性,在上一跳的最佳路径有效的情况下,根据当前跳路由节点和上一跳的最佳路径得到当前跳的备选路径,在上一跳的最佳路径无效的情况下,则不执行确定当前跳的最佳路径、更新和转发路由发现广播的过程,以避免多余的路径筛选和广播转发所造成的额外开销。本申请在确定上一跳的最佳路径有效的情况下,才考虑确定出当前跳的最佳路径,并根据当前跳的最佳路径更新路由发现广播;将更新后的路由发现广播转发给下一跳路由节点,能够避免相同路径的重复转发,接着继续将下一跳路由节点作为当前跳路由节点以继续执行路由发现的过程,直到确定出各路由节点各自到中心节点的最佳路径,从而减小路由发现的网络开销。

在一些实施例中,上一跳路由节点转发的路由发现广播还携带本次广播标识。在步骤102之后,本申请的基于无线Mesh网络的中心节点路由发现方法具体还包括但不限于包括步骤:获取历次广播标识的集合;在本次广播标识包含于集合的情况下,确定当前跳路由节点不执行路由发现。

其中,历次广播标识是当前跳路由节点转发过的历史路由发现广播的标识。可以理解,在一次路由发现过程中,如果某路由节点已经发送或者转发过本次的路由发现广播,则会同步记录该路由发现广播的标识,作为历史路由发现广播的标识。

在一些实施例中,历史路由发现广播的标识可以是历史路由发现的唯一ID,用于区分同一个路由节点在不同时间点所发送的路由发现广播。在实际应用中,对于某一个路由节点而言,该路由节点的唯一ID可以是递增的。例如节点1在时间点A发起了一次路由发现广播,那么可以将节点1本次的唯一ID设置成1,若节点1在时间点B又发起了一次路由发现广播,那么可以将其的唯一ID设置为2。需要说明的是,节点2在转发节点1发起的路由发现广播时,需要保持节点1设置的唯一ID不变,如果节点2自己主动发起了一个路由发现广播,那么节点2的唯一ID也可以从1开始递增。由于节点1和节点2的地址不一致,所以节点2的唯一ID与节点1的唯一ID不冲突,即便其它路由节点可能会接收到两个相同的唯一ID,但是其它路由节点可以通过识别路由节点的地址确定具体的发起者。

具体地,当前跳路由节点在接收到上一跳路由节点转发的路由发现广播之后,则可以获取当前跳路由节点转发过的历史路由发现广播的标识的集合,即历次广播标识的集合。此外,当前跳路由节点还可以获取上一跳路由节点转发的路由发现广播中的标识,即本次广播标识。在当前跳路由节点确定本次广播标识包含于历次广播标识的集合的情况下,则说明当前跳路由节点接收到的路由发现广播是自己曾经转发过的路由发现广播。为了减少网络开销,当前跳路由节点则不执行路由发现,即,当前跳路由节点不再执行最佳路径的确定以及路由发现广播的转发过程。也就是说,本申请通过在路由发现广播中携带标识,并在当前跳路由节点接收到上一跳路由节点发送的路由发现广播后,通过标识比对的过程避免路由发现广播进行重复转发的问题,从而有效减小网络开销。

在一些实施例中,如果当前跳路由节点确定本次广播标识包含于历次广播标识的集合,则可以在超过一定的时间后清除该本次广播标识。因为超过时间后该路由发现广播很有可能在整个无线网络中消逝,这种情况下则不需要保存无意义的广播标识,所以通过以上操作可以释放广播标识额外占用的内存资源。其中,具体的超时时间可根据无线网络中的最大路由层级所确定,一般需要大于路由层级。例如,最大路由层级是10,则可以将超时时间设置为大于10。

示例性的,如图4所示,按照邻节点的关系,节点2、节点4和节点5在转换其更新后的路由发现广播之后,节点1、节点3、节点4、节点5、节点6和节点7都会接收到对应的路由发现广播。其中,节点1会接收到来自节点2、节点4和节点5转发的路由发现广播,然而,节点1通过比对各路由发现广播的标识发现是自己曾经转发过的路由发现广播,则不再执行最佳路径的确定以及路由发现广播的转发过程。

在一些实施例中,步骤106具体包括但不限于包括步骤:在上一跳路由节点为多个的情况下,根据各上一跳的最佳路径和当前跳路由节点,生成当前跳路由节点的多条当前跳的备选路径;根据各条当前跳的备选路径各自对应的备选路径跳数和备选路径质量,对各条当前跳的备选路径进行路径筛选,以确定出当前跳的最佳路径。

其中,当前跳的备选路径指的是当前跳路由节点到达中心节点的路径。可以理解,当前跳的备选路径可以为多条,且当前跳的备选路径不一定是当前跳路由节点到达中心节点的最佳路径。

备选路径跳数,指的是备选路径所经过的路由节点的个数。备选路径质量,指的是根据备选路径中各路由节点之间的信号值所确定的链路质量。

在一些实施例中,备选路径质量可以通过备选路径中所有信号值的平均值确定,也可以选取其中一条链路上信号强度最差的信号值所确定。例如,如图4所示,假设其中一个路由节点的备选路径是节点1->节点5->节点7,则该路径有两条链路,分别是节点1->节点5和节点5->节点7,从图4可看出,节点1->节点5的信号值为4,节点5->节点7的信号值为3,由于信号值越大则表示其对应的信号强度越小,此时则可将信号强度最差的链路确定为节点1->节点5,并将信号值4确定为整条备选路径的备选路径质量。

具体地,在当前跳路由节点的上一跳路由节点为多个的情况下,当前跳路由节点则将当前跳路由节点分别加入至多个上一跳路由节点各自确定的上一跳的最佳路径中,得到当前跳路由节点的多条当前跳的备选路径。当前跳路由节点可以仅根据备选路径跳数对各条当前跳的备选路径进行路径筛选,还可以仅根据备选路径质量对各条当前跳的备选路径进行路径筛选,或者结合备选路径跳数和备选路径质量对各条当前跳的备选路径进行路径筛选,以确定出当前跳的最佳路径。本申请实施例通过备选路径跳数和备选路径质量这两个维度对备选路径进行路径选择,使选取到的最佳路径的质量更好。

在一些实施例中,步骤“根据各条当前跳的备选路径各自对应的备选路径跳数和备选路径质量,对各条当前跳的备选路径进行路径筛选,以确定出当前跳的最佳路径”具体包括但不限于包括步骤:根据各条当前跳的备选路径各自对应的备选路径跳数,从各条当前跳的备选路径中筛选出当前跳的目标备选路径;在当前跳的目标备选路径为多条的情况下,根据当前跳的目标备选路径各自对应的备选路径质量,从当前跳的目标备选路径中确定当前跳的最佳路径。

具体地,当前跳路由节点可以按照备选路径跳数以及备选路径质量的顺序从各条当前跳的备选路径中确定出当前跳的最佳路径。即,当前跳路由节点可以备选路径各自对应的备选路径跳数,先从各条当前跳的备选路径中筛选出跳数最小的路径作为目标备选路径。在当前跳的目标备选路径为多条的情况下,根据当前跳的目标备选路径各自对应的备选路径质量,从当前跳的目标备选路径中确定备选路径质量最好的路径作为当前跳的最佳路径。

在一些实施例中,若从各条当前跳的备选路径中筛选出跳数最小的路径仅有一条的情况下,则直接将该路径作为当前跳的最佳路径。

在一些实施例中,如果目标备选路径中有多于一条的路径的备选路径质量相同,此时当前跳路由节点则考虑将最先收到的目标备选路径作为当前跳的最佳路径,或者可以随机选取一条目标备选路径作为当前跳的最佳路径。

在一些实施例中,如果当前跳路由节点仅收到上一跳路由节点转发的一条路径,则在该路径中加上当前跳路由节点后,将得到的路径直接为当前跳的最佳路径。

需要说明的是,备选路径跳数多,则代表需要传递的消息需要经过多个路由节点进行转发,而各路由节点转发消息是需要时间的,因此这会导致消息的实时性下降,因此本申请实施例优先比对备选路径跳数,在根据备选路径跳数选取不到唯一的最佳路径的情况下才考虑通过备选路径质量进行选取。备选路径质量低于备选路径跳数的原因是,各路由节点中信号强度最差的标准都是在可用的标准之上,且底层重发间隔短,耗用资源小,整体耗时短,因此将备选路径跳数作为第一优先级、将备选路径跳数作为第二优先级选取最佳路径的方式,能够有效降低网络的开销和降低通讯延时。

示例性的,如图4所示,节点5会分别收到节点4和节点1发送的路由发现广播,且根据路由发现广播中携带的路径生成节点5的备选路径,分别为:节点1->节点4->节点5和节点1->节点5,根据最佳路径筛选的原则,节点5优先选取备选路径跳数最小的目标备选路径,即,节点1->节点5,由于目标备选路径仅有一条,则直接将该目标备选路径确定为节点5的最佳路径。

示例性的,如图5所示,节点7收到来自节点5转发的路由发现广播,且根据路由发现广播中携带的路径生成节点7的备选路径为:节点1-->节点5-->节点7,备选路径质量为4。节点3收到来自节点2转发的路由发现广播,且根据路由发现广播中携带的路径生成节点3的备选路径为:节点1-->节点2-->节点3,备选路径质量为3。由于节点7和节点3接收到的路径仅为一条,所以直接将节点7和节点5确定的备选路径确定为最佳路径即可。

示例性的,如图5所示,节点6则收到了2个路由发现广播,其中,节点6将本节点分别加入两个路由发现广播分别对应的路径中,得到两条不同的备选路径。其中,第1路径为:节点1->节点2->节点6,备选路径质量为5,第2路径为节点1->节点5->节点6,备选路径质量为4。节点6按照最佳路径筛选的原则中的优先级顺序,对第1路径和第2路径进行筛选,由于这两条备选路径的跳数一致,所以再根据备选路径质量再次进行筛选,得到节点6的最佳路径为第2路径。

在一些实施例中,各条当前跳的备选路径存储在对应的路由表中。在步骤“从当前跳的目标备选路径中确定当前跳的最佳路径”之后,本申请的基于无线Mesh网络的中心节点路由发现方法具体还包括但不限于包括步骤:将确定出的当前跳的最佳路径同步存储至路由表中。

其中,路由表存储有各当前跳路由节点分别到中心节点的备选路径。可以理解,该备选路径可以是当前跳路由节点到中心节点的所有路径,也可以是从当前跳路由节点到中心节点的所有路径中,根据最佳路径筛选的原则筛选出的N条路径。

具体地,当前跳路由节点在确定本节点的最佳路径之后,需要将该最佳路径同步存储至路由表中,并且将其作为第一优先的路径,优先通过路由表中的第一路径与中心节点进行通讯。此外,本申请实施例通过在路由表中保存最佳路径和多个备选路径,能够在当前跳路由节点通过最佳路径不能与中心节点通讯的情况下,还能快速选取较优的备选路径进行路由修复,无需重新发起路由发现,大大减少网络开销。

在一些实施例中,步骤108中的“将更新后的路由发现广播转发给下一跳路由节点”具体包括但不限于包括步骤:确定当前跳路由节点接收到路由发现广播的接收时间点,以及当前跳路由节点的转发窗口;根据接收时间点和转发窗口确定更新后的路由发现广播的转发时间范围;基于转发时间范围内的随机时间点,将更新后的路由发现广播转发给下一跳路由节点。

其中,转发窗口用于控制当前跳路由节点在转发窗口的时间范围内转发更新后的路由发现广播,当前跳路由节点的转发窗口由当前跳路由节点所在的层级所确定。

路由发现广播还携带转发延时,转发延时指的是当前跳路由节点接收到上一跳路由节点的路由发现广播时间点,到其真实开始转发路由发现广播给下一跳路由节点的时间。需要说明的是,下一跳路由节点接收到的当前跳路由节点发送的更新后的路由发现广播,同样也携带有延时信息。

可以理解,转发延时是为了保证当前跳路由节点转发到下一跳路由节点时间能够同步,因为随机错开时间的话就会存在有些路由发现广播转发得早、有些路由发现广播转发得晚的问题。如果不携带转发延时的话,当前跳路由节点就无法得知上一跳路由节点是经过随机延时多久才转发出来的,就会导致当前跳路由节点再转发给下一跳路由节点的时间区间可能不会落在预定的区间。

在一些实施例中,本申请还能够对无线网络中的各路由节点进行层级划分,例如将某一个路由节点作为目的节点,例如中心节点,并将中心节点确定为0级路由节点,则其他路由节点可以根据其到目的节点的最短跳数进行层级划分。

示例性的,如图3所示,假设中心节点,即节点1为0级路由节点,且节点4、节点5和节点2到节点1的跳数都为1,则可以确定节点4、节点5和节点2为1级路由节点。又由于节点3、节点6和节点7到节点1的最短跳数都为2,或者说节点3、节点6和节点7可以直接接收到1级路由节点发送的路由发现广播,所以可以确定节点3、节点6和节点7为2级路由节点,同理,也可以将节点8确定为3级路由节点。

可以理解,结合对无线网络中的各路由节点进行层级划分的结果和转发延时的机制,可以让各级路由节点在一个确定的时间窗口内接收和转发路由发现广播,避免不同层级路由节点交错转发,否则可能使得路由发现过程中出现将非最短路径误判为最短路径的问题。如图3所示,节点2、节点4和节点5在接收到节点1发送的路由发现广播之后,会分别在随机时间转发至其对应的邻节点,此时,有可能节点2是1级路由节点中最开始转发的,然后紧接着节点3又是2级路由节点中最开始转发的,然后又到节点6开始转发,若这时节点5还没转发路由发现广播,则会导致节点8的最佳路径变成:节点8->节点6->节点3->节点2->节点1,而不是真实的最佳路径,即:节点8->节点7->节点5->节点1。

需要说明的是,转发延时的引入使得不同层级的路由节点在不同的时间窗口内转发。例如,从节点1转发路由发现广播开始计时,由于节点2、节点4和节点5都是1级路由节点,则节点2、节点4和节点5可以在0秒到1秒内转发路由发现广播,由于节点3、节点6和节点7为2级路由节点,则节点3、节点6和节点7可以在1秒到2秒内转发路由发现广播,由于节点8为3级路由节点,则节点8可以在2秒到3秒内转发路由发现广播。

在某些情况下,如果节点6在0.2秒的时候接收到了节点2的转发的路由发现广播,由于节点6用于监控转发时间的时间窗口是1秒到2秒,且0.2秒不在时间窗口的范围内,所以此时节点6还不能转发路由发现广播给自己的邻节点,需要继续等待。若节点6在等待的过程中,例如在0.8秒的时候接收到了节点5转发的路由发现广播,由于0.8秒仍然不在时间窗口的范围内,所以此时节点6还需要继续等待,且将接收到的有效路径存储到自己的路由表中。当节点6等待结束,例如等待1秒后,就可以根据其时间窗口的范围添加一个随机时间点,例如0.3秒,并根据其添加的随机时间点等待0.3秒,节点6等待结束后则将其确定的最佳路径转发给其邻节点。需要说明的是,时间窗口的具体范围可以根据网络规模和网络结构进行动态调整,本申请对此不做具体限定。

具体地,当前跳路由节点确定其接收到上一跳路由节点发送的路由发现广播的接收时间点以及当前跳路由节点的转发窗口。如果接收时间点位于转发窗口的时间范围之内,则可以将接收时间点和转发窗口的结束时间点之间的时间范围确定更新后的路由发现广播的转发时间范围。如果接收时间点早于或等于转发窗口的开始时间点,则可以直接将转发窗口的时间范围确定为更新后的路由发现广播的转发时间范围。当前跳路由节点根据在该转发时间范围内的某个随机时间点,将更新后的路由发现广播转发给下一跳路由节点。

为了便于理解,现举例说明,假设上一跳路由节点发送的路由发现广播所携带的转发延时为t1,则当前跳路由节点在接收到上一跳路由节点发送的路由发现广播的接收时间点后延时T-t1后开始计时,并在T时间内的随机时间点转发已附带自己的延时信息的路由发现广播。需要说明的是,T是所有路由节点约定好的一个固定的值,t1则是在每次广播转发过程中具体确定的、且在每个路由节点每次转发路由发现广播的过程中都有可能是不同的。

在一些实施例中,根据以上路由发现的步骤可以得出每个路由节点到中心节点的所有路径。在得出每个路由节点到中心节点的所有路径之后,可以建立如图6所示的路由表以进行同步存储。其中,路由表包括节点2、节点3、节点4、节点5、节点6、节点7和节点8分别到节点1的所有路径,LQ表示的是对应路径的链路质量,LIST表示对应的路径。需要说明的是,对于节点2至节点8每一列的中心节点的路由表,都是保存在这个路由节点本身的存储器上的,直到下一次中心节点发起路由发现才可能被刷新。

在一些实施例中,根据图6路由表中的最佳路径,即根据图6中各路由节点的第1路径,可以绘制出如图7所示的、中心节点到其他各路由节点的网络结构图。其中,实线为最佳路径,虚线是除最佳路径之外的备选路径,实线和各路由节点形成一个树状结构,节点1则为树状结构中的根节点。

在一些实施例中,在步骤108之后,本申请的基于无线Mesh网络的中心节点路由发现方法具体还包括但不限于包括步骤:在各路由节点中的目标路由节点根据对应的最佳路径与中心节点通讯失败的情况下,从目标路由节点对应的路由表中存储的备选路径中筛选出目标路径;控制目标路由节点基于目标路径与中心节点通讯。

其中,目标路由节点是需要和中心节点进行通讯的路由节点。

具体地,各路由节点中的目标路由节点根据其在路由表中存储的最佳路径与中心节点进行通讯,在通讯过程中出现通讯失败的情况下,目标路由节点则从其路由表中存储的备选路径中筛选出其中一条路径,作为目标路径。目标路由节点则基于筛选出的目标路径与中心节点通讯。本申请实施例通过在路由表中存储各路由节点的备选路径,能够在路由节点通过最佳路径不能与中心节点通讯的情况下,还能快速选取较优的备选路径进行路由修复,无需重新发起路由发现,大大减少网络开销。

在一些实施例中,申请的基于无线Mesh网络的中心节点路由发现方法具体还包括但不限于包括如下步骤:

当前跳路由节点获取上一跳路由节点转发给当前跳路由节点的路由发现广播。

当前跳路由节点获取历次广播标识的集合,在本次广播标识包含于集合的情况下,确定当前跳路由节点不执行路由发现,在本次广播标识包含于集合的情况下,执行下一个步骤。

当前跳路由节点通过将上一跳的最佳路径所经过的各路由节点与当前跳路由节点进行比对,确定上一跳的最佳路径的有效性。在确定上一跳的最佳路径的无效的情况下,当前跳路由节点不执行路由发现,在确定上一跳的最佳路径的有效的情况下,执行下一个步骤。

在上一跳路由节点为1个的情况下,直接根据各上一跳的最佳路径和当前跳路由节点生成当前跳的最佳路径。在上一跳路由节点为多个的情况下,根据各上一跳的最佳路径和当前跳路由节点,生成当前跳路由节点的多条当前跳的备选路径;根据各条当前跳的备选路径各自对应的备选路径跳数,从各条当前跳的备选路径中筛选出当前跳的目标备选路径。

在当前跳的目标备选路径为1条的情况下,直接将该目标备选路径确定为当前跳的最佳路径。在当前跳的目标备选路径为多条的情况下,根据当前跳的目标备选路径各自对应的备选路径质量,从当前跳的目标备选路径中确定当前跳的最佳路径。

将确定出的当前跳的最佳路径同步存储至路由表中。

根据当前跳的最佳路径更新路由发现广播,并确定当前跳路由节点接收到路由发现广播的接收时间点,以及当前跳路由节点的转发窗口,根据接收时间点和转发窗口确定更新后的路由发现广播的转发时间范围,基于转发时间范围内的随机时间点,将更新后的路由发现广播转发给下一跳路由节点。

将更新后的路由发现广播转发给下一跳路由节点,并将下一跳路由节点作为当前跳路由节点以继续执行路由发现,直到确定出各路由节点各自到中心节点的最佳路径。

在各路由节点中的目标路由节点根据对应的最佳路径与中心节点通讯失败的情况下,从目标路由节点对应的路由表中存储的备选路径中筛选出目标路径,控制目标路由节点基于目标路径与中心节点通讯。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于无线Mesh网络的中心节点路由发现方法的基于无线Mesh网络的中心节点路由发现系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于无线Mesh网络的中心节点路由发现系统实施例中的具体限定可以参见上文中对于基于无线Mesh网络的中心节点路由发现方法的限定,在此不再赘述。

参考图8,为本申请实施例提供的一种基于无线Mesh网络的中心节点路由发现系统的结构示意图。在一些实施例中,如图8所示,提供了一种基于无线Mesh网络的中心节点路由发现系统,包括中心节点802和多个路由节点804,其中:

多个路由节点804中的当前跳路由节点,用于获取上一跳路由节点转发给当前跳路由节点的路由发现广播;其中,路由发现广播携带上一跳的最佳路径,上一跳的最佳路径为上一跳路由节点到中心节点802的最佳路径;中心节点802为第一跳路由节点;通过将上一跳的最佳路径所经过的各路由节点与当前跳路由节点进行比对,确定上一跳的最佳路径的有效性;在上一跳的最佳路径有效的情况下,根据当前跳路由节点和上一跳的最佳路径确定出当前跳的最佳路径,并根据当前跳的最佳路径更新路由发现广播;将更新后的路由发现广播转发给下一跳路由节点,并将下一跳路由节点作为当前跳路由节点以继续执行路由发现,直到确定出各路由节点各自到中心节点802的最佳路径。

上述基于无线Mesh网络的中心节点路由发现系统,获取上一跳路由节点转发给当前跳路由节点的路由发现广播;其中,路由发现广播携带上一跳的最佳路径,上一跳的最佳路径为上一跳路由节点到中心节点802的最佳路径;中心节点802为第一跳路由节点。通过将上一跳的最佳路径所经过的各路由节点与当前跳路由节点进行比对,确定上一跳的最佳路径的有效性,在上一跳的最佳路径有效的情况下,根据当前跳路由节点和上一跳的最佳路径得到当前跳的备选路径,在上一跳的最佳路径无效的情况下,则不执行确定当前跳的最佳路径、更新和转发路由发现广播的过程,以避免多余的路径筛选和广播转发所造成的额外开销。本申请在确定上一跳的最佳路径有效的情况下,才考虑确定出当前跳的最佳路径,并根据当前跳的最佳路径更新路由发现广播;将更新后的路由发现广播转发给下一跳路由节点,能够避免相同路径的重复转发,接着继续将下一跳路由节点作为当前跳路由节点以继续执行路由发现的过程,直到确定出各路由节点各自到中心节点802的最佳路径,从而减小路由发现的网络开销。

在一些实施例中,上一跳路由节点转发的路由发现广播还携带本次广播标识;当前跳路由节点还用于:获取历次广播标识的集合;历次广播标识是当前跳路由节点转发过的历史路由发现广播的标识;在本次广播标识包含于集合的情况下,确定当前跳路由节点不执行路由发现。

在一些实施例中,当前跳路由节点还用于:在上一跳路由节点为多个的情况下,根据各上一跳的最佳路径和当前跳路由节点,生成当前跳路由节点的多条当前跳的备选路径;根据各条当前跳的备选路径各自对应的备选路径跳数和备选路径质量,对各条当前跳的备选路径进行路径筛选,以确定出当前跳的最佳路径。

在一些实施例中,当前跳路由节点还用于:根据各条当前跳的备选路径各自对应的备选路径跳数,从各条当前跳的备选路径中筛选出当前跳的目标备选路径;在当前跳的目标备选路径为多条的情况下,根据当前跳的目标备选路径各自对应的备选路径质量,从当前跳的目标备选路径中确定当前跳的最佳路径。

在一些实施例中,各条当前跳的备选路径存储在对应的路由表中;当前跳路由节点还用于:将确定出的当前跳的最佳路径同步存储至路由表中。

在一些实施例中,在各路由节点中的目标路由节点用于:根据对应的最佳路径与中心节点802通讯失败的情况下,从目标路由节点对应的路由表中存储的备选路径中筛选出目标路径;基于目标路径与中心节点802通讯。

在一些实施例中,当前跳路由节点还用于:确定当前跳路由节点接收到路由发现广播的接收时间点,以及当前跳路由节点的转发窗口;转发窗口用于控制当前跳路由节点在转发窗口的时间范围内转发更新后的路由发现广播;当前跳路由节点的转发窗口由当前跳路由节点所在的层级所确定;根据接收时间点和转发窗口确定更新后的路由发现广播的转发时间范围;基于转发时间范围内的随机时间点,将更新后的路由发现广播转发给下一跳路由节点。

在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于无线Mesh网络的中心节点路由发现方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一些实施例中,还提供了一种计算机设备,计算机设备包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一些实施例中,提供了一种计算机程序产品,计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

技术分类

06120115630025