基于无线mesh网络的非中心节点路由建立方法及相关设备
技术领域
1.本技术涉及无线网络技术领域,特别是涉及一种基于无线mesh网络的非中心节点路由建立方法及相关设备。
背景技术:2.随着智能家居的发展,越来越多的智能家居设备具备了联网功能,这些智能家居设备在使用的过程中需要运用一些无线网络技术。在无线网络技术中,由于中心节点是通讯较为频繁的路由节点,所以通常需要建立中心节点到非中心节点以及非中心节点到中心节点之间的路由发现路径。
3.在某些情况下,非中心节点之间也会有相互通讯的需求。传统方法是直接根据非中心节点的路由建立路径确定非中心节点之间的通讯路径。但是,这种方法无线网络开销较大,初次建立延时也较大,从而影响非中心节点的通讯效率。
技术实现要素:4.基于此,有必要针对上述技术问题,提供一种能够提高非中心节点的通讯效率的基于无线mesh网络的非中心节点路由建立方法及相关设备。
5.第一方面,本技术提供了一种基于无线mesh网络的非中心节点路由建立方法,该方法包括:
6.根据中心节点分别到第一节点和第二节点的路由发现路径,确定第一节点到第二节点的初始路径;第一节点和第二节点为待建立通讯的非中心节点;初始路径经过中心节点;
7.按照初始路径,从第一节点起依次发送路径转发消息至下一跳路由节点,并在发送路径转发消息至中心节点的情况下,通过中心节点将用于执行路由发现的路由发现标识更新至路径转发消息,并继续按照初始路径向下发送更新后的路径转发消息,直至将更新后的路径转发消息转发至第二节点;
8.第二节点基于更新后的路径转发消息中的路由发现标识执行路由发现,以确定第一节点和第二节点之间的目标通讯路径。
9.第二方面,本技术提供了一种基于无线mesh网络的非中心节点路由建立系统,该系统包括:第一节点、第二节点以及中心节点;第一节点和第二节点为待建立通讯的非中心节点;
10.第一节点,用于根据中心节点分别到第一节点和第二节点的路由发现路径,确定第一节点到第二节点的初始路径;按照初始路径,从第一节点起依次发送路径转发消息至下一跳路由节点;
11.中心节点,用于在发送路径转发消息至中心节点的情况下,将用于执行路由发现的路由发现标识更新至路径转发消息,并继续按照初始路径向下发送更新后的路径转发消息,直至将更新后的路径转发消息转发至第二节点;初始路径经过中心节点;
12.第二节点,用于基于更新后的路径转发消息中的路由发现标识执行路由发现,以确定第一节点和第二节点之间的目标通讯路径。
13.在一些实施例中,第二节点还用于基于路由发现标识建立节点网络结构;节点网络结构是以第二节点为根节点、以除第二节点外的路由节点为非根节点;从第二节点起,逐步地向节点网络结构中的相邻节点转发指向第一节点的定向路由发现广播,直至转发至第一节点;每个路由节点向相邻节点转发的定向路由发现广播中携带路由节点确定的最佳路径;路由节点确定的最佳路径为路由节点到第二节点的最佳路径。第一节点还用于根据接收的定向路由发现广播中携带的最佳路径,确定第一节点到第二节点的第一目标通讯路径,并向第二节点返回第一目标通讯路径,以使得第二节点确定第二节点到第一节点的第二目标通讯路径。
14.在一些实施例中,每个路由节点向下一跳路由节点发送的路径转发消息携带路由节点的临时路径;路由节点的临时路径为根据初始路径所确定出的、从路由节点到第一节点的路径。针对在初始路径中位于中心节点之前的在先路由节点,在先路由节点用于若在先路由节点与第二节点相邻,则在先路由节点在接收上一跳路由节点发送的路径转发消息后,停止向初始路径中下一跳路由节点发送路径转发消息,且向第二节点发送路径转发消息。第二节点还用于基于接收的路径转发消息中的在先路由节点的临时路径,确定第二节点到第一节点的第二目标通讯路径。
15.在一些实施例中,第二节点还用于以第一节点作为目的节点,从第二节点起,逐跳地将第二目标通讯路径向下转发,直至将第二目标通讯路径转发给第一节点。第一节点还用于确定第一节点到第二节点的第一目标通讯路径。
16.在一些实施例中,每个转发第二目标通讯路径的当前路由节点用于在将第二目标通讯路径向第一节点转发的过程中,基于第二目标通讯路径,确定当前路由节点到第二节点的唯一路由路径;将确定出的唯一路由路径存储至当前路由节点的唯一路由表中。
17.在一些实施例中,第一节点还用于在从第一节点的邻节点表中查询不到第二节点、且在第一节点存储的唯一路由表中查询不到第一节点和第二节点之间的唯一路由路径的情况下,执行根据中心节点分别到第一节点和第二节点的路由发现路径,确定第一节点到第二节点的初始路径步骤及后续步骤。第一节点还用于在从第一节点的邻节点表中查询到第二节点、且第二节点有效的情况下,根据第一节点和第二节点确定目标通讯路径。
18.在一些实施例中,第一节点还用于在第一节点和第二节点不相邻、且在第一节点存储的唯一路由表中查询到第一节点和第二节点之间的唯一路由路径的情况下,将第一节点和第二节点之间的唯一路由路径,确定为第一节点和第二节点之间的目标通讯路径。
19.第三方面,本技术提供了一种计算设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的基于无线mesh网络的非中心节点路由建立方法的步骤。
20.第四方面,本技术提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的基于无线mesh网络的非中心节点路由建立方法的步骤。
21.第五方面,本技术还提供了一种计算机程序产品。计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述的基于无线mesh网络的非中心节点路由建立方法中的步骤。
22.上述基于无线mesh网络的非中心节点路由建立方法、系统、计算机设备、存储介质和计算机程序产品,借助中心节点在路由发现过程中获取到的中心节点分别到第一节点和第二节点的路由发现路径,先初步确定出第一节点到第二节点的初始路径第一节点和第二节点为待建立通讯的非中心节点;初始路径经过中心节点;按照初始路径,从第一节点起依次发送路径转发消息至下一跳路由节点,并在发送路径转发消息至中心节点的情况下,通过中心节点将用于执行路由发现的路由发现标识更新至路径转发消息,并继续按照初始路径向下发送更新后的路径转发消息,直至将更新后的路径转发消息转发至第二节点;第二节点基于更新后的路径转发消息中的路由发现标识执行路由发现,以确定出第一节点和第二节点之间更好的目标通讯路径。也就是说,本技术能够通过中心节点转发的路径转发消息再协助第二节点建立路由,并通过路由发现确定出第一节点和第二节点之间的目标通讯路径,从而提高通讯效率。
附图说明
23.图1为本技术实施例提供的一种基于无线mesh网络的非中心节点路由建立方法的流程示意图;
24.图2为本技术实施例提供的一种路由节点之间的位置关系示意图;
25.图3为本技术实施例提供的另一种路由节点之间的位置关系示意图;
26.图4为本技术实施例提供的一种邻节点表的示意图;
27.图5为本技术实施例提供的另一种路由节点之间的位置关系示意图;
28.图6为本技术实施例提供的一种唯一路由表的示意图;
29.图7为本技术实施例提供的另一种路由节点之间的位置关系示意图;
30.图8为本技术实施例提供的另一种路由节点之间的位置关系示意图;
31.图9为本技术实施例提供的另一种路由节点之间的位置关系示意图;
32.图10为本技术实施例提供的另一种唯一路由表的示意图;
33.图11为本技术实施例提供的一种基于无线mesh网络的非中心节点路由建立系统的结构示意图;
34.图12为本技术实施例提供的一种计算机设备的内部结构图。
具体实施方式
35.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
36.在一些实施例中,如图1所示,提供了一种基于无线mesh网络的非中心节点路由建立方法,该方法应用于中心节点以及非中心节点之间的交互为例进行说明,包括以下步骤:
37.步骤102,根据中心节点分别到第一节点和第二节点的路由发现路径,确定第一节点到第二节点的初始路径。
38.其中,中心节点,则是无线网络的发起者,一般集成在网关或者中控内部。第一节点和第二节点为待建立通讯的非中心节点,非中心节点为无线网络中除中心节点之外的路由节点。
39.示例性的,如图2所示,为一个无线网络中各路由节点之间的位置关系示意图,各路由节点包括中心节点和非中心节点。其中,该无线网络一共有8个路由节点,分别是节点1、节点2、节点3、节点4、节点5、节点6、节点7和节点8。其中,节点1是无线网络的发起者,也是该无线网络的中心节点,而在无线网络内除中心节点之外的路由节点则是非中心节点,例如节点2、节点3、节点4、节点5、节点6、节点7和节点8在图2所示的无线网络中则表示非中心节点。可以理解,在图2所示的无线网络中,第一节点和第二节点可以从节点2、节点3、节点4、节点5、节点6、节点7和节点8中确定。
40.需要说明的是,图2中用虚线连接的两个路由节点代表能够直接相互通讯,并且代表这两个路由节点互为相邻节点,虚线上的数字代表两个用虚线连接的路由节点之间的信号值,例如图2中的节点1和节点4之间连接了一条虚线,这表示节点1和节点4能够直接互相通讯,且节点1和节点4之间的信号值为1。其中,信号值所反映的信号强度可分为多档,例如信号值为1则为第一档、信号值为2则为第二档等,信号值越小则表示信号强度越大,信号值越大则表示信号强度越小。
41.在其他情况下,没有直接以虚线连接起来的路由节点则代表不能直接进行通讯,并且代表这两个路由节点互不相邻。若这两个路由节点需要通讯,则只能通过其他路由节点进行中继转发。例如节点4和节点6没有以一条虚线连接,则表示节点4和节点6不能直接相互通讯,若节点4需要和节点6通讯,则需要通过其他路由节点,例如通过节点5进行中继转发。
42.可以理解,在某个无线网络中,包括多个不同的路由节点,在各路由节点之间需要互相通讯,但是又无法单跳到达目的节点的情况下,需要建立各路由节点分别到达目的节点,例如中心节点的通讯路径,以上的路径建立过程就叫做路由发现。在中心节点的路由发现过程中,非中心节点都存储有其分别到中心节点的通讯路径。此外,在实现中心节点的路由发现的基础上,还需要建立中心节点到非中心节点之间的通讯路径,以此实现非中心节点和中心节点之间的双向通讯。其中,目的节点可以理解为某个或多个路由节点想要与其进行通讯的通讯对象。
43.在一些实施例中,中心节点可以是家庭网关、中控、智能设备,例如多功能音响等形态,而除中心节点之外的其他路由节点,即非中心节点则可以是一些不同的智能设备。其中,中心节点是无线网络内绝大多数信息的集中点,同样也是数据量最大、通讯最为频繁的路由节点。例如,用户在通过语音指令或者软件控制非中心节点的情况下,都需要经过中心节点下发命令,非中心节点的信息上报绝大多数也需要上报至中心节点,由中心节点进行集中处理。
44.但是,在某些情况下,非中心节点之间也会有互相通讯的需求,例如无线网络中的其中一个非中心节点为智能开关,而另一个非中心节点为智能灯具。可以理解,智能开关可以直接控制智能灯具的状态而无需经过网关。此时这两个非中心节点就需要打通双向通讯,即需要获取确定出这两个非中心节点之间的通讯路径,以根据该通讯路径实现两个非中心节点之间的双向通讯。
45.具体地,第一节点根据中心节点到第一节点的第一通讯路径,以及根据中心节点到第二节点的第二通讯路径,将第一通讯路径和第二通讯路径连接起来,就得到第一节点到第二节点的初始路径。可以理解,由于第一通讯路径和第二通讯路径都包括中心节点,所
以基于第一通讯路径和第二通讯路径所生成的初始路径则经过中心节点。
46.需要说明的是,中心节点到第一节点的第一通讯路径一般是中心节点所确定的、中心节点到第一节点的最佳通讯路径。中心节点到第二节点的第二通讯路径一般是中心节点所确定的、中心节点到第二节点的最佳通讯路径。
47.为了便于理解,现举例说明,假设中心节点为节点1,第一节点为节点8,第二节点为节点4,且节点1到节点8的第一通讯路径为:节点1-》节点5-》节点7-》节点8,节点1到节点4的第二通讯路径为:节点1-》节点4,将这两条路径连接起来得到的节点8到节点4的初始路径为:节点8-》节点7-》节点5-》节点1-》节点4。
48.步骤104,按照初始路径,从第一节点起依次发送路径转发消息至下一跳路由节点,并在发送路径转发消息至中心节点的情况下,通过中心节点将用于执行路由发现的路由发现标识更新至路径转发消息,并继续按照初始路径向下发送更新后的路径转发消息,直至将更新后的路径转发消息转发至第二节点。
49.其中,路径转发消息指的是由第一节点生成的、且携带第二节点地址的消息。可以理解,各路由节点在转发第一节点发送的路径转发消息的过程中,各路由节点还会将具体经过的路径信息同步更新到路径转发消息中。
50.下一跳路由节点,指的是在初始路径中,与当前正在上报的中心节点或非中心节点相邻、且还未执行该初始路径上报操作的中心节点或非中心节点。同理,上一跳路由节点则指的是在初始路径中,与当前正在上报的中心节点或非中心节点相邻、且是将该初始路径发送给当前正在上报的中心节点或非中心节点。
51.具体地,根据第一节点确定好的初始路径,从第一节点开始发送携带第二节点地址的路径转发消息给初始路径中的第一节点的下一跳路由节点。在第一节点的下一跳路由节点不是中心节点的情况下,则由第一节点的下一跳路由节点将路径转发消息转发给其在初始路径中的下一跳路由节点,直到将该路由转发消息依次发送给中心节点。中心节点在接收到路径转发消息之后,则将用于执行路由发现的路由发现标识更新至路径转发消息中,并继续按照初始路径向下发送更新后的路径转发消息,直至将更新后的、且携带路由发现标识的路径转发消息转发至第二节点。
52.步骤106,第二节点基于更新后的路径转发消息中的路由发现标识执行路由发现,以确定第一节点和第二节点之间的目标通讯路径。
53.其中,目标通讯路径指的是第一节点到第二节点的可达路径中质量较好的路径。可以理解,目标通讯路径可以是第一节点到第二节点的可达路径中经过的节点跳数或链路数量最少的路径。
54.具体地,第二节点基于上一跳路由节点发送的、且是经过更新后的路径转发消息中所携带的路由发现标识,执行第二节点的路由发现,以确定出第一节点和第二节点之间的目标通讯路径。可以理解,第二节点的路由发现过程与中心节点的路由发现过程类似,目的是建立第二节点之外的路由节点分别到第二节点的通讯路径,其中就包括第一节点到第二节点的通讯路径。
55.需要说明的是,只要通过中心节点转发的路径转发消息都会携带一个路由发现标识,用于赋予第二节点执行路由发现的功能。但是,如果该路径转发消息是由中心节点发起的,则中心节点不会在其发起的路径转发消息中携带路由发现标识,此时目的节点不会执
行路由发现。例如,中心节点为节点1,目的节点为节点3,则节点1将不携带路由发现标识的路径转发消息发送给节点3之后,节点3不会执行路由发现。
56.上述基于无线mesh网络的非中心节点路由建立方法,借助中心节点在路由发现过程中获取到的中心节点分别到第一节点和第二节点的路由发现路径,先初步确定出第一节点到第二节点的初始路径第一节点和第二节点为待建立通讯的非中心节点;初始路径经过中心节点;按照初始路径,从第一节点起依次发送路径转发消息至下一跳路由节点,并在发送路径转发消息至中心节点的情况下,通过中心节点将用于执行路由发现的路由发现标识更新至路径转发消息,并继续按照初始路径向下发送更新后的路径转发消息,直至将更新后的路径转发消息转发至第二节点;第二节点基于更新后的路径转发消息中的路由发现标识执行路由发现,以确定出第一节点和第二节点之间更好的目标通讯路径。也就是说,本技术能够通过中心节点转发的路径转发消息再协助第二节点建立路由,并通过路由发现确定出第一节点和第二节点之间的目标通讯路径,从而提高通讯效率。
57.在一些实施例中,为了进一步提高通讯效率,在执行步骤102之前,本技术的基于无线mesh网络的非中心节点路由建立方法具体还包括但不限于包括步骤:在从第一节点的邻节点表中查询不到第二节点、且在第一节点存储的唯一路由表中查询不到第一节点和第二节点之间的唯一路由路径的情况下,执行根据中心节点分别到第一节点和第二节点的路由发现路径,确定第一节点到第二节点的初始路径步骤及后续步骤;在从第一节点的邻节点表中查询到第二节点、且第二节点有效的情况下,根据第一节点和第二节点确定目标通讯路径。
58.其中,邻节点表指的是存储与某路由节点相邻的路由节点的存储表。在一些实施例中,邻节点表除了包括某路由节点的相邻节点,还包括该路由节点与其相邻节点的信号质量以及通讯状态。
59.唯一路由路径,指的是某路由节点到另一个路由节点唯一的通讯路径,唯一路由表指的是存储某路由节点到其他路由节点的至少一条唯一路由路径的存储表。
60.具体地,在从第一节点的邻节点表中查询不到第二节点、且在第一节点存储的唯一路由表中查询不到第一节点和第二节点之间的唯一路由路径的情况下,则执行步骤102以及步骤102的后续步骤。在从第一节点的邻节点表中查询到第二节点、且第二节点有效,即在第一节点和第二节点相邻,且第一节点和第二节点成功进行过单播通讯的情况下,根据第一节点和第二节点确定目标通讯路径,即第一节点可直接向第二节点发起通讯,第二节点也可向第一节点发起通讯,通讯路径为第一节点至第二节点,或者第二节点至第一节点。本技术通过先判断第二节点是否为第一节点的邻节点,并在第二节点与第一节点相邻的情况下,不需要执行根据中心节点去确定初始路径并执行路由发现的过程,而是使第一节点和第二节点直接通讯,避免了路由发现的开销,进一步提高通讯效率。
61.便于理解,现举例说明。如图3所示,假设节点3想发送数据给节点6,或者节点6想发送数据给节点3,在节点3和节点6都是相互的邻节点的情况下,节点3可以和节点6直接进行通讯。可以理解,在中心节点的路由发现过程中,可以建立各路由节点的邻节点表,每个路由节点只要收到来自其他路由节点发送的路由发现广播,就会将该其他路由节点纳入到自己的邻节点表,同时也会将本次通讯的信号质量在邻节点中进行同步记录,等到下一次中心节点的路由发现过程中再刷新。如果某个路由节点超过n个,例如3个周期还未收到该
邻节点发送的路由发现广播,则该路由节点则认为这个邻节点失效,并在自身存储的邻节点表中剔除该失效的邻节点。其中,上述的“3个周期”中的周期是指中心节点路由发现广播的周期,可以理解为网络中的所有节点理论上都会在一个固定的周期内发送一次广播,其它节点以此来更新邻节点。
62.需要说明的是,在路由节点认为其邻节点失效的情况下,如果不剔除该邻节点,则在后续通讯路径的发现过程中可能还会把这个不存在的邻节点纳入其中,导致后面没必要的重发开销,同时剔除这个邻节点也可以腾出内存资源给其它邻节点,节省内存资源。
63.示例性的,如图4所示的邻节点表,记录了各路由节点的邻节点,表中的每个路由节点都有1列,里面包含了第一邻节点,第二邻节点和第三邻节点等,每个邻节点都有两个参数,即信号质量lq以及通讯状态ack。其中,ack为0则代表该路由节点和对应的邻节点还未成功进行过单播通讯,或者该路由节点和对应的邻节点在前一次通讯过程中出现单播通讯失败,ack为1代表该路由节点在前一次通讯过程中和对应的邻节点成功进行过单播通讯。
64.在一些实施例中,本技术的基于无线mesh网络的非中心节点路由建立方法具体还包括但不限于包括步骤:在第一节点和第二节点不相邻、且在第一节点存储的唯一路由表中查询到第一节点和第二节点之间的唯一路由路径的情况下,将第一节点和第二节点之间的唯一路由路径,确定为第一节点和第二节点之间的目标通讯路径。
65.具体地,在从第一节点的邻节点表中查询不到第二节点或查询到的第二节点失效的情况下,若第一节点能够在其存储的唯一路径表中查询到第一节点和第二节点之间的唯一路由路径,则可以直接将该唯一路由路径确定为第一节点和第二节点之间的目标通讯路径,并直接基于目标通讯路径实现第一节点和第二节点的通讯,不需要执行根据中心节点去确定初始路径并执行路由发现的过程,而是根据目标通讯路径使第一节点和第二节点直接通讯,避免了路由发现的开销,进一步提高通讯效率。
66.示例性的,假设图5中的节点5要发送数据给节点8,且节点5和节点8不相邻,则节点5首先查询如图6所示的唯一路由表,在查询到节点5与节点8的唯一路由路径的情况下,例如list:5-7-8,则节点5可以根据该路径,将数据发送给节点7,并由节点7转发给节点8以完成本次的通讯。
67.示例性的,假设第二节点即不在第一节点存储的邻节点表和唯一路由表中,比如图7中的节点4和节点8、图8中的节点3和节点8,则执行步骤102以及步骤102的后续步骤。
68.在一些实施例中,步骤106具体包括但不限于包括步骤:第二节点基于路由发现标识建立节点网络结构;从第二节点起,逐步地向节点网络结构中的相邻节点转发指向第一节点的定向路由发现广播,直至转发至第一节点;第一节点根据接收的定向路由发现广播中携带的最佳路径,确定第一节点到第二节点的第一目标通讯路径,并向第二节点返回第一目标通讯路径,以使得第二节点确定第二节点到第一节点的第二目标通讯路径。
69.其中,节点网络结构是以第二节点为根节点、以除第二节点外的路由节点为非根节点所构建的网格结构。
70.路由发现广播,是由无线网络的第二节点首次发起的、且通过全网内除第二节点之外的中心节点和非中心节点进行转发以实现第二节点的路由发现的广播。通过各路由节点在无线网络中转发路由发现广播,可以得到各路由节点分别到该第二节点的通讯路径。
71.定向路由发现广播,相比起路由发现广播会多携带第一节点的地址,使第一节点在接收到第二节点发起的定向路由发现广播后自动将第一节点到第二节点的最佳路径返回给第二节点,使第二节点进行同步保存。
72.此外,每个路由节点向相邻节点转发的定向路由发现广播中携带路由节点确定的最佳路径,路由节点确定的最佳路径为路由节点到第二节点的最佳路径。可以理解,路由节点确定的最佳路径可以为路由节点到第二节点的可达路径中,经过的节点跳数或链路数量最少的路径。
73.具体地,第二节点根据接收到的路径转发消息中的路由发现标识,建立以第二节点为根节点、以除第二节点外的路由节点为非根节点的节点网络结构。第二节点根据路由发现标识生成用于指向第一节点的定向路由发现广播,并从第二节点开始,各路由节点逐步地向网络结构中与其相邻的相邻节点去转发定向路由发现广播中携带的各路由节点各自确定的最佳路径。第一节点根据其接收的定向路由发现广播中携带的最佳路径中选取一条目标路径,在选取的目标路径中在加上第一节点,则得到第一节点到第二节点的第一目标通讯路径。在第一节点确定出第一目标通讯路径后,通过第一目标通讯路径所经过的各路由节点,从第一节点起依次将第一目标通讯返回给第二节点,以使得第二节点确定第二节点到第一节点的第二目标通讯路径,以此实现第一节点和第二节点的双向通讯,保证了没有路由信息的非中心节点之间通讯的实时性。
74.为了便于理解,现举例说明,假设第一节点为节点8,第二节点为节点3,第一节点上一跳的路由节点为节点6。节点8在接收到节点6发送的定向路由发现广播后,获取到该定向路由发现广播的最佳路径为:节点3-》节点6,在节点8仅接收到节点6发送的定向路由发现广播的情况下,节点8直接将本节点加入至节点6确定的最佳路径中,得到节点8到节点3的第一目标通讯路径:节点3-》节点6-》节点8。在节点8不仅接收到节点6发送的定向路由发现广播,还接收到其他路由节点,例如节点7发送的定向路由发现广播的情况下,则节点7先从节点6和节点7各自确定的两条最佳路径中选取其中一条路径作为目标路径,并将本节点加入至目标路径中,也可以得到节点8到节点3的第一目标通讯路径。如图9所示,则是以节点3为根节点,以其他路由节点为非根节点建立的网络结构,其中,实线是其他路由节点到节点3的最佳通讯路径,虚线是其他路由节点到节点3的备选路径,实线和虚线上的数字是两个路由节点间的连接质量,表示这两个路由节点的信号强度。
75.可以理解,节点8在确定出第一目标通讯路径之后,则可以将第一目标通讯路径返回给节点3。其中,若节点8最终确定出的第一目标通讯路径为:节点3-》节点6-》节点8,则由节点8将该第一目标通讯路径发送给节点6,节点6再将第一目标通讯路径转发给节点3,以得到节点3到节点6的通讯路径,即第二目标通讯路径。
76.在一些实施例中,第二节点的路由发现的完整过程为:将第二节点作为发起定向路由发现广播的路由节点,首先向第二节点的各相邻节点发送定向路由发现广播。此时,可以将第二节点作为当前跳路由节点,而将第二节点的各相邻节点作为下一跳路由节点。在第二节点的某个相邻节点接收到第二节点发送的定向路由发现广播后,则可以将该相邻节点作为当前跳路由节点,将转发给该相邻节点定向路由发现广播的第二节点作为上一跳路由节点。可以理解,作为当前跳路由节点的相邻节点接收到的定向路由发现广播可能不止一条,当前跳路由节点可以从其收取到的所有定向路由发现广播中,确定当前跳路由节点
到第二节点的最佳路径,并将确定出的最佳路径加入路由发现广播并转发给其相邻的下一跳节点,由下一跳节点继续执行最佳路径的确定,并转发路由发现广播,以此使无线网络中的各路由节点都确定好其分别到第二节点的最佳路径。在本技术实施例中,考虑到需要建立第一节点和第二节点的双向通讯,所以可以重点关注第一节点到第二节点的最佳路径,即第一目标通讯路径。
77.在一些实施例中,每个路由节点向下一跳路由节点发送的路径转发消息携带路由节点的临时路径,路由节点的临时路径为根据初始路径所确定出的、从路由节点到第一节点的路径。本技术的基于无线mesh网络的非中心节点路由建立方法具体还包括但不限于包括步骤:针对在初始路径中位于中心节点之前的在先路由节点,若在先路由节点与第二节点相邻,则在先路由节点在接收上一跳路由节点发送的路径转发消息后,停止向初始路径中下一跳路由节点发送路径转发消息,且向第二节点发送路径转发消息;第二节点基于接收的路径转发消息中的在先路由节点的临时路径,确定第二节点到第一节点的第二目标通讯路径。
78.其中,中心节点的在先路由节点指的是在初始路径中,位于中心节点之前的非中心节点。
79.具体地,在路径转发消息转发的过程中,若在初始路径中位于中心节点之前的先路由节点根据路径转发消息中携带的第二节点的地址,发现第二节点与该先路由节点相邻,则该先路由节点在接收到上一跳路由节点发送的路径转发消息后,停止向初始路径中下一跳路由节点发送路径转发消息,也就是不继续按照初始路径向第二节点转发路径转发消息。且,该先路由节点直接向第二节点发送路径转发消息。第二节点则在接收到的路径转发消息中在先路径确定的临时路径后,将第二节点加入至先路径确定的临时路径,得到第二节点到第一节点通讯路径,即第二目标通讯路径。通过在路径转发消息的过程中使各路由节点比对第二节点是不是自己的邻节点,若在初始路径中位于中心节点之前的在先路由节点发现其与第二节点相邻,则可以直接将路径转发消息直接发送给与其相邻的路由节点,相比起通过中心节点继续转发路径转发消息并建立路由发现的方式,其通讯效率更高。
80.为了便于理解,现举例说明。如图7所示,中心节点为节点1,第一节点为节点8,第二节点为节点4,假设确定出的节点8到节点4的初始路径为:节点8-》节点7-》节点5-》节点1-》节点4。则节点8首先将需要发送路径转发消息,即消息m中加入节点4的地址,然后节点8则按照确定出的初始路径,通过中心节点,即通过节点1将消息m转发到节点4。具体地,节点8先将消息m发送给节点7,节点7则添加一个临时路径list:7-8到消息m中,得到更新后的消息m1。节点7将消息m1发给节点5,节点5继续添加临时路径list:5-7-8到消息m1,得到消息m2。但是,当消息m1到达节点5(即为位于节点1之前的在先路由节点)时,节点5获取消息m1中携带的节点4的地址,并在其存储的邻节点表中发现节点4就是自己的相邻节点,此时节点5无需将其更新的消息m2转发给节点1,即停止向初始路径中下一跳路由节点(即节点1)发送路径转发消息,而是直接发送给自己的相邻节点,即节点4。节点4在收到消息m2后,根据m2中的临时路径list:5-7-8得到节点4到节点8的第二目标通讯路径,即list:4-5-7-8。同时,节点5也可将list:4-5-7-8返回给节点8进行同步。这样节点4和节点8都得到其到对方的通讯路径,实现双向通讯。
81.在一些实施例中,本技术的基于无线mesh网络的非中心节点路由建立方法具体还
包括但不限于包括步骤:以第一节点作为目的节点,从第二节点起,逐跳地将第二目标通讯路径向下转发,直至将第二目标通讯路径转发给第一节点;第一节点确定第一节点到第二节点的第一目标通讯路径。
82.具体地,在第二节点确定出第二节点到第一节点的第二目标通讯路径之后,为了实现第一节点和第二节点的双向通讯,则需要以第一节点作为目的节点,从第二节点起,按照第二目标通讯路径中各路由节点的顺序,逐跳地将第二目标通讯路径向下转发,直至将第二目标通讯路径转发给第一节点。第一节点在收到第二目标通讯路径后,则根据第二节点到第一节点的第二目标通讯路径,确定出第一节点到第二节点的通讯路径,即第一目标通讯路径。
83.示例的,如图7所示,节点5在根据接收到来自节点7发送的消息m1、以及确定节点4是自己的相邻节点之后,节点5也得到了节点4到节点8的第二目标通讯路径,即list:4-5-7-8。为了实现节点4和节点8的双向通讯,节点5则将第二目标通讯路径发给节点7,再由节点7将接收到的第二目标通讯路径发送给节点8,以使节点8也得到了通向节点4的路径。
84.在一些实施例中,本技术的基于无线mesh网络的非中心节点路由建立方法具体还包括但不限于包括步骤:在将第二目标通讯路径向第一节点转发的过程中,每个转发第二目标通讯路径的当前路由节点基于第二目标通讯路径,确定当前路由节点到第二节点的唯一路由路径;将确定出的唯一路由路径存储至当前路由节点的唯一路由表中。
85.其中,唯一路由路径指的是某路由节点到另一个路由节点唯一的通讯路径,唯一路由表指的是存储某路由节点到其他路由节点的至少一条唯一路由路径的存储表。
86.当前路由节点,指的是正在执行转发第二目标通讯路径操作的路由节点。
87.具体地,在第二节点按照第二目标通讯路径中各路由节点的顺序,逐跳地将第二目标通讯路径向下转发的过程中,每个转发过该第二目标通讯路径的当前路由节点则基于第二目标通讯路径中提取出当前路由节点到第二节点的唯一路径。各当前路由节点将各自确定出的唯一路由路径存储至当前路由节点的唯一路由表中。本技术通过在第二目标通讯路径的转发过程中,使路由节点可以基于该目标通讯路径存储自身到其他路由节点的通讯路径,有利于后续能够基于存储的通讯路径直接进行通讯,减少无线网络开销。
88.示例性的,假设第二目标通讯路径为list:4-5-7-8,则在节点5则将第二目标通讯路径发给节点7后,节点7可以根据第二目标通讯路径得到其到节点4的唯一路由路径,即list:4-5-7,并存储在如图10所示的唯一路由表中。同理,各路由节点在接收到第二目标通讯路径后,也可根据第二目标通讯路径获取其分别到第二节点的唯一路由路径并进行同步存储。
89.在一些实施例中,申请的基于无线mesh网络的非中心节点路由建立方法具体还包括但不限于包括如下步骤:
90.在从第一节点的邻节点表中查询到第二节点、且第二节点有效的情况下,根据第一节点和第二节点确定目标通讯路径。在第一节点和第二节点不相邻、且在第一节点存储的唯一路由表中查询到第一节点和第二节点之间的唯一路由路径的情况下,将第一节点和第二节点之间的唯一路由路径,确定为第一节点和第二节点之间的目标通讯路径。在从第一节点的邻节点表中查询不到第二节点、且在第一节点存储的唯一路由表中查询不到第一节点和第二节点之间的唯一路由路径的情况下,执行下一步骤。
91.根据中心节点分别到第一节点和第二节点的路由发现路径,确定第一节点到第二节点的初始路径。
92.按照初始路径,从第一节点起依次发送路径转发消息至下一跳路由节点,并在发送路径转发消息至中心节点的情况下,通过中心节点将用于执行路由发现的路由发现标识更新至路径转发消息,并继续按照初始路径向下发送更新后的路径转发消息,直至将更新后的路径转发消息转发至第二节点,第二节点基于路由发现标识建立节点网络结构。
93.从第二节点起,逐步地向节点网络结构中的相邻节点转发指向第一节点的定向路由发现广播,直至转发至第一节点。
94.第一节点根据接收的定向路由发现广播中携带的最佳路径,确定第一节点到第二节点的第一目标通讯路径,并向第二节点返回第一目标通讯路径,以使得第二节点确定第二节点到第一节点的第二目标通讯路径。
95.针对在初始路径中位于中心节点之前的在先路由节点,若在先路由节点与第二节点相邻,则在先路由节点在接收上一跳路由节点发送的路径转发消息后,停止向初始路径中下一跳路由节点发送路径转发消息,且向第二节点发送路径转发消息。
96.第二节点基于接收的路径转发消息中的在先路由节点的临时路径,确定第二节点到第一节点的第二目标通讯路径。
97.以第一节点作为目的节点,从第二节点起,逐跳地将第二目标通讯路径向下转发,直至将第二目标通讯路径转发给第一节点,第一节点确定第一节点到第二节点的第一目标通讯路径。
98.在将第二目标通讯路径向第一节点转发的过程中,每个转发第二目标通讯路径的当前路由节点基于第二目标通讯路径,确定当前路由节点到第二节点的唯一路由路径,将确定出的唯一路由路径存储至当前路由节点的唯一路由表中。
99.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
100.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的基于无线mesh网络的非中心节点路由建立方法的基于无线mesh网络的非中心节点路由建立系统。该系统所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于无线mesh网络的非中心节点路由建立系统实施例中的具体限定可以参见上文中对于基于无线mesh网络的非中心节点路由建立方法的限定,在此不再赘述。
101.参考图11,为本技术实施例提供的一种基于无线mesh网络的非中心节点路由建立系统的结构示意图。在一些实施例中,如图11所示,提供了一种基于无线mesh网络的非中心节点路由建立系统,包括:第一节点1102、第二节点1104以及中心节点1106,第一节点1102和第二节点1104为待通讯的非中心节点,其中:
102.第一节点1102,用于根据中心节点1106分别到第一节点1102和第二节点1104的路
由发现路径,确定第一节点1102到第二节点1104的初始路径;按照初始路径,从第一节点1102起依次发送路径转发消息至下一跳路由节点;
103.中心节点1106,用于在发送路径转发消息至中心节点1106的情况下,将用于执行路由发现的路由发现标识更新至路径转发消息,并继续按照初始路径向下发送更新后的路径转发消息,直至将更新后的路径转发消息转发至第二节点1104;初始路径经过中心节点1106;
104.第二节点1104,用于基于更新后的路径转发消息中的路由发现标识执行路由发现,以确定第一节点1102和第二节点1104之间的目标通讯路径。
105.上述基于无线mesh网络的非中心节点路由建立系统,借助中心节点1106在路由发现过程中获取到的中心节点1106分别到第一节点1102和第二节点1104的路由发现路径,先初步确定出第一节点1102到第二节点1104的初始路径第一节点1102和第二节点1104为待建立通讯的非中心节点;初始路径经过中心节点1106;按照初始路径,从第一节点1102起依次发送路径转发消息至下一跳路由节点,并在发送路径转发消息至中心节点1106的情况下,通过中心节点1106将用于执行路由发现的路由发现标识更新至路径转发消息,并继续按照初始路径向下发送更新后的路径转发消息,直至将更新后的路径转发消息转发至第二节点1104;第二节点1104基于更新后的路径转发消息中的路由发现标识执行路由发现,以确定出第一节点1102和第二节点1104之间更好的目标通讯路径。也就是说,本技术能够通过中心节点1106转发的路径转发消息再协助第二节点1104建立路由,并通过路由发现确定出第一节点1102和第二节点1104之间的目标通讯路径,从而提高通讯效率。
106.在一些实施例中,第二节点1104还用于基于路由发现标识建立节点网络结构;节点网络结构是以第二节点1104为根节点、以除第二节点1104外的路由节点为非根节点;从第二节点1104起,逐步地向节点网络结构中的相邻节点转发指向第一节点1102的定向路由发现广播,直至转发至第一节点1102;每个路由节点向相邻节点转发的定向路由发现广播中携带路由节点确定的最佳路径;路由节点确定的最佳路径为路由节点到第二节点1104的最佳路径。第一节点1102还用于根据接收的定向路由发现广播中携带的最佳路径,确定第一节点1102到第二节点1104的第一目标通讯路径,并向第二节点1104返回第一目标通讯路径,以使得第二节点1104确定第二节点1104到第一节点1102的第二目标通讯路径。
107.在一些实施例中,每个路由节点向下一跳路由节点发送的路径转发消息携带路由节点的临时路径;路由节点的临时路径为根据初始路径所确定出的、从路由节点到第一节点1102的路径。针对在初始路径中位于中心节点1106之前的在先路由节点,在先路由节点用于若在先路由节点与第二节点1104相邻,则在先路由节点在接收上一跳路由节点发送的路径转发消息后,停止向初始路径中下一跳路由节点发送路径转发消息,且向第二节点1104发送路径转发消息。第二节点1104还用于基于接收的路径转发消息中的在先路由节点的临时路径,确定第二节点1104到第一节点1102的第二目标通讯路径。
108.在一些实施例中,第二节点1104还用于以第一节点1102作为目的节点,从第二节点1104起,逐跳地将第二目标通讯路径向下转发,直至将第二目标通讯路径转发给第一节点1102。第一节点1102还用于确定第一节点1102到第二节点1104的第一目标通讯路径。
109.在一些实施例中,每个转发第二目标通讯路径的当前路由节点用于在将第二目标通讯路径向第一节点1102转发的过程中,基于第二目标通讯路径,确定当前路由节点到第
二节点1104的唯一路由路径;将确定出的唯一路由路径存储至当前路由节点的唯一路由表中。
110.在一些实施例中,第一节点1102还用于在从第一节点1102的邻节点表中查询不到第二节点1104、且在第一节点1102存储的唯一路由表中查询不到第一节点1102和第二节点1104之间的唯一路由路径的情况下,执行根据中心节点1106分别到第一节点1102和第二节点1104的路由发现路径,确定第一节点1102到第二节点1104的初始路径步骤及后续步骤。第一节点1102还用于在从第一节点1102的邻节点表中查询到第二节点1104、且第二节点1104有效的情况下,根据第一节点1102和第二节点1104确定目标通讯路径。
111.在一些实施例中,第一节点1102还用于在第一节点1102和第二节点1104不相邻、且在第一节点1102存储的唯一路由表中查询到第一节点1102和第二节点1104之间的唯一路由路径的情况下,将第一节点1102和第二节点1104之间的唯一路由路径,确定为第一节点1102和第二节点1104之间的目标通讯路径。
112.在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于无线mesh网络的非中心节点路由建立方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
113.本领域技术人员可以理解,图12中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
114.在一些实施例中,还提供了一种计算机设备,计算机设备包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
115.在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
116.在一些实施例中,提供了一种计算机程序产品,计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
117.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括
非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,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 random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
118.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
119.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。