CN115529266B - 一种路由选择方法、装置及设备 - Google Patents
一种路由选择方法、装置及设备 Download PDFInfo
- Publication number
- CN115529266B CN115529266B CN202211097571.2A CN202211097571A CN115529266B CN 115529266 B CN115529266 B CN 115529266B CN 202211097571 A CN202211097571 A CN 202211097571A CN 115529266 B CN115529266 B CN 115529266B
- Authority
- CN
- China
- Prior art keywords
- node
- routing
- sequence number
- bit
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000004590 computer program Methods 0.000 claims description 21
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 6
- 239000003550 marker Substances 0.000 claims 2
- 239000000758 substrate Substances 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 abstract description 13
- 238000004422 calculation algorithm Methods 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 33
- 230000004083 survival effect Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 238000003491 array Methods 0.000 description 9
- 125000004122 cyclic group Chemical group 0.000 description 7
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005295 random walk Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种路由选择方法、装置及设备。该方法中,当第一节点向第二节点发送数据时,根据路由位图数组,可以判断第一节点和第二节点是否相连接,若不相连接,可以进一步根据路由位图数组,查找第一节点到第二节点的最短下一跳节点。本申请实施例中设计了一个小型位表(即路由位图数组),用于描述每一个路由节点及其相邻节点的网络拓扑,可以实现每个节点都存储整个网络的拓扑结构,从而有利于快速实现在路由节点数量少,且路由节点的成本要求很低的小范围网络中查找第一节点到第二节点的最短下一跳节点的算法。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种路由选择方法、装置及设备。
背景技术
路由算法的目的是寻找一条从源节点到目的节点的路径,减少路由所带来的开销。目前存在多种路由算法,例如洪泛法(Flooding)、随机走动法(Random Walk)、最短路径法(Shortest Path,SP),基于流量的路由算法(Flow-based Routing,FR)。但是上述路由算法应用于网络范围较小,且路由节点的成本较低的场景中时,由于路由节点的存储能力和运算能力都非常低,存在查找最短下一跳节点的时延较高的问题。
发明内容
本申请提供了一种路由选择方法、装置及设备,该路由选择方法中源节点可以快速查找到目的节点的最短下一跳节点。
第一方面,本申请实施例提供了一种路由选择方法,该方法可以由源节点(第一节点)所执行,包括以下步骤:
当第一网络中的第一节点向第二节点发送数据时,获取第二节点的地址;
当第二节点的地址为第一网络中的地址时,根据路由位图数组,确定第一路由信息,第一路由信息用于指示第一网络中与第二节点连接的节点;
路由位图数组包括第一网络中的多个节点之间的连接关系;
根据第一路由信息,确定第一指示信息;
当第一指示信息指示第一节点与第二节点未连接时,根据路由位图数组和第一路由信息,确定第三节点,第三节点与第四节点之间的跳数最少,
其中,第三节点属于第一集合,第一集合是第一节点的下一跳节点集合,第四节点为第一路由信息中指示的节点。
该方法中,设计了一种小型位图(即路由位图数组),用于描述每一个路由节点及其相邻节点的网络拓扑,可以实现每个节点都存储整个网络的拓扑结构,从而有利于实现在路由节点数量少,且路由节点的成本要求很低的小范围网络中查找第一节点到第二节点的最短下一跳节点的算法。
一种可选的实施方式中,获取第二节点的地址之后,该方法包括:
当第二节点的地址为第二网络中的地址时,根据路由位图数组,确定第二路由信息,第二路由信息用于指示第一网络中与第二网络的节点连接的节点;
路由位图数组还包括第一网络中的一个或多个节点与第二网络中的节点的连接关系;
根据第二路由信息,确定第二指示信息,
当第二指示信息指示第一节点与第二网络中的节点未连接时,根据第二路由信息和路由位图数组,确定第五节点,第五节点与第六节点之间的跳数最少,
第五节点属于第一集合,第六节点为第二路由信息中指示的节点。
该方法中,小型位图(路由位图数组)还可用于描述每一个路由节点与外网的连接关系,每个节点可以确定具有对外接口的节点,从而有利于实现在路由节点数量少,且路由节点的成本要求很低的小范围网络中查找第一节点到具有对外接口的节点的最短下一跳节点的算法。
一种可选的实施方式中,第一网络包括M个网络节点,路由位图数组包括M行M列。路由位图数组的第m行表示第一网络中的一个节点的路由位图,m大于或等于1,且小于或等于M;第m行中与该节点的序号相同的标志位用于指示该节点与第二网络中的任意一个节点的连接关系,第m行中与该节点的序号不同的标志位用于指示该节点与不同的标志位对应的节点之间的连接关系;第m行中的标志位的取值为0或1。
该方法中,设计了一种小型位表(即路由位图数组),用于描述每一个路由节点及相邻节点的网络拓扑,以及描述路由节点是否为具有对外接口节点,可以实现每个节点都存储整个网络的拓扑结构,有利于节点间拓扑关系的动态删减维护。
一种可选的实施方式中,根据路由位图数组,确定第一路由信息,包括:
根据路由位图数组,确定第二集合,第二集合包括第二节点的路由位图中与第二节点序号不同且标志位为1的节点;第一路由信息包括1行M列;
将第一路由信息中与第二集合的每个节点的序号对应的标志位设置为1,其余标志位设置为0。
该方法中,第一节点根据路由位图数组,确定第一路由信息,第一路由信息用于指示第一网络中与第二节点连接的节点,从而有利于基于第一路由信息确定从第一节点到第二节点的最短下一跳节点。
一种可选的实施方式中,根据第一路由信息,确定第一指示信息,包括:
将第一路由信息和第一节点的序号进行位与操作,得到第一位与操作结果;
若第一位与操作结果为非0值,确定第一指示信息用于指示第一节点与第二节点连接;或者,
若第一位与操作结果为0值,确定第一指示信息用于指示第一节点与第二节点未连接。
该方法中,第一节点根据第一路由信息和第一节点的序号进行位运算,判断第一节点与第二节点是否直接连接,从而可以确定从第一节点到第二节点的最短下一跳节点。
一种可选的实施方式中,当第一指示信息指示第一节点与第二节点未连接时,根据路由位图数组和第一路由信息,确定第三节点,包括:
获取第一集合中序号值最小的节点的路由位图;
将序号值最小的节点的路由位图中与序号值最小的节点的序号相同的标志位的值设置为0;
将第一路由信息和序号值最小的节点的序号进行位与操作,得到第二位与操作结果;
若第二位与操作结果为非0值,确定序号值最小的节点与第二节点连接,确定序号值最小的节点对应的跳数为第一跳数;
若第二位与操作结果为0值,将序号值最小的节点的路由位图的各个标志位分别与第一路由信息中对应的标志位进行比较,
若存在至少一个标志位的取值相同且取值为1,确定序号值最小的节点的跳数为第一跳数;
当第一跳数小于第一跳数值时,将第一跳数值更新为第一跳数,并且确定第三节点为序号值最小的节点。
该方法中,通过路由位图数组和第一路由信息,首先获取第一集合中序号值最小的节点到达第二节点的任一临近节点的最少跳数,有利于查找第一节点到第二节点的最短下一跳节点。
一种可选的实施方式中,将序号值最小的节点的路由位图的各个标志位分别与第一路由信息中对应的标志位进行比较之后,该方法还包括:
若序号值最小的节点的路由位图的各个标志位和第一路由信息中对应的标志位不存在相同标志位的取值为1,将序号值最小的节点的路由位图的各个标志位更新为与序号值最小的节点连接的所有节点的路由位图中对应的标志位进行位或的结果,以及将第一跳数加1;
当更新后的序号值最小的节点的路由位图的标志位的取值至少存在一个取值为1,执行将序号值最小的节点的路由位图的各个标志位分别与第一路由信息中对应的标志位进行比较的操作。
该方法中,若通过一次查找,不能直接获取序号值最小的节点到第二节点任一临近节点的最少跳数,则可以通过多次循环查找,最终确定从序号值最小的节点到第二节点的任一临近节点的最少跳数,有利于查找第一节点到第二节点的最短下一跳节点。
一种可选的实施方式中,根据路由位图数组,确定第二路由信息,包括:
根据路由位图数组,确定第三集合,第三集合包括第一网络中与第二网络的节点连接的节点集合;
第二路由信息包括1行M列;
将第二路由信息中与第三集合的每个节点的序号对应的标志位设置为1,其余标志位设置为0。
该方法中,第一节点根据路由位图数组,确定第二路由信息,从而有利于基于第二路由信息确定从第一节点到具有对外接口的节点的最短下一跳节点。
一种可选的实施方式中,根据第二路由信息,确定第二指示信息,包括:
将第二路由信息和第一节点的序号进行位与操作,得到第三位与操作结果;
若第三位与操作结果为非0值,确定第二指示信息指示第一节点与第二网络的节点连接;或者,
若第三位与操作结果为0值,确定第二指示信息指示第一节点与第二网络的节点未连接。
该方法中,第一节点根据第二路由信息和第一节点的序号进行位运算,判断第一节点是否为具有对外接口的节点,从而有利于可以确定第一节点到具有对外接口的节点的最短下一跳节点。
一种可选的实施方式中,根据第二路由信息和路由位图数组,所述当所述第二指示信息指示所述第一节点与所述第二网络中的节点未连接时,确定第五节点,包括:
获取第一集合中序号值最小的节点的路由位图;
将序号值最小的节点的路由位图中与序号值最小的节点的序号相同的标志位的值设置为0;
将第二路由信息和序号值最小的节点的序号进行位与操作,得到第四位与操作结果;
若第四位与操作结果为非0值,确定第三集合中存在至少一个节点与序号值最小的节点相连接,确定序号值最小的节点的跳数为第二跳数;
若第四位与操作结果为0值,将序号值最小的节点的路由位图的各个标志位分别与第二路由信息中对应的标志位进行比较,
若存在至少一个标志位的取值相同且取值为1,确定序号值最小的节点的跳数为第二跳数;
当第二跳数小于第二跳数值时,将第二跳数值更新为第二跳数,并且确定第五节点为序号值最小的节点。
该方法中,通过路由位图数组和第二路由信息获取,首先获取第一集合中序号值最小的节点到具有对外接口的节点的最少跳数,有利于查找第一节点到具有对外接口的节点的最短下一跳节点。
一种可选的实施方式中,将序号值最小的节点的路由位图的各个标志位分别与第二路由信息中对应的标志位进行比较之后,该方法还包括:
若序号值最小的节点的路由位图的各个标志位和第二路由信息对应的标志位不存在相同标志位的取值为1,将序号值最小的节点的路由位图的各个标志位更新为与序号值最小的节点连接的所有节点的路由位图中对应的标志位进行位或的结果,以及将第二跳数加1;
当更新后的序号值最小的节点的路由位图的标志位的取值至少存在一个取值为1,执行将序号值最小的节点的路由位图的各个标志位分别与第二路由信息中对应的标志位进行比较的操作。
该方法中,若通过一次循环查找,不能直接获取序号值最小的节点到具有对外接口的节点的最少跳数,则可以通过多次循环查找,最终确定从序号值最小的节点到具有对外接口的节点的最少跳数,有利于查找第一节点到具有对外接口的节点的最短下一跳节点。
第二方面,本申请实施例提供了一种路由选择装置,该装置包括:
获取单元,用于当第一网络中的第一节点向第二节点发送数据时,获取第二节点的地址;
确定单元,用于当第二节点的地址为第一网络中的地址时,根据路由位图数组,确定第一路由信息;
确定单元还用于根据第一路由信息,确定第一指示信息;
确定单元还用于当第一指示信息指示第一节点与第二节点未连接时,根据路由位图数组和第一路由信息,确定第三节点;
其中,第一路由信息用于指示第一网络中与第二节点连接的节点;路由位图数组包括第一网络中多个节点之间的连接关系;第三节点与第四节点之间的跳数最少,第三节点属于第一集合,第一集合为第一节点的下一跳节点集合,第四节点为第一路由信息中指示的节点。
其中,第二方面中的获取单元和确定单元还可以执行如第一方面中可选的实施方式中的方法,具体可以参考第一方面中的描述,此处不再赘述。
第三方面,本申请实施例提供了一种通信设备,该设备包括处理器和存储器,处理器和存储器相互连接,其中,存储器用于存储计算机程序,计算机程序包括程序指令,其中,处理器执行程序指令以实现上述第一方面所设计的方法中的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被执行时实现上述第一方面所设计的方法中的步骤。
第五方面,本申请实施例提供了一种芯片,该芯片包括处理器,其中,处理器执行上述第一方面所设计的方法的步骤。可选的,所述芯片还可以包括存储器以及存储在存储器上的计算机程序或指令,所述处理器执行所述计算机程序或指令以实现上述第一方面所述的方法。
第六方面,本申请实施例提供了一种芯片模组,该芯片模组包括收发组件和芯片,该芯片包括处理器,其中,所述处理器执行上述第一方面所设计的方法中的步骤。可选的,所述芯片还可以包括存储器以及存储在存储器上的计算机程序或指令,所述处理器执行所述计算机程序或指令以实现上述第一方面所述的方法。
第七方面,本申请实施例提供一种计算机程序产品,包括计算机程序或程序指令,所述计算机程序或程序指令被执行时实现上述第一方面所述的方法。
附图说明
图1是本申请实施例提供了一种网络***的架构示意图;
图2是本申请实施例提供了一种短地址的示意图;
图3是本申请实施例提供的一种路由位图数组的示意图;
图4是本申请实施例提供了一种针对树节点n的路由信息的示意图;
图5是本申请实施例提供了一种第一函数的运算方法的示意图;
图6是本申请实施例提供了一种路由选择方法的流程示意图;
图7是本申请实施例提供的一种寻找内网中节点的最短下一跳节点的流程示意图;
图8是本申请实施例提供了另一种路由选择方法的流程示意图;
图9是本申请实施例提供了一种外网的路由选择方法的流程示意图;
图10是本申请实施例提供了一种寻找具有对外接口的节点的最短下一跳节点的流程示意图;
图11是本申请实施例提供了一种路由选择装置的示意图;
图12是本申请实施例提供了一种通信设备的示意图。
具体实施方式
针对本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
需要说明的是,本申请中“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”及其任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、软件、产品或设备没有限定于已列出的步骤或单元,而是还包括没有列出的步骤或单元,或还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
1、网络***:
本申请实施例可应用于网络***中。例如,图1为本申请实施例提供的一种网络***的示意图,该网络***包括第一网络和第二网络。其中,第一网络包括一个或多个路由节点。第一网络为本申请中设计的一种小型网络,该网络中的各个节点的网络拓扑是通过一个小型位表(即路由位图数组)来表示,有利于简化路由算法的计算过程。
其中,第一网络中具有路由功能的节点也可以称为树节点。例如,第一网络中的树节点的可以是具有路由功能的单片机、具有路由功能的路由器、具有路由功能的交换机、具有路由功能的用户终端、具有路由功能的第五代(5th-Generation,5G)移动通信网络中的设备或者未来演进的公用陆地移动通信网络(public land mobile network,PLMN)中的设备等,本申请实施例对此并不限定。
可选的,树节点还可以关联一个或多个叶节点,叶节点不具备路由功能,且只和对应的树节点保持连接。
一种可选的实施方式中,第一网络中的各个节点的网络地址通过短地址标识。该短地址相较于现有的网络协议(Internet Protocol,IP)地址更简短,占用的存储空间更小,对短地址的运算也更简单。如图2所示,图2提供了一种短地址的示意图,每个节点的短地址由16个比特(bit)位组成。其中,短地址的高5位即(Bit15-Bit11)表示该节点的序号,树节点的数量为25即32个,Bit10是对外节点位,Bit9位是无效位,Bit8-Bit0是叶节点序号。若Bit8-Bit0为全1,即0x1ff(11111111),代表该节点是孤立节点;若Bit8-Bit0为全0,代表该节点为树节点;Bit8-Bit0为非全0且非全1,说明该节点为叶节点,该叶节点对应的树节点序号为该叶节点的短地址中Bit15-Bit11,所以第一网络中有32*510个叶节点。若Bit10为1,则说明该节点为第二网络(即其他网络)的节点;若Bit10为0,则说明该节点是第一网络(内网)的节点。叶节点注册在其短地址中树节点序号所指的树节点下,只和短地址中树节点序号所指的树节点保持连接。
一种可选的实施方式中,树节点序号可由用户配置生成,叶节点地址由树节点分配生成。
示例地,若用户分配第一节点的序号为1,则第一节点的短地址中高5位Bit15-Bit11位00001。由于第一节点是第一网络的节点,且第一节点是树节点,则第一节点的短地址为0000100000000000。若第一节点分配给叶节点A序号为10,叶节点A的短地址的高5位Bit15-Bit11位00001(第一节点的序号),叶节点A的短地址的低9位Bit8-Bit0为000010010,则该叶节点的短地址为0000100000010010。该叶节点A属于在第一节点下,叶节点A只与第一节点连接。
其中,第二网络包括一个或多个路由节点。第二网络也可以视为如第一网络的一种小型网络,第二网络中的节点也包括树节点和叶节点,并且,第二网络中的各个节点的网络地址也可以通过短地址标识,具体实施方式可以参考对第一网络中的节点对应的描述,此处不再赘述。
其中,第一网络和第二网络为相互隔离的两个网络,例如,第一网络可以称为内网,第二网络可以称为外网。第一网络中存在可以与第二网络连接的节点,该节点称为对外节点。当源节点为第一网络中的节点,目标节点为第二网络中的节点时,源节点可以通过对外节点连接至目标节点。
在第一网络中,使用一种小型位表(即路由位图数组)作为每一个路由节点的临近节点网络拓扑描述,以及是否为对外节点的描述,完成节点内存储整个网络的拓扑结构。
一种可选的实施方式中,假设第一网络包括M个网络节点,则路由位图数组包括M行M列。路由位图数组的第m行表示第一网络中一个节点的路由位图,m大于或等于1,且小于或等于M。第m行中与该节点的序号相同的标志位用于指示该节点与第二网络中的任意一个节点的连接关系。第m行中与该节点的序号不同的标志位用于指示该节点与不同的标志位对应的节点之间的连接关系。第m行中的标志位的取值为0或1。
例如,图3是本申请实施例提供了一种路由位图数组的示意图。假设第一网络包括32个树节点(即M=32),则路由位图数组(Route Bitmap)包括32行32列(标志位也可以称为bit位)。该路由位图数组存储了32个树节点的路由位图。其中,RouteBitmap[m]表示路由位图数组中第m行,第m行对应序号为m的树节点的路由位图。RouteBitmap[m]中第m个标志位用于指示树节点m是否具备对外接口,即树节点m是否可以与第二网络中的节点连接(例如图3中标记为阴影的格子)。例如,若RouteBitmap[m]中第m个标志位为1,表示树节点m与第二网络中的节点连接;若RouteBitmap[m]中第m个标志位为0,表示树节点m与第二网络中的节点未连接。RouteBitmap[m]中第n个标志位用于指示树节点m与树节点n是否直接连接,n不等于m。例如,若RouteBitmap[m]中第n个标志位为1,表示树节点m与树节点n直接连接;若RouteBitmap[m]中第n个标志位为0,表示树节点m与树节点n未直接连接。
上述示例中,每个树节点都可以采用32*4=128个字节维护第一网络的拓扑关系,降低了对树节点的随机存储器(random access memory,RAM)和处理器的要求。因此,路由位图数组适用于网络范围较小,且路由节点的成本较低的场景。
2、本申请涉及的相关函数:
(1)GetRouteBit(n)函数
该函数的输入为树节点的序号n,输出为针对该树节点的路由信息,针对该树节点的路由信息用于指示该树节点n的临近节点。在初始情况下,将路由位图数组中该树节点n的临近节点的标志位设置为0。针对该树节点的路由信息包括1行M列。其中,每一列表示该列数对应的树节点是否为树节点n的临近节点。如果树节点n的临近节点为A,则将针对该树节点的路由信息中A节点所在的列对应的标志位设置为1,其余标志位设置为0。其中,树节点n的临近节点指的是与树节点n直接连接的树节点。与树节点n直接连接表示树节点n的临近节点可以直接向树节点n发送数据,不需要经过其他节点转发。
请参见图4,图4为本申请提供的一种针对树节点n的路由信息的示意图。例如,若第一路由信息为0x50000001,对应二进制是01010000000000000000000000000001,其中Bit0和Bit30,Bit28是1,其他比特位的取值都为0。则针对该树节点n的路由信息表示树节点序号为0,30,28的三个树节点为树节点n的临近节点,可以与树节点n直接连接。而其他树节点不是树节点n的临近节点,若其他树节点需要与树节点n进行通信则可以通过树节点n的临近节点进行数据转发。
(2)GetItfBitmap函数
该函数输入为路由位图数组,输出为针对对外接口的节点的路由信息。针对对外接口的节点的路由信息用于指示第一网络中具有对外接口的节点。针对对外接口的节点的路由信息包括1行M列。将针对对外接口的节点的路由信息中与包括对外接口的节点的集合中的每个节点的序号对应的标志位设置为1,其余标志位设置为0。
例如,假设包括对外接口的节点的集合中每个设备对应的序号为0、30、28,则调用GetItfBitmap函数,输出的针对对外接口的节点的路由信息的二进制表示为01010000000000000000000000000001,表明序号为0、28、30对应的树节点是具有对外接口的节点。
(3)第一函数
该函数的输入为1行M列的数组和树节点的序号,输出为指示信息。其中,输入参数之间进行位与运算,具体可以是将输入参数的1行M列的各个标志位与(1<<输入的树节点的序号)进行位与运算,其中<<代表左移运算符,若输入的树节点序号为3,则1<<3=1000。
例如,该函数的处理流程包括:首先假设第一节点的序号为n,第二节点的序号为B,输入的1行M列数组为GetRouteBit(B)的返回值,则计算GetRouteBit(B)位与1<<n。
结果非0:说明第一节点可直接到达第二节点,第一节点直接发送消息到第二节点即可,计算结束,
结果为0:说明第一节点不是第二节点的临近节点。
请参见图5,图5为本申请提供的一种第一函数的运算方法的示意图。例如:1行M(M=32)列的数组为01010000000000000000000000001001,树节点序号为3,则将一行M列数组和树节点序号带入第一函数,得到指示信息为1000。则表示计算GetRouteBit(B)位与1<<n的结果非0,树节点3为树节点B的临近节点。
请参见图6,图6是本申请实施例提供的一种路由选择方法的流程示意图,该路由选择方法可以包括但不限定于以下步骤:
S601、当第一网络中的第一节点向第二节点发送数据时,获取第二节点的地址。
第一节点表示路由的源节点,第二节点表示路由的目标节点。第二节点的地址表示路由的目标地址。其中,第二节点的地址可以携带于第一节点向第二节点发送的数据中。
例如,第一节点发送的数据包括一个或多个数据包,数据包的包头包括一个1行16列的数组uint16_t DstAddr[]。该数组unit16_t DstAddr[]是目标节点的短地址。其中,unit16_t DstAddr[]的第10位用于表示目标地址为内网或外网的地址。例如,若unit16_tDstAddr[10]为0,代表目标地址是第一网络(即内网)的地址;若unit16_t DstAddr[10]为1,代表目标地址是第二网络(即外网)的地址。
一种可选的实施方式中,若第二节点的地址为unit16_t DstAddr[10]为0,表示第二节点是第一网络中的地址。第一节点向第二节点发送数据表示内网中的两个树节点之间的数据传输。
S602、当第二节点的地址为第一网络中的地址时,根据路由位图数组,确定第一路由信息。
其中,路由位图数组包括第一网络中的多个节点之间的连接关系。
一种可选的实施方式中,根据路由位图数组,确定第二集合,第二集合包括第二节点的路由位图中与第二节点序号不同且标志位为1的节点。第一路由信息包括1行M列。将第一路由信息中与第二集合的每个节点的序号对应的标志位设置为1,其余标志位设置为0。
例如,假设第二节点的序号为n,第一节点调用GetRouteBit(n)函数,函数的输入为第二节点的序号n。GetRouteBit(n)函数输出第一路由信息,第一路由信息用于指示第一网络中与第二节点连接的节点。
可见,第一节点根据路由位图数组,确定第一路由信息,第一路由信息用于指示第一网络中与第二节点连接的节点。从而有利于基于第一路由信息快速确定从第一节点到第二节点的最短下一跳节点。
S603、根据第一路由信息,确定第一指示信息。
一种可选的实施方式中,将第一路由信息和第一节点的序号作为第一函数的输入,输出的指示信息为第一位与操作结果。第一位与操作结果包括以下两种情况:
1)若第一位与操作结果为非0值,第一指示信息指示第一节点与第二节点连接,表示第一节点可以直接选路到第二节点。即路由过程结束,可以不再执行后续步骤。
例如,若第一节点的序号为0,第一路由信息为0x50000001,根据第一函数进行位与操作:0x50000001&1=1,得到位与操作结果为1。则第一节点是第二节点的临近节点。也即是,第一指示信息指示第一节点与第二节点连接,第一节点直接向第二节点发送数据。
2)若第一位与操作结果为0值,第一指示信息指示第一节点与第二节点未连接,将继续执行后续步骤。
例如,若第一节点的序号为1,第一路由信息为0x50000001。根据第一函数进行位与操作:0x50000001&10=0,得到位与操作结果为0,则第一节点不是第二节点的临近节点。也即是,第一指示信息指示第一节点与第二节点未连接,第一节点不能直接向第二节点发送数据,需要继续寻找其他节点进行数据转发。
S604、当第一指示信息指示第一节点与第二节点未连接时,根据路由位图数组和第一路由信息,确定第三节点。
其中,第三节点与第四节点之间的跳数最少,第三节点属于第一集合,第一集合是第一节点的下一跳节点集合,第四节点为第一路由信息中指示的节点。
其中,S604中确定第三节点的具体步骤请参见图7。图7是本申请实施例提供的一种寻找内网中节点的最短下一跳节点的流程示意图:
其中,在图7所示的流程步骤之前,可以进行一次初始化操作。该初始化操作包括:第一节点将最短下一跳序号设为0xff,并且将第一跳数值设置为0xff。根据第一节点的路由位图,获取第一集合,第一集合是第一节点的路由位图中标志位为1的所有节点集合。
S701、获取第一集合中序号值最小的节点的路由位图。
例如,若序号值最小的节点为n,则序号值最小的节点的路由位图为RouteBitmap[n]。
S702、将序号值最小的节点的路由位图中与序号值最小的节点的序号相同的标志位的值设置为0。
S703、将第一路由信息和序号值最小的节点的序号进行位与操作,得到第二位与操作结果,判断第二位与操作结果是否为0值。
一种可选的实施方式中,将第一路由信息和序号值最小的节点的序号作为第一函数的输入,可以得到输出的指示信息为第二位与操作结果。其中,第二位与操作结果包括以下两种情况:
1)若第二位与操作结果为非0值,确定序号值最小的节点与第二节点直接连接,且序号值最小的节点对应的跳数为第一跳数,也即是,执行S704a。其中,第一跳数为0,该第一跳数用于指示序号值最小的节点到第二节点的任一临近节点的最少跳数。
例如,当n为3时,若第一路由信息为0x50000008,第一路由信息的二进制表示为01010000000000000000000000001000,则调用第一函数执行位与操作:0x50000008&(1<<3),得到第二位与操作结果为非零。则序号值最小的节点是第二节点的临近节点,序号值最小的节点到第二节点的临近节点的最小跳数为0。
2)若第二位与操作结果为0值,确定序号值最小的节点不能与第二节点直接连接,执行S704b。并且,初始化第一跳数为0,继续执行后续步骤。其中,第一跳数为上述序号值最小的节点到第二节点的跳数。
S704a、确定序号值最小的节点与第二节点连接,确定序号值最小的节点对应的跳数为第一跳数,第一跳数为0。第一节点直接执行S705。
S704b、根据第一路由消息和路由位图数组,确定序号值最小的节点到第二节点的临近节点的最少跳数。
一种可选的实施方式中,第一节点将序号值最小的节点的路由位图的各个标志位分别与第一路由信息中对应的标志位进行比较。其中,序号值最小的节点的路由位图用于指示序号值最小的节点经过第一跳数可到达的所有节点。
可选的,若比较结果为序号值最小的节点的路由位图的各个标志位与第一路由信息中对应的标志位存在至少一个标志位的取值相同且取值为1。第一节点确定序号值最小的节点对应的跳数为第一跳数,直接执行S705。
例如,假设序号值最小的节点的路由位图指示序号值最小的节点可以到达的所有节点包括节点1,节点2,节点3。第一路由信息指示第二节点的临近节点包括节点3,节点4。则序号值最小的路由位图与第一路由信息用于指示节点3的标志位都取值为1,表明序号值最小的节点可以经过第一跳数到达节点3。第一跳数为序号值最小的节点到达节点3的最短跳数。
可选的,若比较结果为序号值最小的节点的路由位图的各个标志位和第一路由信息中对应的标志位不存在相同标志位的取值为1。第一节点将序号值最小的节点的路由位图的各个标志位更新为与序号值最小的节点连接的所有节点的路由位图中对应的标志位进行位或的结果,以及将第一跳数加1。
可见,序号值最小的节点的路由位图标志位为1的节点中不存在一个节点是第二节点的临近节点,更新序号值最小的节点的路由位图。首先获取序号值最小的节点的所有临近节点,将这些临近节点的路由位图全部进行位或运算。该位或运算结果用于指示序号值最小的节点的路由位图中所有标志位为1的节点的所有临近节点的集合,更新后的序号值最小的路由位图用于指示序号值最小的节点经过X跳可到达的所有节点的集合,其中X等于第一跳数+1。
例如,假设序号值最小的节点的路由位图指示序号值最小的节点可以到达的所有节点包括节点1,节点2,节点3。更新序号值最小的节点的路由位图,若节点1的临近节点包括节点2、节点4;节点2的临近节点包括节点1、节点5;节点3的临近节点包括节点6、节点7。则更新后序号值最小的节点的路由位图中节点2、节点4、节点1、节点5、节点6、节点7分别对应的标志位为1,将第一跳数加1。
一种可选的实施方式中,若序号值最小的节点的路由位图的所有标志位为0,输出序号值最小的节点不可到达第二节点的任一临近节点的结果。也就是说,序号值最小的节点的路由位图指示序号值最小的节点不能到达第一网络内任一树节点。
另一种可选的实施方式中,当更新后的序号值最小的节点的路由位图的标志位的取值至少存在一个取值为1。第一节点执行将序号值最小的节点的路由位图的各个标志位分别与第一路由信息中对应的标志位进行比较的操作。
可见,当序号值最小的节点的路由位图中序号值为1的所有节点中不存在一个节点是第二节点的临近节点,重复更新序号值最小的节点的路由位图和第一跳数即重复执行S704b。
可见,若通过一次循环查找,不能直接获取序号值最小的节点到第二节点任一临近节点的最少跳数,则可以通过多次循环操作,最终确定从序号值最小的节点到第二节点的任一临近节点的最少查找,有利于快速查找第一节点到第二节点的最短下一跳节点。
S705、当第一跳数小于第一跳数值时,将第一跳数值更新为第一跳数,并且确定最短下一跳节点为序号值最小的节点。
第一节点的每个临近节点到第二节点都会存在一个第一跳数。若第一节点有n个临近节点,那么第一跳数值会与这n个临近节点对应的第一跳数比较,并更新为跳数最少的第一跳数。
一种可选的实施方式中,当第一节点存在两个或两个以上临近节点时,将序号值最小的节点的路由位图替换为第一节点的每个临近节点的路由位图。根据第一节点的每个临近节点的路由位图执行S702-S705中的步骤,获取最终的第三节点的序号,第三节点是第一节点到达第二节点的最少跳数的路径中下一跳节点。
例如,如果第一集合中存在序号值第二小的节点,获取序号值第二小的节点的路由位图,将序号值最小的节点替换为序号值第二小的节点,执行S702-S705。例如,序号值第二小的节点执行S702-S704a/S704b得到序号值最小的节点的第一跳数为3,序号值第二小的节点的第一跳数为2。当使用序号值最小的节点执行S705,第一跳数值更新为3,第三节点为序号值最小的节点。当使用序号值第二小的节点执行S705,由于序号值第二小的节点的第一跳数<第一跳数值(2<3),所以将第一跳数值更新为2,第三节点为序号值第二小的节点。
可见,S705及时更新第一节点到第二节点的临近节点的最短下一跳节点,保证第一节点的下一跳节点为第一节点到第二节点的临近节点的最短下一跳节点。
一种可选的实施方式中,根据S701-S705得到的结果为第三节点的序号。其中,将第三节点的序号向左位移10位,得到第三节点的短地址。第一节点根据第三节点的短地址向第三节点发送数据。示例地,若第三节点的序号为3,则第三节点的序号二进制表达为00011,第三节点是第一网络的节点,所以第三节点的bit10为0,所以第三节点的短地址为000110000000000。
本申请实施例中,设计了一种小型位图(即路由位图数组),用于描述每一个路由节点及其相邻节点的网络拓扑,可以实现每个节点都存储整个网络的拓扑结构,从而有利于快速实现在路由节点数量少,且路由节点的成本要求很低的小范围网络中查找第一节点到第二节点的最短下一跳节点的算法。
请参见图8,图8是本申请实施例提供的另一种路由选择方法的流程示意图,该路由选择方法包括但不限定于以下步骤:
S801、确定路由位图数组和路由存活计数数组。
一种可选的实施方式中,每个树节点存储路由存活计数数组unit8_tRouteLiveCnt[32],其中,unit8_t为RouteLiveCnt[32]中每个数值的数据类型。例如,第一节点的路由存活计数数组RouteLiveCnt[32]用于为32个树节点的存活时间进行计数。
一种可选的实施方式中,若第一节点首次上电,第一节点会广播其加入第一网络的入网消息,可以同时通知多个节点其加入第一网络的入网消息,以便于第一节点快速获取其它节点的反馈并建立路由位图数组。
若第二节点收到第一节点的入网消息,将第二节点的路由位图数组中第二节点的路由位图中第一节点的序号对应的标志位设置为1,并将第二节点的路由存活计数数组中第一节点序号对应的标志位设置为最大值(该最大值可由人工进行设置)。然后向第一节点发送一个入网应答消息。其中,入网应答消息包括了第二节点的路由位图数组。第一节点收到入网应答消息后,将第一节点的路由位图数组更新为第一节点的路由位图数组和第二节点的路由位图数组的最大合集。如果收到多个节点的路由位图数组,则将第一节点的路由位图数组更新为包括该多个节点的路由位图数组的最大合集。最大合集即将多个路由位图数组进行合并,合并后的路由位图数组中每个节点的路由位图只有一个。
例如,假设第一节点的序号为n,第二节点的序号为m。当第二节点接收第一节点的入网消息时,第二节点将RouteBitmap[m]这一行中序号为n的标志位设置为1,并且设置第二节点的RouteLiveCnt[n]=32(32是树节点生存时间的最大值,可人工进行设定这个最大值)。若第一节点收到第二节点和第三节点的路由位图数组,假设第二节点的路由位图数组包括(节点1、节点2和节点3的分别的路由位图),第三节点的路由位图数组包括(节点3、节点4、节点5的分别的路由位图)。那么第二节点和第三节点的路由位图数组的最大合集包括(节点1、节点2、节点3、节点4、节点5分别的路由位图),将第一节点的路由位图数组更新为包括第二节点和第三节点的路由位图数组的最大合集。
可见,第一节点首次上电时,第一节点开始建立并维护自身的路由位图数组。第二节点也会知晓第一网络的节点变化情况,修改第二节点的路由位图数组和路由存活计数数组。有利于第一网络中树节点快速建立或完善自身的路由位图数组和路由存活计数数组,和树节点间拓扑关系的动态删减维护。
一种可选的实施方式中,第一节点的路由存活计数数组中每一个取值每隔固定时间减1。若第一节点的路由存活计数数组中第二节点的存活计数的取值为0时,第一节点将第一节点的路由位图数组中第一节点的路由位图的第二节点对应的标志位设置为0,表示第二节点已离线。
可见,第一节点若长时间没有收到临近节点的消息,会更新第一节点的路由位图数组,有利于节点及时更新第一网络的拓扑结构,和节点间拓扑关系的动态删减维护,防止当临近节点已离线,但是第一节点会继续向临近节点发送数据,造成网络资源浪费。
一种可选的实施方式中,第一节点接收到第二节点发送的消息(表示第二节点在线),第一节点将第一节点的路由计数数组中第二节点对应的生存计数改为最大值,然后检查第一节点的路由位图中第二节点对应的标志位是否为1。如果第一节点的路由位图中第二节点对应的标志位不为1,将其改为1,并将第一节点的路由位图广播给第一网络的其他节点。如果第一节点的路由位图中第二节点对应的标志位为1,则第一节点不更新第一节点的路由位图。
可见,无论第二节点的消息是否发送给第一节点,第一节点都会检查第一节点的路由位图并更新第一节点的路由存活计数数组,以完善第一节点的路由位图数组。有利于第一节点及时更新第一网络的拓扑结构,和节点间拓扑关系的动态删减维护。
一种可选的实施方式中,若第二节点接收到第一节点的路由位图,则将第二节点的路由存活计数数组中标识第一节点的存活计数改为最大值。并且对比第二节点的路由位图数组中第一节点的路由位图和接收到的第一节点的路由位图中的各个标志位。若存在标志位不同,将第二节点的路由位图数组中第一节点的路由位图更新为接收到的第一节点的路由位图,并将第一节点的路由位图广播给第一网络中的其它节点。
可见,第二节点会接收其它节点的路由位图并更新第二节点的路由位图数组和路由存活计数数组,以完善自身的路由位图数组。有利于及时更新第一网络的拓扑结构,和节点间拓扑关系的动态删减维护。
一种可选的实施方式中,第一节点的路由位图数组的结构和有益效果参考S602中的描述,此处不再进行赘述。
S802a、当第二节点的地址为第一网络中的地址时,第一节点寻找到第二节点的最短下一跳节点。
一种可选的实施方式中,若第一节点的叶节点需要发送数据到第二节点,第一节点接收并转发来自第一节点的叶节点的数据,第一节点的转发步骤执行前述S601-S604中的描述。
叶节点不存储路由位图数组,也不参与路由选择,降低了网络中路由节点的数量,提高了路由节点的路由选择效率,同时也降低了对叶节点的处理器和RAM的要求。
一种可选的实施方式中,S802a的实现过程以及可以达到的有益效果可参见前述S601-S604中的描述,此处不再进行赘述。
S802b、当第二节点的地址为第二网络中的地址时,第一节点寻找到具有对外接口的节点的最短下一跳节点。
一种可选的实施方式中,获取第二节点的地址为unit16_t DstAddr[10]为1,则第二节点是第一网络中的地址。则第一节点向第二节点发送数据表示第一节点需要向具有对外接口的节点发送数据。
例如,S802b的具体实施方式如图9所示。图9是本申请实施例提供的一种外网的路由选择方法的流程示意图。
S901、第一节点根据路由位图数组,确定第二路由信息,第二路由信息用于指示第一网络中与第二网络的节点连接的节点。
其中,路由位图数组还包括所述第一网络中的一个或多个节点与所述第二网络中的节点的连接关系。
一种可选的实施方式中,第一节点根据路由位图数组,确定第二路由信息。例如,第一节点根据路由位图数组,确定第三集合,并将第二路由信息中与第三集合的每个节点的序号对应的标志位设置为1,其余标志位设置为0。其中,第三集合包括第一网络中与第二网络的节点连接的节点集合,第二路由信息包括1行M列,具体的含义与第一路由信息类似。
该实施方式可由第一节点调用GetItfBitmap函数实现,GetItfBitmap函数的输入为路由位图数组,输出第二路由信息。
可见,第一节点根据路由位图数组,确定第二路由信息,从而有利于基于第二路由信息快速确定从第一节点到具有对外接口的节点的最短下一跳节点。
S902、第一节点根据第二路由信息,确定第二指示信息。
一种可选的实施方式中,根据第二路由信息,确定第二指示信息,包括:
将第二路由信息与第一节点的序号带入第一函数,输出的指示信息为第三位与操作结果,第三位与操作结果包括以下两种情况:
1)若第三位与操作结果为非0值,确定第二指示信息指示所述第一节点与所述第二网络的节点连接,结束后续步骤。
例如,若第一节点的序号为0,第二路由信息为0x50000001,根据第一函数进行位与操作,则0x50000001&1=1,位与操作结果不为0,则第一节点是具有对外接口的节点,第一节点与第二网络的节点连接,第一节点直接向第二网络转发数据。
2)若第三位与操作结果为0值,确定第二指示信息指示所述第一节点与所述第二网络的节点未连接。
示例地,若第一节点的序号为1,第二路由信息为0x50000001,根据第一函数进行位与操作。则0x50000001&10=0,位与操作为0,第一节点不是具有对外接口的节点,第一节点与第二网络的节点未连接,第一节点继续寻找具有对外接口的节点。
该实施方式中,第一节点根据第二路由信息和第一节点的序号进行位与运算,判断第一节点是否为具有对外接口的节点,从而有利于可以快速确定第一节点到具有对外接口的节点的最短下一跳节点。
S903、当第二指示信息指示第一节点与第二网络中的节点未连接时,根据第二路由信息和路由位图数组,确定第五节点。
其中,第五节点与第六节点之间的跳数最少,第五节点属于第一集合,第六节点为第二路由信息中指示的节点。
一种可选的实施方式中,第一节点根据第二路由信息和路由位图数组,确定第五节点,第五节点是第一节点到具有对外接口的节点的最短下一跳节点。例如,S903的具体实施方式如图10所示。请参见图10,图10是本申请实施例提供了一种寻找具有对外接口的节点的最短下一跳节点的流程示意图。
其中,在图10所示的流程步骤之前,可以进行一次初始化操作。该初始化操作包括:第一节点将最短下一跳序号设为0xff(无效值),第二跳数值设置为0xff,根据第一节点的路由位图,获取第一集合。
S1001、获取第一集合中序号值最小的节点的路由位图。
S1002、将序号值最小的节点的路由位图中与序号值最小的节点的序号相同的标志位的值设置为0。
S1003、根据路由位图数组,判断序号值最小的节点的临近节点是否为具有对外接口的节点。
一种可选的实施方式中,将第二路由信息和序号值最小的节点的序号作为第一函数的输入,可以得到输出的指示信息为第四位与操作结果,其中第四位与操作结果包括以下两种情况;
1)若第四位与操作结果为非0值,确定第三集合中存在至少一个节点与序号值最小的节点相连接(即序号值最小的节点的临近节点为具有对外接口的节点),确定序号值最小的节点的跳数为第二跳数,且第二跳数为0,即执行S1004a。第二跳数用于指示序号值最小的节点到第三集合中任一节点的最小跳数,结束后续步骤。
例如,当n为3时,若第二路由信息为0x50000008,第二路由信息的二进制表示为01010000000000000000000000001000,调用第一函数执行位与操作:0x50000008&(1<<3),得到第四位与操作结果为非0值,则表示序号值最小的节点的临近节点为具有对外接口的节点,序号值最小的节点到第三集合中任一节点的最小跳数为0。
2)若第四位与操作结果为0值,确定序号值最小的节点的临近节点不是对外接口节点,执行S1004b。并且,初始化第二跳数为0,继续执行后续步骤。其中,第二跳数为第一节点到具有对外接口的节点的最短跳数。
S1004a、确定序号值最小的节点到具有对外接口节点的第二跳数为0,并直接执行S1005。
S1004b、根据第二路由消息和路由位图数组,确定序号值最小的节点到具有对外接口节点的最少跳数。
一种可选的实施方式中第一节点,将序号值最小的节点的路由位图的各个标志位分别与第二路由信息中对应的标志位进行比较。
序号值最小的节点的路由位图用于指示序号值最小的节点经过第二跳数可到达的所有节点。
可选的,若比较结果为序号值最小的节点的路由位图的各个标志位与第二路由信息中对应的标志位存在至少一个标志位的取值相同且取值为1,第一节点确定序号值最小的节点对应的跳数为第二跳数。表明序号值最小的节点的临近节点中至少存在一个节点是具有对外接口的节点,第二跳数是序号值最小的节点到具有对外接口的节点的最少跳数。结束S1004b。
例如,若序号值最小的节点的路由位图指示序号值最小的节点可以到达的所有节点包括节点1,节点2,节点3。第二路由信息指示具有对外接口的节点包括节点3,节点4。所以序号值最小的路由位图与第二路由信息用于指示节点3的标志位都取值为1,则表明序号值最小的节点可以经过第二跳数到达节点3。第二跳数为序号值最小的节点到达节点3的最短跳数。
可见,通过路由位图数组和第二路由信息快速获取,首先获取第一集合中序号值最小的节点到具有对外接口的节点的最少跳数,有利于快速查找第一节点到具有对外接口的节点的最短下一跳节点。
可选的,若序号值最小的节点的路由位图的各个标志位和第二路由信息中对应的标志位不存在相同标志位的取值为1,将序号值最小的节点的路由位图的各个标志位更新为与序号值最小的节点连接的所有节点的路由位图中对应的标志位进行位或的结果,以及将第二跳数加1。
可见,序号值最小的节点的路由位图中的序号值为1的节点中不存在一个节点是具有对外接口的节点,更新序号值最小的节点的路由位图。首先获取序号值最小的节点的所有临近节点,将这些临近节点的路由位图全部进行位或运算,该位或运算结果用于指示序号值最小的节点的路由位图中所有节点的所有临近节点的集合,更新后的序号值最小的路由位图用于指示序号值最小的节点经过Y跳数到达的所有节点的集合,Y等于第二跳数+1。
例如,假设序号值最小的节点的路由位图指示序号值最小的节点可以到达的所有节点包括节点1,节点2,节点3。更新序号值最小的节点的路由位图,若节点1的临近节点包括节点2、节点4;节点2的临近节点包括节点1、节点5;节点3的临近节点包括节点6、节点7。则更新后序号值最小的节点的路由位图中节点2、节点4、节点1、节点5、节点6、节点7分别对应的标志位为1,将第二跳数加1。
一种可选的实施方式中,若序号值最小的节点的路由位图的所有标志位为0,输出序号值最小的节点不可到达的任一具有对外接口的节点的结果。也就是说,序号值最小的节点的路由位图指示序号值最小的节点不能到达第一网络内任一树节点,所以输出序号值最小的节点不可到达的任一具有对外接口的节点的结果,结束后续步骤。
另一种可选的实施方式中,当更新后的序号值最小的节点的路由位图的标志位的取值至少存在一个取值为1,执行将序号值最小的节点的路由位图的各个标志位分别与第二路由信息中对应的标志位进行比较的操作。
可见,当序号值最小的节点的路由位图中序号值为1的所有节点中不存在一个节点是具有对外接口的节点,重复更新序号值最小的节点的路由位图和第二跳数即重复执行S1004b。
可见,若通过一次循环查找,不能直接获取序号值最小的节点到具有对外接口的节点的最少跳数,则可以通过多次循环查找,最终确定从序号值最小的节点到具有对外接口的节点的最少跳数,有利于快速查找第一节点到具有对外接口的节点的最短下一跳节点。
S1005、当第二跳数小于第二跳数值时,将第二跳数值更新为第二跳数,并且确定最短下一跳节点为序号值最小的节点。
第一节点的每个临近节点到具有对外接口的节点都会存在一个第二跳数,若第一节点有n个临近节点,那么第二跳数值会与这n个临近节点对应的第二跳数比较,并更新为跳数最少的第二跳数。
一种可选的实施方式中,当第一节点存在两个或两个以上临近节点时,将序号值最小的节点的路由位图替换为第一节点的每个临近节点的路由位图。根据第一节点的每个临近节点的路由位图执行S802b中的步骤,获取第五节点的序号,第五节点是第一节点到达具有对外接口的节点的最少的跳数中下一跳节点。
例如,第一集合中存在序号值第二小的节点,获取序号值第二小的节点的路由位图,将序号值最小的节点替换为序号值第二小的节点,执行S1002-S1005。
示例地,如果得到序号值最小的节点的第二跳数为3,序号值第二小的节点的第一跳数为2。当使用序号值最小的节点对应的第二跳数执行S1005,第二跳数值更新为3,第五节点为序号值最小的节点;当使用序号值第二小的节点对应的第二跳数执行S1005。由于序号值第二小的节点的第二跳数<第二跳数值(2<3),所以将第二跳数值更新为2,第五节点为序号值第二小的节点。
可见,S1005及时更新第一节点到具有对外接口的节点的最短下一跳节点,保证第一节点的下一跳节点为第一节点到具有对外接口的节点的最短下一跳节点。
一种可选的实施方式中,第一节点获取到第五节点的序号。将第五节点的序号向左位移10位,得到第五节点的短地址,第一节点向第五节点发送数据。
示例地,若第五节点的序号为2,则第三节点的序号二进制表达为00010,第三节点是第一网络的节点。所以第三节点的bit10为0,所以第三节点的短地址为000100000000000。
可见,本申请实施例中,第一节点维护并更新自身的路由位图数组和路由存活计数数组,有利于第一节点及时了解网络拓扑的变化情况,以便于查找最短下一跳。当第二节点是第二网络的节点时,路由位图数组还可用于描述每一个路由节点与外网的连接关系,每个节点可以快速确定具有对外接口的节点,从而有利于快速实现在路由节点数量少,且路由节点的成本要求很低的小范围网络中第一节点到具有对外接口的节点的最短下一跳节点查找算法。
请参见图11,图11是本申请实施例提供的一种路由选择装置的示意图。该路由选择装置包括获取单元1101和确定单元1102。其中,
获取单元1101,用于当第一网络中的第一节点向第二节点发送数据时,获取第二节点的地址。
确定单元1102,用于当第二节点的地址为第一网络中的地址时,根据路由位图数组,确定第一路由信息。
确定单元1102还用于根据第一路由信息,确定第一指示信息。
确定单元1102还用于当第一指示信息指示第一节点与第二节点未连接时,根据路由位图数组和第一路由信息,确定第三节点;
其中,第一路由信息用于指示第一网络中与第二节点连接的节点;路由位图数组包括第一网络中多个节点之间的连接关系;第三节点与第四节点之间的跳数最少,第三节点属于第一集合,第一集合为第一节点的下一跳节点集合,第四节点为第一路由信息中指示的节点。
一种可选的实施方式中,获取单元1101获取第二节点的地址之后,确定单元1102还用于当第二节点的地址为第二网络中的地址时,根据路由位图数组,确定第二路由信息。其中,第二路由信息用于指示第一网络中与第二网络的节点连接的节点。路由位图数组还包括第一网络中的一个或多个节点与第二网络中的节点的连接关系。
确定单元1102还用于根据第二路由信息,确定第二指示信息。
当第二指示信息指示第一节点与第二网络中的节点未连接时,确定单元1102还用于根据第二路由信息和路由位图数组,确定第五节点。其中,第五节点与第六节点之间的跳数最少,第五节点属于第一集合,第六节点为第二路由信息中指示的节点。
一种可选的实施方式中,确定单元1102还用于根据路由位图数组,确定第一路由信息。
其中,第一路由信息包括1行M列。确定单元1102还用于根据路由位图数组,确定第二集合。其中,第二集合包括第二节点的路由位图中与第二节点序号不同且标志位为1的节点。
确定单元1102还用于将第一路由信息中与第二集合的每个节点的序号对应的标志位设置为1,其余标志位设置为0。
一种可选的实施方式中,确定单元1102用于根据第一路由信息,确定第一指示信息,包括:确定单元1102还用于将第一路由信息和第一节点的序号进行位与操作,得到第一位与操作结果。若第一位与操作结果为非0值,第一指示信息指示第一节点与第二节点连接。或者,若第一位与操作结果为0值,第一指示信息指示第一节点与第二节点未连接。
一种可选的实施方式中,当第一指示信息指示第一节点与第二节点未连接时,确定单元1102还用于根据路由位图数组和第一路由信息,确定第三节点。
获取单元1101还用于获取第一集合中序号值最小的节点的路由位图。
确定单元1102还用于将序号值最小的节点的路由位图中与序号值最小的节点的序号相同的标志位的值设置为0。
确定单元1102还用于将第一路由信息和序号值最小的节点的序号进行位与操作,得到第二位与操作结果。
可选的,若第二位与操作结果为非0值,确定单元1102还可用于确定序号值最小的节点与第二节点连接,确定序号值最小的节点对应的跳数为第一跳数。
可选的,若第二位与操作结果为0值,确定单元1102还用于将序号值最小的节点的路由位图的各个标志位分别与第一路由信息中对应的标志位进行比较,
可选的,若存在至少一个标志位的取值相同且取值为1,确定单元1102还用于确定序号值最小的节点的跳数为第一跳数。
可选的,当第一跳数小于第一跳数值时,确定单元1102还用于将第一跳数值更新为第一跳数,并且确定第三节点为序号值最小的节点。
一种可选的实施方式中,确定单元1102还用于将序号值最小的节点的路由位图的各个标志位分别与第一路由信息中对应的标志位进行比较之后,若序号值最小的节点的路由位图的各个标志位和第一路由信息中对应的标志位不存在相同标志位的取值为1,确定单元1102还用于将序号值最小的节点的路由位图的各个标志位更新为与序号值最小的节点连接的所有节点的路由位图中对应的标志位进行位或的结果,以及将第二跳数加1。
当更新后的序号值最小的节点的路由位图的标志位的取值至少存在一个取值为1,确定单元1102还用于执行将序号值最小的节点的路由位图的各个标志位分别与第一路由信息中对应的标志位进行比较的操作。
一种可选的实施方式中,确定单元1102还用于根据路由位图数组,确定第二路由信息,包括,确定单元1102还用于根据路由位图数组,确定第三集合,第三集合包括第一网络中与第二网络的节点连接的节点集合。第二路由信息包括1行M列。确定单元1102还用于将第二路由信息中与第三集合的每个节点的序号对应的标志位设置为1,其余标志位设置为0。
一种可选的实施方式中,确定单元1102还用于根据第二路由信息,确定第二指示信息,包括,确定单元1102还用于将第二路由信息和第一节点的序号进行位与操作,得到第三位与操作结果。若第三位与操作结果为非0值,确定单元1102还用于确定第二指示信息指示第一节点与第二网络的节点连接。或者,若第三位与操作结果为0值,确定单元1102还用于确定第二指示信息指示第一节点与第二网络的节点未连接。
一种可选的实施方式中,确定单元1102还用于根据第二路由信息和路由位图数组,所述当所述第二指示信息指示所述第一节点与所述第二网络中的节点未连接时,确定第五节点,包括:
获取单元1101还用于获取第一集合中序号值最小的节点的路由位图。
确定单元1102还用于将序号值最小的节点的路由位图中与序号值最小的节点的序号相同的标志位的值设置为0。
确定单元1102还用于将第二路由信息和序号值最小的节点的序号进行位与操作,得到第四位与操作结果。
若第四位与操作结果为非0值,确定单元1102还用于确定第三集合中存在至少一个节点与序号值最小的节点相连接,确定序号值最小的节点的跳数为第二跳数。
若第四位与操作结果为0值,确定单元1102还用于将序号值最小的节点的路由位图的各个标志位分别与第二路由信息中对应的标志位进行比较,
若存在至少一个标志位的取值相同且取值为1,确定单元1102还用于确定序号值最小的节点的跳数为第二跳数。
当第二跳数小于第二跳数值时,确定单元1102还用于将第二跳数值更新为第二跳数,并且确定第五节点为序号值最小的节点。
一种可选的实施方式中,确定单元1102还用于将序号值最小的节点的路由位图的各个标志位分别与第二路由信息中对应的标志位进行比较之后,若序号值最小的节点的路由位图的各个标志位和第二路由信息对应的标志位不存在相同标志位的取值为1,确定单元1102还用于将序号值最小的节点的路由位图的各个标志位更新为与序号值最小的节点连接的所有节点的路由位图中对应的标志位进行位或的结果,以及将第二跳数加1。
当更新后的序号值最小的节点的路由位图的标志位的取值至少存在一个取值为1,确定单元1102还用于执行将序号值最小的节点的路由位图的各个标志位分别与第二路由信息中对应的标志位进行比较的操作。
可以理解的是,本申请实施例提供的路由选择装置中各个单元的具体实现以及可以达到的有益效果可参考前述路由选择方法中任一实施例的描述,此处不再进行赘述。
请参见图12,图12是本申请实施例提供的一种通信设备的示意图。该设备包括处理器1201、收发器1203和存储器1202。处理器1201和存储器1202通过一条或多条通信总线连接。
处理器1201可以是中央确定单元(Central Processing Unit,CPU),该处理器1201还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器,可选的,该处理器1201也可以是任何常规的处理器等。
存储器1202用于存储命令或计算机程序,存储器1202包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器1202用于存储所执行的程序代码和所传输的数据,并向处理器1201提供命令和数据。存储器1202的一部分还可以包括非易失性随机存取存储器。
其中,收发器1203用于发送数据或接收数据。
处理器1201可用于执行存储器1202所存储的计算机程序或命令,该处理器可执行上述方法实施例所描述的步骤。
本申请实施例还提供了一种芯片,该芯片包括处理器,其中,该处理器执行上述方法实施例所描述的步骤。可选的,该芯片还可以包括处理器、存储器及存储在该存储器上的计算机程序或指令,其中,该处理器执行该计算机程序或指令以实现上述方法实施例所描述的步骤。
本申请实施例还提供了一种芯片模组,包括收发组件和芯片,该芯片包括处理器,其中,该处理器执行上述方法实施例所描述的步骤。可选的,该芯片还可以包括存储器以及存储在存储器上的计算机程序或指令,该处理器执行该计算机程序或指令以实现上述方法实施例所描述的步骤。
本申请实施例还提供了一种计算机可读存储介质,其存储有计算机程序或指令,该计算机程序或指令被执行时实现上述方法实施例所描述的步骤。
本申请实施例还提供了一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被执行时实现上述方法实施例所描述的步骤。
本申请实施例所描述的方法或者算法的步骤可以以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-onlymemory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(applicationspecific integrated circuit,ASIC)中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriberline,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disk,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。
Claims (16)
1.一种路由选择方法,其特征在于,所述方法包括:
当第一网络中的第一节点向第二节点发送数据时,获取所述第二节点的地址;
当所述第二节点的地址为所述第一网络中的地址时,根据路由位图数组,确定第一路由信息,所述第一路由信息用于指示第一网络中与所述第二节点连接的节点;
所述路由位图数组包括所述第一网络中的多个节点之间的连接关系;
根据所述第一路由信息,确定第一指示信息;
当所述第一指示信息指示所述第一节点与所述第二节点未连接时,根据所述路由位图数组和所述第一路由信息,确定第三节点,所述第三节点与第四节点之间的跳数最少,
其中,所述第三节点属于第一集合,所述第一集合为所述第一节点的下一跳节点集合,所述第四节点为所述第一路由信息中指示的节点。
2.根据权利要求1所述的方法,其特征在于,获取所述第二节点的地址之后,所述方法还包括:
当所述第二节点的地址为第二网络中的地址时,根据所述路由位图数组,确定第二路由信息,所述第二路由信息用于指示所述第一网络中与所述第二网络中的节点连接的节点;
所述路由位图数组还包括所述第一网络中的一个或多个节点与所述第二网络中的节点的连接关系;
根据所述第二路由信息,确定第二指示信息,
当所述第二指示信息指示所述第一节点与所述第二网络中的节点未连接时,根据所述第二路由信息和所述路由位图数组,确定第五节点,所述第五节点与第六节点之间的跳数最少,
所述第五节点属于所述第一集合,所述第六节点为所述第二路由信息中指示的节点。
3.根据权利要求2所述的方法,其特征在于,
所述第一网络包括M个网络节点,
所述路由位图数组包括M行M列;
所述路由位图数组的第m行表示所述第一网络中的一个节点的路由位图,所述m大于或等于1,且小于或等于M;
所述第m行中与该节点的序号相同的标志位用于指示该节点与第二网络中的任意一个节点的连接关系,
所述第m行中与该节点的序号不同的标志位用于指示该节点与所述不同的标志位对应的节点之间的连接关系;
所述第m行中的标志位的取值为0或1。
4.根据权利要求3所述的方法,其特征在于,所述根据路由位图数组,确定第一路由信息,包括:
根据所述路由位图数组,确定第二集合,所述第二集合包括所述第二节点的路由位图中与所述第二节点序号不同且标志位为1的节点;
所述第一路由信息包括1行M列;
将所述第一路由信息中与所述第二集合的每个节点的序号对应的标志位设置为1,其余标志位设置为0。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一路由信息,确定第一指示信息,包括:
将所述第一路由信息和所述第一节点的序号进行位与操作,得到第一位与操作结果;
若所述第一位与操作结果为非0值,确定所述第一指示信息用于指示所述第一节点与所述第二节点连接;或者,
若所述第一位与操作结果为0值,确定所述第一指示信息用于指示所述第一节点与所述第二节点未连接。
6.根据权利要求5所述的方法,其特征在于,所述当所述第一指示信息指示所述第一节点与所述第二节点未连接时,根据所述路由位图数组和所述第一路由信息,确定第三节点,包括:
获取所述第一集合中序号值最小的节点的路由位图;
将所述序号值最小的节点的路由位图中与所述序号值最小的节点的序号相同的标志位的值设置为0;
将所述第一路由信息和所述序号值最小的节点的序号进行位与操作,得到第二位与操作结果;
若所述第二位与操作结果为非0值,确定所述序号值最小的节点与所述第二节点连接,并且确定所述序号值最小的节点对应的跳数为第一跳数;
若所述第二位与操作结果为0值,将所述序号值最小的节点的路由位图的各个标志位分别与所述第一路由信息中对应的标志位进行比较,
若存在至少一个标志位的取值相同且取值为1,确定所述序号值最小的节点的跳数为所述第一跳数;
当所述第一跳数小于第一跳数值时,将所述第一跳数值更新为所述第一跳数,并且确定所述第三节点为所述序号值最小的节点。
7.根据权利要求6所述的方法,其特征在于,所述将所述序号值最小的节点的路由位图的各个标志位分别与所述第一路由信息中对应的标志位进行比较之后,所述方法还包括:
若所述序号值最小的节点的路由位图的各个标志位和所述第一路由信息中对应的标志位不存在相同标志位的取值为1,将所述序号值最小的节点的路由位图的各个标志位更新为与所述序号值最小的节点连接的所有节点的路由位图中对应的标志位进行位或的结果,以及将所述第一跳数加1;
当更新后的所述序号值最小的节点的路由位图的标志位的取值至少存在一个取值为1,执行将所述序号值最小的节点的路由位图的各个标志位分别与所述第一路由信息中对应的标志位进行比较的操作。
8.根据权利要求3所述的方法,其特征在于,所述根据路由位图数组,确定第二路由信息,包括:
根据所述路由位图数组,确定第三集合,所述第三集合包括所述第一网络中与所述第二网络的节点连接的节点集合;
所述第二路由信息包括1行M列;
将所述第二路由信息中与所述第三集合的每个节点的序号对应的标志位设置为1,其余标志位设置为0。
9.根据权利要求8所述的方法,其特征在于,所述根据所述第二路由信息,确定第二指示信息,包括:
将所述第二路由信息和所述第一节点的序号进行位与操作,得到第三位与操作结果;
若所述第三位与操作结果为非0值,确定所述第二指示信息指示所述第一节点与所述第二网络的节点连接;或者,
若所述第三位与操作结果为0值,确定所述第二指示信息指示所述第一节点与所述第二网络的节点未连接。
10.根据权利要求9所述的方法,其特征在于,所述当所述第二指示信息指示所述第一节点与所述第二网络中的节点未连接时,根据所述第二路由信息和所述路由位图数组,确定所述第五节点,包括:
获取所述第一集合中序号值最小的节点的路由位图;
将所述序号值最小的节点的路由位图中与所述序号值最小的节点的序号相同的标志位的值设置为0;
根据所述第二路由信息和所述序号值最小的节点的序号进行位与操作,得到第四位与操作结果;
若所述第四位与操作结果为非0值,所述第三集合中存在至少一个节点与所述序号值最小的节点相连接,确定所述序号值最小的节点的跳数为第二跳数;
若所述第四位与操作结果为0值,将所述序号值最小的节点的路由位图的各个标志位分别与所述第二路由信息中对应的标志位进行比较,
若存在至少一个标志位的取值相同且取值为1,确定所述序号值最小的节点的跳数为所述第二跳数;
当所述第二跳数小于第二跳数值时,将所述第二跳数值更新为所述第二跳数,并且确定所述第五节点为所述序号值最小的节点。
11.根据权利要求10所述方法,其特征在于,所述将所述序号值最小的节点的路由位图的各个标志位分别与所述第二路由信息中对应的标志位进行比较之后,所述方法还包括:
若所述序号值最小的节点的路由位图的各个标志位和所述第二路由信息对应的标志位不存在相同标志位的取值为1,将所述序号值最小的节点的路由位图的各个标志位更新为与所述序号值最小的节点连接的所有节点的路由位图中对应的标志位进行位或的结果,以及将所述第二跳数加1;
当更新后的所述序号值最小的节点的路由位图的标志位的取值至少存在一个取值为1,执行将所述序号值最小的节点的路由位图的各个标志位分别与所述第二路由信息中对应的标志位进行比较的操作。
12.一种路由选择装置,其特征在于,包括:
获取单元,用于当第一网络中的第一节点向第二节点发送数据时,获取所述第二节点的地址;
确定单元,用于当所述第二节点的地址为所述第一网络中的地址时,根据路由位图数组,确定第一路由信息;
所述确定单元还用于根据所述第一路由信息,确定第一指示信息;
所述确定单元还用于当所述第一指示信息指示所述第一节点与所述第二节点未连接时,根据所述路由位图数组和所述第一路由信息,确定第三节点;
其中,所述第一路由信息用于指示第一网络中与所述第二节点连接的节点;
所述路由位图数组包括所述第一网络中多个节点之间的连接关系;
所述第三节点与第四节点之间的跳数最少,所述第三节点属于第一集合,所述第一集合为所述第一节点的下一跳节点集合,所述第四节点为所述第一路由信息中指示的节点。
13.一种通信设备,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至11任一项所述的路由选择方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使所述处理器执行如权利要求1至11任一项所述的路由选择方法。
15.一种芯片,其特征在于,所述芯片包括处理器,所述处理器执行如权利要求1至11任一项所述的路由选择方法。
16.一种芯片模组,其特征在于,所述芯片模组包括收发组件和芯片,所述芯片包括处理器,所述处理器执行如权利要求1至11任一项所述的路由选择方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211097571.2A CN115529266B (zh) | 2022-09-08 | 2022-09-08 | 一种路由选择方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211097571.2A CN115529266B (zh) | 2022-09-08 | 2022-09-08 | 一种路由选择方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115529266A CN115529266A (zh) | 2022-12-27 |
CN115529266B true CN115529266B (zh) | 2023-09-05 |
Family
ID=84698143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211097571.2A Active CN115529266B (zh) | 2022-09-08 | 2022-09-08 | 一种路由选择方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115529266B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117135107B (zh) * | 2023-10-25 | 2024-02-13 | 苏州元脑智能科技有限公司 | 一种网络通信拓扑***、路由方法、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859297A (zh) * | 2005-12-23 | 2006-11-08 | 华为技术有限公司 | 一种路由管理***和方法 |
WO2017020619A1 (zh) * | 2015-08-04 | 2017-02-09 | 中兴通讯股份有限公司 | 一种路由的方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9749410B2 (en) * | 2014-11-18 | 2017-08-29 | Cisco Technology, Inc. | Using bit index explicit replication (BIER) in low-power and lossy networks |
US10833991B2 (en) * | 2018-09-26 | 2020-11-10 | Itron, Inc. | Partial source routing for cross-network routing |
-
2022
- 2022-09-08 CN CN202211097571.2A patent/CN115529266B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859297A (zh) * | 2005-12-23 | 2006-11-08 | 华为技术有限公司 | 一种路由管理***和方法 |
WO2017020619A1 (zh) * | 2015-08-04 | 2017-02-09 | 中兴通讯股份有限公司 | 一种路由的方法及装置 |
Non-Patent Citations (1)
Title |
---|
Extensible processor speeds up IP lookup;Pradeep Kumar Gautam etc;2012 18th IEEE International Conference on Networks (ICON);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115529266A (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715634B2 (en) | System and method for creating virtual interfaces based on network characteristics | |
KR101774951B1 (ko) | 분산형 라우팅 테이블 탐색 기술 | |
US11611530B2 (en) | Address generation for networks | |
KR20160099473A (ko) | 모듈식 포워딩 테이블 확장성을 위한 기술 | |
JP2005065267A (ja) | 発信元ノードから宛先ノードまでの経路を探索する方法 | |
TWI793361B (zh) | 用於藍芽網路之獨立冗餘路徑探索 | |
US9379979B2 (en) | Method and apparatus for establishing a virtual interface for a set of mutual-listener devices | |
EP3338416B1 (en) | Reducing flooding of link state changes in networks | |
US11445428B2 (en) | Method and device for setting up route path | |
CN115529266B (zh) | 一种路由选择方法、装置及设备 | |
KR101754618B1 (ko) | 소프트웨어 정의 네트워크 기반의 가상 네트워크 동적 생성 방법 및 그 장치 | |
CN111935780B (zh) | 一种无线网格网络中流量负载分担的方法、网络*** | |
CN106878182B (zh) | 一种数据传输方法及设备 | |
US20220212099A1 (en) | Selecting a connection in a network | |
US20150312136A1 (en) | Centrally optimized variable length coding for source routed multicast | |
CN107241236B (zh) | 转发信息库表项检测方法、检测设备及网络设备 | |
CN113824814B (zh) | 一种转发表的地址匹配方法、装置、网络设备及介质 | |
US20150207737A1 (en) | Maintaining routing information in memory constrained routers | |
CN111193667B (zh) | 自组网的路由方法、叶节点及存储介质 | |
Hickman et al. | A variable length address assignment scheme for 6LoWPAN | |
CN114389989B (zh) | 多级下一跳路由处理方法及装置 | |
CN114978995B (zh) | 一种报文转发路径选择方法及装置 | |
CN115001883B (zh) | 一种报文处理方法及位转发路由器 | |
CN113411257B (zh) | 传输报文的方法、装置、计算设备和存储介质 | |
CN114465944A (zh) | 一种节点信息的更新方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |