一种路由选择方法和装置与流程

文档序号:15686069发布日期:2018-10-16 21:04阅读:131来源:国知局

本申请涉及通信领域,尤其涉及一种路由选择方法和装置。



背景技术:

无线mesh网络又称无线网状网或无线网格网,它融合了无线局域网(wirelesslocalareanetwork,wlan)技术和adhoc网络的优势,是一种大容量、高速率、覆盖范围广的网络。无线mesh网是低功率的多级跳点(multihop)系统,它们处理消息的方式是把信息包从一个节点传递到另一个节点,直到信息包到达目的地。每个无线mesh网络的节点可以作为接入终端,也可具有路由和信息转发功能,具有极高的组网自由度。

无线mesh网络可提供从源节点到目标节点多条冗余路由。如果一条路由上的节点由于硬件故障或干扰而停止工作,网状网会自动改变信息包的路由,使它们穿过一条替代路由。现有技术中可通过最短路径优先协议(openshortestpathfirst,ospf)进行源节点到目标节点的路由的选择。举个例子,源节点到目标节点有5条路由,从该5条路由中选择出最短路径的路由作为目标路由,并使源节点和目标节点通过目标路由进行通讯。

在上述方案中,仅仅考虑到了路由的长短,但是在实际通讯过程中,路由中的节点会经常出现故障,可见,将路径最短作为选择目标路由的唯一因素并不能提高通讯的可靠性。



技术实现要素:

本申请实施例提供一种路由选择方法和装置,用以结合路由抵抗故障的能力选择目标路由,从而提高通讯的可靠性。

第一方面,本申请实施例提供一种路由选择方法,包括获取源节点到目标节点的至少两条路由,并获取至少两条路由中的中间节点的微结构计数nmc分值;其中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的;其中,该中间节点为该中间节点构建的多边形的顶点;根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由。

本申请实施例中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的,且该中间节点为该中间节点构建的多边形的顶点,也就是说,一个中间节点的nmc分值可以反映出该中间节点参与构建的多边形的数量,由于多边形是封闭的,且该中间节点为该多边形的顶点,因此该中间节点构建多边形的数量可以反映出该中间节点的链路出现故障后该中间节点的故障修复能力,又由于本申请实施例中根据至少两条路由中的中间节点的nmc分值从源节点到目标节点的至少两条路由中选择目标路由,也就是说,本申请实施例中是基于中间节点的故障修复能力选择的目标路由,因此本申请实施例所提供的方案可提高目标路由抵抗故障的能力,从而提高通讯的可靠性。

可选地,至少两条路由中第一路由和第二路由等价;其中,第一路由和第二路由为至少两条路由中的任两条路由;第一路由和第二路由满足以下内容中的任一项:第一路由包括的节点间的跳数与第二路由包括的节点间的跳数相同;第一路由的传输时延与第二路由包括的传输时延相同;第一路由包括的链路的权重的和与第二路由包括的链路的权重的和相同;第一路由包括的中间节点的权重的和与第二路由包括的中间节点的权重的和相同;第一路由包括的链路的权重和中间节点的权重的和与第二路由包括的链路的权重和中间节点的权重的和相同。通过上述论述可见,本申请实施例中选择出的目标路由是考虑了路由上各个中间节点的路由修复能力的,因此可提高路由的可靠性。进一步,针对两条等价的路由,本申请实施例中可以更加显出优势,本申请实施例中可以确定出两条等价的路由中那条路由的故障修复能力更高。

可选地,中间节点的nmc分值是:根据该中间节点构建的m类多边形的数量得到的;其中,m为大于等于1的整数,且若m大于等于2时,m类多边形中任两类多边形的边数不同。如此,可以根据实际情况以及具体的应用场景合理设置m类多边形,从而使nmc分值更加准确的反映该中间节点的故障修复能力。

可选地,中间节点的nmc分值是:将根据m类多边形中每类多边形对应的权重,将该中间节点构建的m类多边形中的每类多边形的数量进行加权计算得到的;其中,该中间节点的nmc分值用于指示:该中间节点的故障修复能力。如此,m类多边形中每类多边形对应的权重可以根据实际情况设定,比如每类多边形的权重都相同,都为1;或者由于边数越多的多边形可能修复后的路由时延较大,因此边数越多的多边形的权重可能越小等等,从而使nmc分值在该中间节点的故障修复能力以及修复后路由的时延之间进行平衡。

可选地,根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由,包括:根据至少两条路由中的中间节点的nmc分值,确定出至少两条路由中路由的nmc分值;其中,该路由的nmc分值用于指示该路由的故障修复能力;根据至少两条路由中路由的nmc分值,将指示的故障修复能力最强的路由的nmc分值对应的路由确定为目标路由。

可选地,根据至少两条路由中的中间节点的nmc分值,确定出至少两条路由中路由的nmc分值,包括以下任一种方式:将至少两条路由中路由中指示的故障修复能力最弱的中间节点的nmc分值确定为路由的nmc分值;将至少两条路由中路由中的中间节点nmc分值进行数学计算,并将数学计算的结果确定为路由的nmc分值。

可选地,,获取至少两条路由中的中间节点的nmc分值,包括:通过洪泛或周期性信息交换机制获取至少两条路由中每条路由中的每个中间节点上报的nmc分值。可选地,获取中间节点的nmc分值可通过接收至少两条路由中每条路由中的每个中间节点上报的nmc分值,也可通过直接计算的方式计算至少两条路由中每条路由中的每个中间节点的nmc分值。

可选地,获取源节点到目标节点的至少两条路由,并获取至少两条路由中的中间节点的nmc分值,包括:广播路由请求;其中,路由请求中包括目标节点的标识;接收目标节点返回的路由请求对应的路由响应;其中,路由响应中包括:源节点到目标节点的至少两条路由,以及至少两条路由中的中间节点的nmc分值。可选地,为了兼容现有技术,该方案可由设置于源节点上的路由选择装置执行。

第二方面,本申请实施例提供一种路由选择方法,包括:针对源节点到目标节点的至少两条路由中的中间节点,执行:根据该中间节点的网络拓扑信息确定该中间节点构建的多边形的数量;其中,该中间节点为该中间节点构建的多边形的顶点;据该中间节点构建的多边形的数量,确定该中间节点的微结构计数nmc分值;上报该中间节点的nmc分值;其中,至少两条路由中的中间节点的nmc分值用于:根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由。本申请实施例中是基于中间节点的故障修复能力选择的目标路由,因此本申请实施例所提供的方案可提高目标路由抵抗故障的能力,从而提高通讯的可靠性。

可选地,至少两条路由中第一路由和第二路由等价;其中,第一路由和第二路由为至少两条路由中的任两条路由;第一路由和第二路由满足以下内容中的任一项:第一路由包括的节点间的跳数与第二路由包括的节点间的跳数相同;第一路由的传输时延与第二路由包括的传输时延相同;第一路由包括的链路的权重的和与第二路由包括的链路的权重的和相同;第一路由包括的中间节点的权重的和与第二路由包括的中间节点的权重的和相同;第一路由包括的链路的权重和中间节点的权重的和与第二路由包括的链路的权重和中间节点的权重的和相同。通过上述论述可见,本申请实施例中选择出的目标路由是考虑了路由上各个中间节点的路由修复能力的,因此可提高路由的可靠性。进一步,针对两条等价的路由,本申请实施例中可以更加显出优势,本申请实施例中可以确定出两条等价的路由中那条路由的故障修复能力更高。

可选地,根据该中间节点的网络拓扑信息确定该中间节点构建的多边形的数量,包括:根据该中间节点的网络拓扑信息,确定该中间节点构建的m类多边形的数量;其中,m为大于等于1的整数,且若m大于等于2时,m类多边形中任两类多边形的边数不同;据该中间节点构建的多边形的数量,确定该中间节点的nmc分值,包括:根据该中间节点构建的m类多边形的数量,确定该中间节点的nmc分值。如此,可以根据实际情况以及具体的应用场景合理设置m类多边形,从而使nmc分值更加准确的反映该中间节点的故障修复能力。

可选地,根据该中间节点构建的m类多边形的数量,确定该中间节点的nmc分值包括:确定m类多边形中每类多边形对应的权重;根据m类多边形中每类多边形对应的权重,将该中间节点构建的m类多边形中的每类多边形的数量进行加权计算;将该中间节点构建的m类多边形中的每类多边形的数量加权计算后的结果确定为该中间节点的nmc分值。如此,m类多边形中每类多边形对应的权重可以根据实际情况设定,比如每类多边形的权重都相同,都为1;或者由于边数越多的多边形可能修复后的路由时延较大,因此边数越多的多边形的权重可能越小等等,从而使nmc分值在该中间节点的故障修复能力以及修复后路由的时延之间进行平衡。

可选地,获取至少两条路由中的中间节点的nmc分值,包括:通过洪泛或周期性信息交换机制获取至少两条路由中每条路由中的每个中间节点上报的nmc分值。可选地,获取中间节点的nmc分值可通过接收至少两条路由中每条路由中的每个中间节点上报的nmc分值,也可通过直接计算的方式计算至少两条路由中每条路由中的每个中间节点的nmc分值。

可选地,上报该中间节点的nmc分值,包括:接收路由请求;其中,路由请求中包括目标节点的标识;根据路由请求的标识在确定为首次接收到路由请求后,将中间节点的标识和nmc分值添加至路由请求的路由记录中,并转发增加了中间节点的标识和nmc分值的路由请求。可选地,为了兼容现有技术,该方案可由设置于中间节点上的路由选择装置执行。

第三方面,本申请实施例提供一种路由选择装置,路由选择装置包括存储器、收发器和处理器,其中:存储器用于存储程序指令;处理器用于根据执行存储器存储的程序指令,并控制收发器进行信号接收和信号发送,当处理器执行存储器存储的程序指令时,路由选择装置用于执行上述第一方面或第一方面中任一种方法。

第四方面,本申请实施例提供一种路由选择装置,路由选择装置包括存储器、收发器和处理器,其中:存储器用于存储程序指令;处理器用于根据执行存储器存储的程序指令,并控制收发器进行信号接收和信号发送,当处理器执行存储器存储的程序指令时,路由选择装置用于执行上述第二方面或第二方面中任一种方法。

第五方面,本申请实施例提供一种路由选择装置,用于实现上述第一方面或第一方面中的任意一种方法,包括相应的功能模块,分别用于实现以上方法中的步骤。

第六方面,本申请实施例提供一种路由选择装置,用于实现上述第二方面或第二方面中的任意一种的方法,包括相应的功能模块,分别用于实现以上方法中的步骤。

第七方面,本申请实施例提供一种计算机存储介质,计算机存储介质中存储有程序指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。

第八方面,本申请实施例提供一种计算机存储介质,计算机存储介质中存储有程序指令,当其在计算机上运行时,使得计算机执行第二方面或第二方面的任意可能的实现方式中的方法。

第九方面,本申请实施例提供一种包含程序指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。

第十方面,本申请实施例提供一种包含程序指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第二方面或第二方面的任意可能的实现方式中的方法。

本申请实施例中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的,且该中间节点为该中间节点构建的多边形的顶点,也就是说,一个中间节点的nmc分值可以反映出该中间节点参与构建的多边形的数量,由于多边形是封闭的,且该中间节点为该多边形的顶点,因此该中间节点构建多边形的数量可以反映出该中间节点的链路出现故障后该中间节点的故障修复能力,又由于本申请实施例中根据至少两条路由中的中间节点的nmc分值从源节点到目标节点的至少两条路由中选择目标路由,也就是说,本申请实施例中是基于中间节点的故障修复能力选择的目标路由,因此本申请实施例所提供的方案可提高目标路由抵抗故障的能力,从而提高通讯的可靠性。

附图说明

图1为本申请实施例适用的一种通信系统架构示意图;

图1a为本申请实施例适用的另一种通信系统架构示意图;

图2为本申请实施例提供的一种路由选择方法流程示意图;

图2a为本申请实施例提供的一种路由修复过程中路径膨胀的两次相变的示意图;

图2b为本申请实施例提供的一种路由的系统架构示意图;

图2c为图2b中中间节点122所构建的三边形的结构示意图;

图2d为图2b中中间节点122所构建的四边形的结构示意图;

图2e为本申请实施例提供一种用于使第一路由选择装置获取每个中间节点的nmc分值的方法流程示意图;

图3为本申请实施例提供的一种路由选择装置的结构示意图;

图4为本申请实施例提供的一种路由选择装置的结构示意图;

图5为本申请实施例提供的一种路由选择装置的结构示意图;

图6为本申请实施例提供的一种路由选择装置的结构示意图。

具体实施方式

本申请实施例适用于有线或无线网络中,比如融合了wlan和adhoc网络的优势的无线mesh网络。无线mesh网是低功率的多级跳点系统,它们处理消息的方式是把信息包从一个节点传递到另一个节点,直到信息包到达目的地。每个无线mesh网络的节点可以作为接入终端,也可具有路由和信息转发功能,具有极高的组网自由度。本申请实施例中的源节点、目标节点和中间节点均为本申请实施例适用的网络中的节点,源节点、目标节点和中间节点中的每个节点均具有路由和信息转发功能。

本申请实施例中将数据传输的两方分别称为源节点和目标节点,将源节点和目标节点之间的路由经过的节点称为中间节点。本申请实施例中的方案提供源节点和目标节点之间的路由选择方案,源节点可以通过选择出的路由向目标节点发送数据,相应地,目标节点也可通过选择出的路由向源节点发送数据。需要注意的是,本申请实施例中所定义的源节点和目标节点在其它数据传输方案中也可能成为中间节点,而中间节点也可能在其它数据传输方案中成为源节点或目标节点。

图1示例性示出了本申请实施例适用的一种通信系统架构示意图,如图1所示,源节点101和目标节点102通过一条路由连接,该路由上包括中间节点111、中间节点112和中间节点113。本申请实施例中所提供的路由选择装置可以包括两部分,可分别称为第一路由选择装置和第二路由选择装置,第一路由选择装置用于根据路由的各个中间节点的微结构计数(nodemotifcount,nmc)分值选择目标路由,第二路由选择装置可用于计算各个中间节点的nmc分值,并将计算出的nmc分值上报给第一路由选择装置。

基于图1所示的系统架构,一种可选地的部署方案为,将第一路由选择装置部署于源节点101上,将第二路由选择装置部署在每个中间节点上。另一种可选地部署方案为,将第一路由选择装置部署于目标节点102上,将第二路由选择装置部署在每个中间节点上。可选地,在源节点、目标节点和中间节点中的每个节点上均部署第一路由选择装置和第二路由选择装置,在路由选择的由源节点101和目标节点102上的第一路由选择装置执行,在计算各个中间节点的nmc分值时由各个中间节点上的第二路由选择装置执行。

图1a示例性示出了本申请实施例适用的另一种通信系统架构示意图,如图1a所示,源节点101和目标节点102通过一条路由连接,该路由上包括中间节点111、中间节点112和中间节点113。源节点101、目标节点102以及各个中间节点均与路由选择装置141连接,路由选择装置141计算出各个中间节点的nmc分值,之后根据nmc分值选择出目标路由,并将目标路由下发给源节点101和目标节点102。

本申请实施例所提供的方案由路由选择装置执行,路由选择装置可以为图1a所示的路由选择装置141,也可以为包括图1中的第一路由选择装置和第二路由选择装置的装置。以下内容中以第一路由选择装置和第二路由选择装置分开进行描述,但是以下任一个方法步骤均可由第一路由选择装置和第二路由选择装置中的任一个装置执行,第一路由选择装置和第二路由选择装置可以分别部署在不同节点或不同的装置上,也可以集成在一个装置上,比如第一路由选择装置和第二路由选择装置集成在图1a所示的路由选择装置141上。

图1和图1a所示的源节点101和目标节点102之间仅画了一条路由,但在实际应用中,源节点101和目标节点102会存在多条冗余路由。如果一条路由由于硬件故障或干扰而停止工作,网络会自动改变信息包的路由,使它们穿过一条替代路径。本申请实施例提供一种方案用于从源节点和目标节点的多条冗余路由中选择出一条可靠性较高,抵抗故障能力较强的路由。

图2示例性示出了本申请实施例提供的一种路由选择方法流程示意图。

基于图1和图1a所示的系统架构,本申请实施例提供的可有路由选择装置实现的一种路由选择方法。如图2所示,该方法包括:

步骤201,路由选择装置获取源节点到目标节点的至少两条路由,并获取至少两条路由中的中间节点的nmc分值;其中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的;其中,该中间节点为该中间节点构建的多边形的顶点;

步骤202,路由选择装置根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由。

可选地,上述步骤201和步骤202中的路由选择装置可为上述图1a中的路由选择装置141,也可为上述内容中的第一路由选择装置和第二路由选择装置。

可选地,本申请实施例若适用上述图1a所示通信系统架构,则路由选择装置针对源节点到目标节点的至少两条路由中的中间节点,根据该中间节点的网络拓扑信息确定该中间节点构建的多边形的数量;根据据该中间节点构建的多边形的数量,确定该中间节点的nmc分值;根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由。

若路由选择装置包括第一路由选择装置和第二路由选择装置,则上述方法中可选地,第二路由选择装置针对源节点到目标节点的至少两条路由中的中间节点,根据该中间节点的网络拓扑信息确定该中间节点构建的多边形的数量;根据据该中间节点构建的多边形的数量,确定该中间节点的nmc分值;上报该中间节点的nmc分值;其中,该中间节点为该中间节点构建的多边形的顶点;至少两条路由中的中间节点的nmc分值用于:根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由。

相对应地,第一路由选择装置获取源节点到目标节点的至少两条路由,并获取至少两条路由中的中间节点的nmc分值;其中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的;其中,该中间节点为该中间节点构建的多边形的顶点;第一路由选择装置根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由。可选地,上述任一个方法步骤可由第一路由选择装置或第二路由选择装置执行,上述仅仅示例性示出了一种第一路由选择装置和第二路由选择装置的分工方案。

本申请实施例中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的,且该中间节点为该中间节点构建的多边形的顶点,也就是说,一个中间节点的nmc分值可以反映出该中间节点参与构建的多边形的数量,由于多边形是封闭的,且该中间节点为该多边形的顶点,因此该中间节点构建多边形的数量可以反映出该中间节点的链路出现故障后该中间节点的故障修复能力,又由于本申请实施例中根据至少两条路由中的中间节点的nmc分值从源节点到目标节点的至少两条路由中选择目标路由,也就是说,本申请实施例中是基于中间节点的故障修复能力选择的目标路由,因此本申请实施例所提供的方案可提高目标路由抵抗故障的能力,从而提高通讯的可靠性。

本申请实施例中所定义的多边形可包括边数大于两条边的封闭图形,比如三边形、四边形、五边形以及六边形等等。本申请实施例中节点(比如中间节点)参与构建的多边形中,将两个通过无线或有线连接的节点之间的链路称为多边形中的一个边,将各个节点称为多边形中的顶点。

基于仿真和数学推导,在不同类型、规模的网络拓扑中,在路由修复(reroute)的过程中路径膨胀会存在两次相变过程,所谓路由修复(reroute)路径膨胀,具体是指给定一个路由,如果任意段路由中断,以最短路径修复断点,该路由路径长度膨胀的的数学期望(dnew-dold)。其中,dnew是指修复后的新路由的路径长度(或路由代价);dold是指修复前的旧路由的路径长度(或路由代价)。

图2a示例性示出了本申请实施例提供的一种路由修复过程中路径膨胀的两次相变的示意图,如图2a所示,不同拓扑类型下的曲线稍有不同,但都存在“穿透后迅速饱和”两次相变。随机网络中,这种现象可被数学证明。如图2a所示,横轴“路由修复(reroute)路径膨胀跳数”相对于纵轴“路由修复(reroute)成功累积概率”的关系图,可以清楚看到穿透后迅速饱和这样的两次相变。其物理解释与意义在于:在这样的网络中,如果出现断路,存在很大的可能,在给定很小的膨胀路由跳数的情况下,实现一个端到端路由的修复。相对地,如果小范围的兜路也无法修复断点,此时即使允许去一个更大范围内去找可能的修复路径,修复的概率也很低。基于此,可选地,本申请实施例可根据节点在小范围内构建的多边形的数量评价该节点故障后的修复能力。因此多边形的边数可不必过大,比如十五边形,相对应地,本申请实施例中的多边形比如为三边形或四边形即可满足要求,如此,一方面降低了中间节点计算nmc分值的复杂性,另一方面也提高了nmc分值计算的速率。第三方面,本申请实施例也考虑到尽量采取小范围内修复路由的方案,避免修复后的路由过度绕远所造成修复后路由时延过长的问题,即所选择的目标路由在路由修复能力和修复后路由的时延之间进行了综合考虑。

可选地,为了避免环路与广播风暴,本申请实施例中还提供一种方案,设置修复次数计数值,路由每修复一次,该修复次数计数值则加1,当修复次数计数值超过修复次数阈值后,即使再次遇到路由断路的情况下,也不再进行路由修复,此时路由中断。也就是说,本申请实施例中还包括修复次数计数值,针对目标路由中的每个中间节点,若该中间节点确定目标路由中该中间节点与下一跳中间节点之间的路由故障,且确定修复次数计数值不大于阈值时,执行一次路由修复,并将修复次数计数值加1。执行一次路由修复具体来说是该中间节点选择另外一条备选路径到达目标路由的下一跳中间节点。若该中间节点确定目标路由中该中间节点与下一跳中间节点之间的路由故障,且确定修复次数计数值大于阈值时,不执行路由修复。

可选地,可将修复次数计数值和路由附着在数据包的数据包头部分,沿路由路转发,并在需要修改时沿路修改。基于该技术可以实现路由转发的结合,实现在链路层面路由中断情况下,转发不中断,进而达到业务层面的路由不中断。

通过上述论述可见,本申请实施例中选择出的目标路由是考虑了路由上各个中间节点的路由修复能力的,因此可提高路由的可靠性。进一步,针对两条等价的路由,本申请实施例中可以更加显出优势,本申请实施例中可以确定出两条等价的路由中那条路由的故障修复能力更高。

可选地,至少两条路由中第一路由和第二路由等价;其中,第一路由和第二路由为至少两条路由中的任两条路由;第一路由和第二路由等价具体可指第一路由和第二路由满足预设的条件,该预设的条件可包括多种类型,比如以下第一种情况至第五种情况:

第一种情况,第一路由包括的节点间的跳数与第二路由包括的节点间的跳数相同。路由中包括的节点间的跳数具体是指该路由中数据需要在各个节点间跳的数量。某些情况下,路由中包括的节点间的跳数可能与路由中包括的中间节点的数量相同,比如路由包括三个中间节点,则该路由可能包括4跳,但是也可能包括5跳、6跳等等。某些情况下,第一路由和第二路由等价也可以是第一路由包括的中间节点的数量与第二路由包括的中间节点的数量相同。

第二种情况,第一路由的传输时延与第二路由包括的传输时延相同。第一路由的传输时延具体是指数据从源节点沿第一路由传输至目标节点所需要的时间;或者是指数据从目标节点沿第一路由传输至源节点所需要的时间。第二路由的传输时延具体是指数据从源节点沿第二路由传输至目标节点所需要的时间;或者是指数据从目标节点沿第二路由传输至源节点所需要的时间。在该种情况下,第一路由中包括的节点间的跳数可能与第二路由包括的节点间的跳数不相同或相同。

提供一种可选地用于计算路由的传输时延的方案,每个路由器维护一个距离向量(通常是以时延是作变量的)表,然后通过相邻节点之间的距离向量通告进行距离向量表的更新,比如可通过周期性或者事件触发的形式在节点间通告一些信息,比如本节点与邻节点之间的时延、链路状态信息等等。距离向量表中可以包括节点之间的时延,可基于距离向量表计算出一条路由的时延。

第三种情况,第一路由包括的链路的权重的和与第二路由包括的链路的权重的和相同。第一路由和第二路由中的每个路由所包括的链路具体是指第一路由上任两个节点之间的链路,每个链路会对应一个权重。链路对应的权重可能与延迟、最大带宽、延迟抖动、单位带宽价格等等因素有关。

第四种情况,第一路由包括的中间节点的权重的和与第二路由包括的中间节点的权重的和相同。第一路由和第二路由中的每个路由所包括的每个中间节点对应一个权重。中间节点对应的权重可能与该中间节点的最大处理能力、当前负载水平等等因素有关。中间节点可以为路由器。

第五种情况,第一路由包括的链路的权重和中间节点的权重的和与第二路由包括的链路的权重和中间节点的权重的和相同。

图2b示例性示出本申请实施例提供的一种路由的系统架构示意图,如图2b所示,源节点101和目标节点102之间包括多条冗余路由,比如:

路由a:源节点101、中间节点111、中间节点112、中间节点113和目标节点102;

路由b:源节点101、中间节点121、中间节点122、中间节点123和目标节点102;

路由c:源节点101、中间节点131、中间节点132和目标节点102。

从图2b可以看出,源节点101和目标节点102之间还包括其它路由,比如路由d包括:源节点101、中间节点121、中间节点151、中间节点122、中间节点123和目标节点102;再比如路由e包括:源节点101、中间节点包括中间节点121、中间节点152、中间节点123和目标节点102。能连通源节点101与目标节点102的路由还包括其它,在此不再一一赘述。

如图2b所示,若本申请实施例中路由等价的预设条件为上述第二种情况,且若上述路由a和路由b的传输时延相同,且路由a和路由b的传输时延是源节点101和目标节点102之间的所有路由中传输时延最小的两条路由。则本申请实施例中一方面可以选择出传输时延最小的路由作为目标路由,另一方面也可以在传输时延最小的路由里面选择出一条修复能力较强的路由作为目标路由。

可选地,本申请实施例适用于多种网络,比如随机网络和幂率网络,其中wmn中的网络拓扑属于典型的随机网络,域间路由场景下的拓扑属于典型的幂率网络。

本申请实施例中可预定义一些用于计算nmc分值的多边形,并通知各个中间节点用于计算nmc分值的多边形具体是什么,可选地,可通过广播或者一一通知的方式通知。

本申请实施例中网络中的每个节点,包括中间节点、源节点和目标节点,每个节点计算nmc分值的方法是相同的,本申请实施例中以一个中间节点计算nmc分值的为例进行介绍。

首先根据网络拓扑信息确定中间节点所构建的多边形的数量,该中间节点为该中间节点构建的多边形的顶点。基于图2b进行介绍,以图2b中的中间节点122为例进行说明,图2c示例性示出了图2b中中间节点122所构建的三边形的结构示意图,图2d示例性示出了图2b中中间节点122所构建的四边形的结构示意图。

如图2c所示,中间节点122构建了四个三边形,分别为中间节点122、中间节点121和中间节点151组成的三边形;中间节点122、中间节点151和中间节点123组成的三边形;中间节点122、中间节点121和中间节点152组成的三边形;中间节点122、中间节点123和中间节点152组成的三边形。

如图2d所示,中间节点122构建了四个四边形,分别为中间节点122、中间节点152、中间节点121和中间节点151组成的四边形;中间节点122、中间节点152、中间节点123和中间节点151组成的四边形;中间节点122、中间节点121、中间节点151和中间节点123组成的四边形;中间节点122、中间节点121、中间节点152和中间节点123组成的四边形。本申请实施例中节点(比如中间节点)参与构建的多边形中,将两个通过无线或有线连接的节点之间的链路称为多边形中的一个边,将各个节点称为多边形中的顶点。

上述内容中计算了中间节点122所构建的三边形和四边形的数量,三边形为四个,四边形为四个。如图2b所示,中间节点121所构建的三边形和四边形分别为:中间节点121、中间节点151和中间节点122构成的三边形;中间节点121、中间节点152和中间节点122构成的三边形;中间节点121、中间节点152、中间节点122和中间节点151构成的四边形。可见中间节点121所构建的三边形为两个,四边形为一个。

在计算每个中间节点所构建的多边形的数量时,需要知道该中间节点周边n跳网络拓扑信息,n跳网络拓扑信息覆盖m类多边形即可。n为整数,n大于等于所定义的多边形中边数最多的一类多边形的边数的一半即可。比如m类多边形中边数最多的一类多边形为六边形,则n可为3,即该知道中间节点三跳范围内的网络拓扑即可。具体来说,获取中间节点的网络拓扑的方案由多种,比如通过广播获知,获知通过中间节点自己洪泛查询自己周边的n跳拓扑,并通知第二路由选择装置,若第二路由选择装置直接部署于中间节点上,则第二路由选择装置也可通过洪泛查询自己所部署的中间节点周边的n跳拓扑。

可选地,预定义的多边形可以包括m类多边形,m类多边形中的任两类多边形的边数不同。具体来说,m为一时,m类多边形仅包括一类边数相同的多边形,比如三边形;m为二时,m类多边形可包括两类边数不同的多边形,比如三边形和四边形。可选地,中间节点的nmc分值是:根据该中间节点构建的m类多边形的数量得到的;若m为大于等于1的整数,且若m大于等于2时,m类多边形中任两类多边形的边数不同。如此,可以根据实际情况以及具体的应用场景合理设置m类多边形,从而使nmc分值更加准确的反映该中间节点的故障修复能力。

一种可能的实施方案中,根据该中间节点的网络拓扑信息确定该中间节点构建的多边形的数量,包括:第二路由选择装置根据该中间节点的网络拓扑信息,确定该中间节点构建的m类多边形的数量;其中,m为大于等于1的整数,且若m大于等于2时,m类多边形中任两类多边形的边数不同;第二路由选择装置据该中间节点构建的多边形的数量,确定该中间节点的nmc分值,包括:根据该中间节点构建的m类多边形的数量,确定该中间节点的nmc分值。可选地,该实施方案也可由第一路由选择装置来实现。

中间节点的nmc分值由多种计算方案,比如直接将m类多边形的数量的和作为该中间节点的nmc分值,或者预设一些公式,比如通过公式(log(nmc三角形+nmc四边形))计算得到该中间节点的nmc分值,其中,nmc三角形为该中间节点所构建三边形的数量,nmc四边形为该中间节点所构建四边形的数量。

可选地,中间节点的nmc分值是:将根据m类多边形中每类多边形对应的权重,将该中间节点构建的m类多边形中的每类多边形的数量进行加权计算得到的;其中,该中间节点的nmc分值用于指示:该中间节点的故障修复能力。

一种可能的实施方案中,,根据该中间节点构建的m类多边形的数量,确定该中间节点的nmc分值包括:第二路由选择装置确定m类多边形中每类多边形对应的权重;第二路由选择装置根据m类多边形中每类多边形对应的权重,将该中间节点构建的m类多边形中的每类多边形的数量进行加权计算;第二路由选择装置将该中间节点构建的m类多边形中的每类多边形的数量加权计算后的结果确定为该中间节点的nmc分值。可选地,该实施方案也可由第一路由选择装置来实现。如此,m类多边形中每类多边形对应的权重可以根据实际情况设定,比如每类多边形的权重都相同,都为1;或者由于边数越多的多边形可能修复后的路由时延较大,因此边数越多的多边形的权重可能越小等等,从而使nmc分值在该中间节点的故障修复能力以及修复后路由的时延之间进行平衡。

上述方案中的加权计算具体是指根据预设的公式和m类多边形中每类多边形对应的权重对该中间节点构建的每类多边形的数量进行数学计算。加权计算种类较多,比如,将m类多边形中每类多边形对应的权重于该类多边形的数量相乘,将得到的m个乘积相加、相乘或相减,或者进行其它数学运算等等,所得的结果即为该中间节点的nmc分值。再比如,将m类多边形中每类多边形的数量分别取倒数之后求和,所得的结果即为该中间节点的nmc分值。再比如取m类多边形的数量的平均值,所得的结果即为该中间节点的nmc分值。再比如取m类多边形的数量中的最小值,将多边形的最小的数量作为该中间节点的nmc分值,该示例中可将除最小的数量对应的一类多边形之外的其它m-1类多边形的数量对应的权重设置为零,将最小的数量对应的一类多边形的数量的权重设置为1。

该路由的nmc分值用于指示该路由的故障修复能力,比如,中间节点的nmc分值是将该中间节点所构建的多边形的数量相加得到的,或者加权相加得到的,中间节点的nmc分值越高,该中间节点的故障修复能力越强;或者中间节点的nmc分值是将该中间节点所构建的多边形的数量的倒数相加得到的,中间节点的nmc分值越高,该中间节点的故障修复能力越弱。

可选地,根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由,包括:第一路由选择装置根据至少两条路由中的中间节点的nmc分值,确定出至少两条路由中路由的nmc分值;其中,该路由的nmc分值用于指示该路由的故障修复能力;第一路由选择装置根据至少两条路由中路由的nmc分值,将指示的故障修复能力最强的路由的nmc分值对应的路由确定为目标路由。可选地,该实施方案也可由第二路由选择装置来实现。

可选地,根据至少两条路由中的中间节点的nmc分值,确定出至少两条路由中路由的nmc分值,包括多种方式。比如以下内容中的方式一和方式二。

方式一,第一路由选择装置将至少两条路由中路由中指示的故障修复能力最弱的中间节点的nmc分值确定为路由的nmc分值。比如,若nmc分值越大,故障修复能力越强;若nmc分值越小,故障修复能力越弱。则将每条路由中最小的中间节点的nmc分值确定为路由的nmc分值。

基于方式一第一路由选择装置根据至少两条路由中路由的nmc分值,将指示的故障修复能力最强的路由的nmc分值对应的路由确定为目标路由。举个例子,两条路由上各中间节点的分值分别为(路由f:3、5、6、3、2、1),(路由g:2、2、2、3、2、2)。此时路由f上nmc分值最低为1,路由g上nmc分值最低为2,因此路由f的路由的nmc分值为1,路由g的路由的nmc分值为2,由于路由g的路由的nmc分值大于路由f的路由的nmc分值,又由于路由的nmc分值越大,指示该路由的故障修复能力越强,因此选择路由g作为目标路由。实验结果显示,这种等价路由选择策略可以使得“任意一个链路故障的情况下,大于98%端到端路由可恢复,代价小于2跳。

方式二,第一路由选择装置将至少两条路由中路由中的中间节点nmc分值进行数学计算,并将数学计算的结果确定为路由的nmc分值。

上述方式二中,比如计算每条路由的中间节点nmc分值的平均值,之后进行数学计算,并将该条路由上的中间节点nmc分值的平均值确定为路由的nmc分值。

基于方式二第一路由选择装置根据至少两条路由中路由的nmc分值,将指示的故障修复能力最强的路由的nmc分值对应的路由确定为目标路由。举个例子,两条路由上各中间节点的分值分别为(路由h:0.61、0.67、0.65、0.7、0.6、0.8),(路由i:0.65、0.67、0.7、0.8、0.65、0.65)。此时路由h上路由的nmc分值为各个中间节点的nmc分值的平均值,为0.6717,路由i上nmc分值为各个中间节点的nmc分值的平均值,为0.6867,由于路由i的路由的nmc分值大于路由h的路由的nmc分值,又由于路由的nmc分值越大,指示该路由的故障修复能力越强,因此选择路由i作为目标路由。实验结果显示,这种等价路由选择策略可以使得“任意一个链路故障的情况下,大于90%端到端路由可恢复,代价小于3跳。

上述方案中,若将第一路由选择装置部署在源节点,将第二路由选择装置部署在中间节点;或者将第一路由选择装置部署在如图1a所示的路由选择装置141中,则可选地获取至少两条路由中的中间节点的nmc分值,包括:第一路由选择装置通过洪泛或周期性信息交换机制获取至少两条路由中每条路由中的每个中间节点上报的nmc分值。也就是说,一种实施方案中,每个中间节点的nmc分值可由每个中间节点进行计算,之后上报给第一路由选择装置。或者每个中间节点的nmc分值也可由第一路由选择装置或者第二路由选择装置或者如图1a所示的路由选择装置141进行计算。

可选地,通过洪泛获取至少两条路由中每条路由中的每个中间节点上报的nmc分值。洪泛不要求维护网络的拓扑结构和相关的路由计算,仅要求接收到信息的节点以广播方式转发数据包。例如,源节点希望发送一段数据给目标节点。源节点首先通过网络将数据副本传送给它的每个邻居节点,每个邻居节点再将数据传送给各自的除发送数据来的节点之外的其他。如此继续下去,直到数据传送至目标节点或者数据设定的生存期限(timetolive,ttl)为0为止。可见,通过该方案可以获取每个中间节点的nmc分值。

可选地,通过周期性信息交换机制获取至少两条路由中每条路由中的每个中间节点上报的nmc分值。周期性信息交换机制比如可为中间节点周期性的广播自己的nmc分值等等。

为了与现有技术兼容,本申请实施例提供一种用于使第一路由选择装置获取每个中间节点的nmc分值的方案,可选地,第一路由选择装置部署于源节点,第二路由选择装置部署于中间节点,图2e示例性示出了本申请实施例提供一种用于使第一路由选择装置获取每个中间节点的nmc分值的方法流程示意图,如图2e所示,该方法包括:

步骤251,第一路由选择装置广播路由请求。其中,路由请求中包括目标节点的标识。

第一路由选择装置可部署于源节点,源节点可首先向其节点广播“路由请求(routerequest)”报文。报文中除包括目标节点的标识外,还可包括“路由记录”的字段、“路由请求的标识”的字段等等。其中“路由记录”字段用于记录从源节点到目标节点的路由所包括的中间节点的标识,中间节点的标识也可为中间节点的地址,能够唯一找到该中间节点即可。

步骤252,第二路由选择装置接收路由请求。其中,路由请求中包括目标节点的标识。可选地,第二路由选择装置部署在中间节点上。

步骤253,第二路由选择装置根据路由请求的标识在确定为首次接收到路由请求后,将中间节点的标识和nmc分值添加至路由请求的路由记录中,并转发增加了中间节点的标识和nmc分值的路由请求。具体来说,转发增加了中间节点的标识和nmc分值的路由请求,可通过广播的形式广播该增加了中间节点的标识和nmc分值的路由请求。

在步骤253中,可选地,第二路由选择装置在收到路由请求后,判断是否是首次收到路由请求有多种确定方式,比如一种方式为:中间节点维护一个序列对列表,该序列对列表中存储路由请求的<源节点标识,路由请求的标识>,接收到路由请求时,若路由请求的<源节点标识,路由请求的标识>不存在于本中间节点的序列对列表中,则表明是第一次收到该路由请求,将该路由请求<源节点标识,路由请求的标识>保存在本中间节点的序列对列表中;若路由请求的<源节点标识,路由请求的标识>存在于本中间节点的序列对列表中,则表明此路由请求之前已经收到过,此次不处理。

另外一种可选地判断是否是首次收到路由请求的方案为,判断路由请求中的“路由记录”字段中是否包括该中间节点的标识,如果不包括,则确定为首次收到,并将中间节点的标识和nmc分值添加至路由请求的路由记录的字段中;如果包括,则表明此路由请求之前已经收到过,此次不处理。

步骤254,目标节点接收到该路由请求,并向源节点返回路由响应。路由响应中包括:源节点到目标节点的至少两条路由,以及至少两条路由中的中间节点的nmc分值。

具体来说,路由请求中的路由记录中的中间节点的标识的序列构成了路由,目标节点将该路由附加到路由响应中,并向源节点发送该路由,以及路由中每个中间节点的nmc分值。

具体来说,目标节点可收到多条路由请求,存在至少两条路由请求中包括的路由不同,可选地,目标节点至少将该两条路由附加在两个路由响应中或者附加在一个路由响应中返回给源节点。或者,目标节点针对接收到的每条路由请求均回复一个路由响应,其中,每个路由响应中包括该路由请求中包括的路由。

可选地,目标节点可以将路由记录中的中间节点的标识的序列进行反转,即为从目标节点通向源节点的路由,目标节点可沿该路由向源节点返回路由响应。也可能信道是非对称的,目标节点需要发起到源节点的路由请求过程,同时将路由响应报文捎带在新的路由请求中。

步骤255,第一路由选择装置接收目标节点返回的路由请求对应的路由响应;其中,路由响应中包括:源节点到目标节点的至少两条路由,以及至少两条路由中的中间节点的nmc分值。

可选地,第一路由选择装置部署于源节点上,第一路由选择装置接收到路由响应后,将路由响应中包括的中间节点的标识的序列进行反转,即得到了从源节点到目标节点的路由。源节点接收到至少两条路由后根据上述方案选择出目标路由,在此不再赘述。

本申请实施例中,选择目标路由时仅仅计算路由的nmc分值即可,计算方案简单,复杂度地,路由计算速度快;且各个节点,比如中间节点需要维护的状态信息少,比如可仅仅维护自身的nmc分值即可;第三方面,本申请实施例中各个节点间交互的信息较少,且各个节点与第一路由选择装置和第二路由选择装置之间交互的信息也少,减轻了网络负荷;第四方面,本申请实施例提供的方案所选择的目标路由抵抗故障的能力较强、自愈速度快且代价低。进一步,本申请实施例所提供的方案不仅仅适用于wmn网络,且对于大规模动态网络鲁棒路由问题都有效,但是不同网络中的微结构选择与选路公式可能会有不同,可结合具体场景离线分析后得到相关结论后再进行具体配置。

图3示例性示出了本申请提供的一种路由选择装置的结构示意图。

基于相同构思,本申请提供一种路由选择装置300,用于执行上述方法流程。路由选择装置300可以包括上述内容中的第一路由选择装置,或者包括上述内容中第一路由选择装置和第二路由选择装置,也可为上述内容中图1a中的路由选择装置141。也就是说路由选择装置300可以用于执行上述方法中的任一个方案,即可执行上述内容中第一路由选择装置或第二路由选择装置所执行的任一个方案,或者执行第一路由选择装置和第二路由选择装置所执行的任一个方案,或者执行上述路由选择装置141所执行的任一个方案。

如图3所示,路由选择装置300包括处理器301、收发器302、存储器303和通信接口304;其中,处理器301、收发器302、存储器303和通信接口304通过总线305相互连接。

总线305可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器303可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器303还可以包括上述种类的存储器的组合。

通信接口304可以为有线通信接入口,无线通信接口或其组合,其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为wlan接口。

处理器301可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。处理器301还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。

可选地,存储器303还可以用于存储程序指令,处理器301调用该存储器303中存储的程序指令,可以执行图2至图2e所示实施例中的一个或多个步骤,或其中可选的实施方式,使得路由选择装置300实现上述方法中第一路由选择装置和/或第二路由选择装置的功能,以及使得路由选择装置300实现上述方法中路由选择装置141的功能。

处理器301用于根据执行存储器存储的指令,并控制收发器302进行信号接收和信号发送,当处理器301执行存储器存储的指令时,路由选择装置用于:获取源节点到目标节点的至少两条路由,并获取至少两条路由中的中间节点的微结构计数nmc分值;根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由;其中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的;其中,该中间节点为该中间节点构建的多边形的顶点。

本申请实施例中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的,且该中间节点为该中间节点构建的多边形的顶点,也就是说,一个中间节点的nmc分值可以反映出该中间节点参与构建的多边形的数量,由于多边形是封闭的,且该中间节点为该多边形的顶点,因此该中间节点构建多边形的数量可以反映出该中间节点的链路出现故障后该中间节点的故障修复能力,又由于本申请实施例中根据至少两条路由中的中间节点的nmc分值从源节点到目标节点的至少两条路由中选择目标路由,也就是说,本申请实施例中是基于中间节点的故障修复能力选择的目标路由,因此本申请实施例所提供的方案可提高目标路由抵抗故障的能力,从而提高通讯的可靠性。

可选地,至少两条路由中第一路由和第二路由等价;其中,第一路由和第二路由为至少两条路由中的任两条路由;第一路由和第二路由满足以下内容中的任一项:第一路由包括的节点间的跳数与第二路由包括的节点间的跳数相同;第一路由的传输时延与第二路由包括的传输时延相同;第一路由包括的链路的权重的和与第二路由包括的链路的权重的和相同;第一路由包括的中间节点的权重的和与第二路由包括的中间节点的权重的和相同;第一路由包括的链路的权重和中间节点的权重的和与第二路由包括的链路的权重和中间节点的权重的和相同。通过上述论述可见,本申请实施例中选择出的目标路由是考虑了路由上各个中间节点的路由修复能力的,因此可提高路由的可靠性。进一步,针对两条等价的路由,本申请实施例中可以更加显出优势,本申请实施例中可以确定出两条等价的路由中那条路由的故障修复能力更高。

可选地,中间节点的nmc分值是:根据该中间节点构建的m类多边形的数量得到的;其中,m为大于等于1的整数,且若m大于等于2时,m类多边形中任两类多边形的边数不同。如此,可以根据实际情况以及具体的应用场景合理设置m类多边形,从而使nmc分值更加准确的反映该中间节点的故障修复能力。

可选地,中间节点的nmc分值是:将根据m类多边形中每类多边形对应的权重,将该中间节点构建的m类多边形中的每类多边形的数量进行加权计算得到的;其中,该中间节点的nmc分值用于指示:该中间节点的故障修复能力。如此,m类多边形中每类多边形对应的权重可以根据实际情况设定,比如每类多边形的权重都相同,都为1;或者由于边数越多的多边形可能修复后的路由时延较大,因此边数越多的多边形的权重可能越小等等,从而使nmc分值在该中间节点的故障修复能力以及修复后路由的时延之间进行平衡。

可选地,处理器301,用于:根据至少两条路由中的中间节点的nmc分值,确定出至少两条路由中路由的nmc分值;其中,该路由的nmc分值用于指示该路由的故障修复能力;根据至少两条路由中路由的nmc分值,将指示的故障修复能力最强的路由的nmc分值对应的路由确定为目标路由。

可选地,处理器301,用于通过以下任一方式确定出至少两条路由中路由的nmc分值:将至少两条路由中路由中指示的故障修复能力最弱的中间节点的nmc分值确定为路由的nmc分值;将至少两条路由中路由中的中间节点nmc分值进行数学计算,并将数学计算的结果确定为路由的nmc分值。

可选地,收发器302,还用于:通过洪泛或周期性信息交换机制获取至少两条路由中每条路由中的每个中间节点上报的nmc分值。可选地,处理器301获取中间节点的nmc分值可通过控制收发器302接收至少两条路由中每条路由中的每个中间节点上报的nmc分值,也可通过处理器301计算至少两条路由中每条路由中的每个中间节点的nmc分值。

可选地,收发器302,用于:广播路由请求;其中,路由请求中包括目标节点的标识;接收目标节点返回的路由请求对应的路由响应;其中,路由响应中包括:源节点到目标节点的至少两条路由,以及至少两条路由中的中间节点的nmc分值。该示例中,路由选择装置300可以集成于源节点上。

图4示例性示出了本申请提供的一种路由选择装置的结构示意图。

基于相同构思,本申请提供一种路由选择装置400,用于执行上述方法流程。路由选择装置400可以包括上述内容中的第二路由选择装置,或者包括上述内容中第一路由选择装置和第二路由选择装置,也可为上述内容中图1a中的路由选择装置141。也就是说路由选择装置400可以用于执行上述方法中的任一个方案,即可执行上述内容中第一路由选择装置或第二路由选择装置所执行的任一个方案以及执行上述路由选择装置141所执行的任一个方案。

如图4所示,路由选择装置400包括处理器401、收发器402、存储器403和通信接口404;其中,处理器401、收发器402、存储器403和通信接口404通过总线405相互连接。

总线405可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器403可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器403还可以包括上述种类的存储器的组合。

通信接口404可以为有线通信接入口,无线通信接口或其组合,其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为wlan接口。

处理器401可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。处理器401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。

可选地,存储器403还可以用于存储程序指令,处理器401调用该存储器403中存储的程序指令,可以执行图2至图2e所示实施例中的一个或多个步骤,或其中可选的实施方式,使得路由选择装置400实现上述方法中第一路由选择装置和/或第二路由选择装置的功能,或者使得路由选择装置400实现上述方法中路由选择装置141的功能。

处理器401用于根据执行存储器存储的指令,并控制收发器402进行信号接收和信号发送,当处理器401执行存储器存储的指令时,路由选择装置用于:针对源节点到目标节点的至少两条路由中的中间节点,执行:根据该中间节点的网络拓扑信息确定该中间节点构建的多边形的数量;其中,该中间节点为该中间节点构建的多边形的顶点;据该中间节点构建的多边形的数量,确定该中间节点的微结构计数nmc分值;上报该中间节点的nmc分值;其中,至少两条路由中的中间节点的nmc分值用于:根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由。

本申请实施例中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的,且该中间节点为该中间节点构建的多边形的顶点,也就是说,一个中间节点的nmc分值可以反映出该中间节点参与构建的多边形的数量,由于多边形是封闭的,且该中间节点为该多边形的顶点,因此该中间节点构建多边形的数量可以反映出该中间节点的链路出现故障后该中间节点的故障修复能力,又由于本申请实施例中根据至少两条路由中的中间节点的nmc分值从源节点到目标节点的至少两条路由中选择目标路由,也就是说,本申请实施例中是基于中间节点的故障修复能力选择的目标路由,因此本申请实施例所提供的方案可提高目标路由抵抗故障的能力,从而提高通讯的可靠性。

可选地,至少两条路由中第一路由和第二路由等价;其中,第一路由和第二路由为至少两条路由中的任两条路由;第一路由和第二路由满足以下内容中的任一项:第一路由包括的节点间的跳数与第二路由包括的节点间的跳数相同;第一路由的传输时延与第二路由包括的传输时延相同;第一路由包括的链路的权重的和与第二路由包括的链路的权重的和相同;第一路由包括的中间节点的权重的和与第二路由包括的中间节点的权重的和相同;第一路由包括的链路的权重和中间节点的权重的和与第二路由包括的链路的权重和中间节点的权重的和相同。通过上述论述可见,本申请实施例中选择出的目标路由是考虑了路由上各个中间节点的路由修复能力的,因此可提高路由的可靠性。进一步,针对两条等价的路由,本申请实施例中可以更加显出优势,本申请实施例中可以确定出两条等价的路由中那条路由的故障修复能力更高。

可选地,处理器401,用于:根据该中间节点的网络拓扑信息,确定该中间节点构建的m类多边形的数量;其中,m为大于等于1的整数,且若m大于等于2时,m类多边形中任两类多边形的边数不同;根据该中间节点构建的m类多边形的数量,确定该中间节点的nmc分值。如此,可以根据实际情况以及具体的应用场景合理设置m类多边形,从而使nmc分值更加准确的反映该中间节点的故障修复能力。

可选地,处理器401,用于:确定m类多边形中每类多边形对应的权重;根据m类多边形中每类多边形对应的权重,将该中间节点构建的m类多边形中的每类多边形的数量进行加权计算;将该中间节点构建的m类多边形中的每类多边形的数量加权计算后的结果确定为该中间节点的nmc分值。如此,m类多边形中每类多边形对应的权重可以根据实际情况设定,比如每类多边形的权重都相同,都为1;或者由于边数越多的多边形可能修复后的路由时延较大,因此边数越多的多边形的权重可能越小等等,从而使nmc分值在该中间节点的故障修复能力以及修复后路由的时延之间进行平衡。

可选地,收发器402,还用于:通过洪泛或周期性信息交换机制获取至少两条路由中每条路由中的每个中间节点上报的nmc分值。可选地,可通过收发器402接收至少两条路由中每条路由中的每个中间节点上报的nmc分值,也可通过处理器401计算至少两条路由中每条路由中的每个中间节点的nmc分值。

可选地,收发器402,用于:接收路由请求;其中,路由请求中包括目标节点的标识;根据路由请求的标识在确定为首次接收到路由请求后,将中间节点的标识和nmc分值添加至路由请求的路由记录中,并转发增加了中间节点的标识和nmc分值的路由请求。该示例中,路由选择装置300可以集成于中间节点上。

图5示例性示出了本申请实施例提供的一种路由选择装置的结构示意图。

基于相同构思,本申请实施例提供一种路由选择装置,用于执行上述方法流程。路由选择装置500可以包括上述内容中的第一路由选择装置,或者包括上述内容中第一路由选择装置和第二路由选择装置,也可为上述内容中图1a中的路由选择装置141。也就是说路由选择装置500可以用于执行上述方法中的任一个方案。如图5所示,路由选择装置500包括接收单元501、处理单元502和发送单元503。

处理单元502用于:获取源节点到目标节点的至少两条路由,并获取至少两条路由中的中间节点的微结构计数nmc分值;根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由;其中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的;其中,该中间节点为该中间节点构建的多边形的顶点。

本申请实施例中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的,且该中间节点为该中间节点构建的多边形的顶点,也就是说,一个中间节点的nmc分值可以反映出该中间节点参与构建的多边形的数量,由于多边形是封闭的,且该中间节点为该多边形的顶点,因此该中间节点构建多边形的数量可以反映出该中间节点的链路出现故障后该中间节点的故障修复能力,又由于本申请实施例中根据至少两条路由中的中间节点的nmc分值从源节点到目标节点的至少两条路由中选择目标路由,也就是说,本申请实施例中是基于中间节点的故障修复能力选择的目标路由,因此本申请实施例所提供的方案可提高目标路由抵抗故障的能力,从而提高通讯的可靠性。

可选地,至少两条路由中第一路由和第二路由等价;其中,第一路由和第二路由为至少两条路由中的任两条路由;第一路由和第二路由满足以下内容中的任一项:第一路由包括的节点间的跳数与第二路由包括的节点间的跳数相同;第一路由的传输时延与第二路由包括的传输时延相同;第一路由包括的链路的权重的和与第二路由包括的链路的权重的和相同;第一路由包括的中间节点的权重的和与第二路由包括的中间节点的权重的和相同;第一路由包括的链路的权重和中间节点的权重的和与第二路由包括的链路的权重和中间节点的权重的和相同。通过上述论述可见,本申请实施例中选择出的目标路由是考虑了路由上各个中间节点的路由修复能力的,因此可提高路由的可靠性。进一步,针对两条等价的路由,本申请实施例中可以更加显出优势,本申请实施例中可以确定出两条等价的路由中那条路由的故障修复能力更高。

可选地,中间节点的nmc分值是:根据该中间节点构建的m类多边形的数量得到的;其中,m为大于等于1的整数,且若m大于等于2时,m类多边形中任两类多边形的边数不同。如此,可以根据实际情况以及具体的应用场景合理设置m类多边形,从而使nmc分值更加准确的反映该中间节点的故障修复能力。

可选地,中间节点的nmc分值是:将根据m类多边形中每类多边形对应的权重,将该中间节点构建的m类多边形中的每类多边形的数量进行加权计算得到的;其中,该中间节点的nmc分值用于指示:该中间节点的故障修复能力。如此,m类多边形中每类多边形对应的权重可以根据实际情况设定,比如每类多边形的权重都相同,都为1;或者由于边数越多的多边形可能修复后的路由时延较大,因此边数越多的多边形的权重可能越小等等,从而使nmc分值在该中间节点的故障修复能力以及修复后路由的时延之间进行平衡。

可选地,处理单元502,用于:根据至少两条路由中的中间节点的nmc分值,确定出至少两条路由中路由的nmc分值;其中,该路由的nmc分值用于指示该路由的故障修复能力;根据至少两条路由中路由的nmc分值,将指示的故障修复能力最强的路由的nmc分值对应的路由确定为目标路由。

可选地,处理单元502,用于通过以下任一方式确定出至少两条路由中路由的nmc分值:将至少两条路由中路由中指示的故障修复能力最弱的中间节点的nmc分值确定为路由的nmc分值;将至少两条路由中路由中的中间节点nmc分值进行数学计算,并将数学计算的结果确定为路由的nmc分值。

可选地,接收单元501,还用于:通过洪泛或周期性信息交换机制获取至少两条路由中每条路由中的每个中间节点上报的nmc分值。可选地,处理单元获取中间节点的nmc分值可通过控制接收单元接收至少两条路由中每条路由中的每个中间节点上报的nmc分值;也可通过处理单元计算至少两条路由中每条路由中的每个中间节点的nmc分值。

可选地,发送单元503,用于:广播路由请求;其中,路由请求中包括目标节点的标识;接收单元501用于接收目标节点返回的路由请求对应的路由响应;其中,路由响应中包括:源节点到目标节点的至少两条路由,以及至少两条路由中的中间节点的nmc分值。该示例中,路由选择装置500可以集成于源节点上。

应理解,以上各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。本申请实施例中,接收单元501和发送单元503可以由收发器302实现,处理单元502可以由处理器301实现。如图3所示,路由选择装置300可以包括处理器301、收发器302和存储器303。其中,存储器303可以用于存储处理器301执行方案时的代码,该代码可为路由选择装置300出厂时预装的程序/代码。

图6示例性示出了本申请实施例提供的一种路由选择装置的结构示意图。

基于相同构思,本申请实施例提供一种路由选择装置,用于执行上述方法流程。路由选择装置600可以包括上述内容中的第二路由选择装置,或者包括上述内容中第一路由选择装置和第二路由选择装置,也可为上述内容中图1a中的路由选择装置141。也就是说路由选择装置600可以用于执行上述方法中的任一个方案。如图6所示,路由选择装置600包括接收单元601、处理单元602和发送单元603。

处理单元602用于针对源节点到目标节点的至少两条路由中的中间节点,执行:根据该中间节点的网络拓扑信息确定该中间节点构建的多边形的数量;其中,该中间节点为该中间节点构建的多边形的顶点;据该中间节点构建的多边形的数量,确定该中间节点的微结构计数nmc分值;上报该中间节点的nmc分值;其中,至少两条路由中的中间节点的nmc分值用于:根据至少两条路由中的中间节点的nmc分值,从至少两条路由中选择出一条目标路由。

本申请实施例中,中间节点的nmc分值是根据该中间节点构建的多边形的数量得到的,且该中间节点为该中间节点构建的多边形的顶点,也就是说,一个中间节点的nmc分值可以反映出该中间节点参与构建的多边形的数量,由于多边形是封闭的,且该中间节点为该多边形的顶点,因此该中间节点构建多边形的数量可以反映出该中间节点的链路出现故障后该中间节点的故障修复能力,又由于本申请实施例中根据至少两条路由中的中间节点的nmc分值从源节点到目标节点的至少两条路由中选择目标路由,也就是说,本申请实施例中是基于中间节点的故障修复能力选择的目标路由,因此本申请实施例所提供的方案可提高目标路由抵抗故障的能力,从而提高通讯的可靠性。

可选地,至少两条路由中第一路由和第二路由等价;其中,第一路由和第二路由为至少两条路由中的任两条路由;第一路由和第二路由满足以下内容中的任一项:第一路由包括的节点间的跳数与第二路由包括的节点间的跳数相同;第一路由的传输时延与第二路由包括的传输时延相同;第一路由包括的链路的权重的和与第二路由包括的链路的权重的和相同;第一路由包括的中间节点的权重的和与第二路由包括的中间节点的权重的和相同;第一路由包括的链路的权重和中间节点的权重的和与第二路由包括的链路的权重和中间节点的权重的和相同。通过上述论述可见,本申请实施例中选择出的目标路由是考虑了路由上各个中间节点的路由修复能力的,因此可提高路由的可靠性。进一步,针对两条等价的路由,本申请实施例中可以更加显出优势,本申请实施例中可以确定出两条等价的路由中那条路由的故障修复能力更高。

可选地,处理单元602,用于:根据该中间节点的网络拓扑信息,确定该中间节点构建的m类多边形的数量;其中,m为大于等于1的整数,且若m大于等于2时,m类多边形中任两类多边形的边数不同;根据该中间节点构建的m类多边形的数量,确定该中间节点的nmc分值。如此,可以根据实际情况以及具体的应用场景合理设置m类多边形,从而使nmc分值更加准确的反映该中间节点的故障修复能力。

可选地,处理单元602,用于:确定m类多边形中每类多边形对应的权重;根据m类多边形中每类多边形对应的权重,将该中间节点构建的m类多边形中的每类多边形的数量进行加权计算;将该中间节点构建的m类多边形中的每类多边形的数量加权计算后的结果确定为该中间节点的nmc分值。如此,m类多边形中每类多边形对应的权重可以根据实际情况设定,比如每类多边形的权重都相同,都为1;或者由于边数越多的多边形可能修复后的路由时延较大,因此边数越多的多边形的权重可能越小等等,从而使nmc分值在该中间节点的故障修复能力以及修复后路由的时延之间进行平衡。

可选地,接收单元601,还用于:通过洪泛或周期性信息交换机制获取至少两条路由中每条路由中的每个中间节点上报的nmc分值。可选地,可通过接收单元601接收至少两条路由中每条路由中的每个中间节点上报的nmc分值,也可通过处理单元602计算至少两条路由中每条路由中的每个中间节点的nmc分值。

可选地,接收单元601,用于:接收路由请求;其中,路由请求中包括目标节点的标识;处理单元602用于根据路由请求的标识在确定为首次接收到路由请求后,将中间节点的标识和nmc分值添加至路由请求的路由记录中,并通过发送单元603转发增加了中间节点的标识和nmc分值的路由请求。该示例中,路由选择装置600可以集成于中间节点上。

应理解,以上各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。本申请实施例中,接收单元601和发送单元603可以由收发器402实现,处理单元602可以由处理器401实现。如图4所示,路由选择装置400可以包括处理器401、收发器402和存储器403。其中,存储器403可以用于存储处理器401执行方案时的代码,该代码可为路由选择装置400出厂时预装的程序/代码。

本申请实施例提供了一种计算机存储介质,用于储存为上述路由选择装置300所用的计算机程序指令,其包含用于执行上述路由选择方法的程序。

计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

本申请实施例还提供了另一种计算机存储介质,用于储存为上述路由选择装置400所用的计算机程序指令,其包含用于执行上述路由选择方法的程序。

计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1