欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种路径切换方法及节点、系统独创技术45361字

一种路径切换方法及节点、系统

2021-04-07 06:19:48

一种路径切换方法及节点、系统

  技术领域

  本申请涉及通信领域,尤其涉及一种路径切换方法及节点、系统。

  背景技术

  在进行报文转发时,如遇到故障节点,无法转发报文至目的路由节点,需进行路径切换。

  如图1所示的网络协议(internet protocol,IP)网络报文传输示意图,IP网络由于没有端到端路径,无法基于端到端路径检测切换,下游故障丢包时需要等待路由协议重新收敛,上游才会切换。如图1所示,虚拟扩展局域网隧道端点(virtual extensible localarea network tunnel end point,VTEP)之间有两条等价路径,形成负载分担。下游故障时,节点A不知道下游故障,不知道流量需要切换到下边,直到路由协议重新收敛,才进行切换,因此上游无法立即切换。

  目前主要有以下几种路径切换方案:

  如图2所示的利用IP快速路由(fast reroute,FRR)技术进行路径切换的示意图,通过给路由节点配置IP FRR保护,节点发生故障后,切换到备用路径转发报文。但是,IPFRR只能单跳配置,感知单跳故障,需要每一跳都配置IP FRR,配置复杂;且需要每一跳都有冗余路径,对组网要求较高。

  如图3所示的端到端路径切换示意图,建立端到端标签路径,如多协议标签交换(multi-protocol label switching,MPLS)、SR等,基于端到端标签路径检测保护,路径沿途出现故障时,进行端到端路径切换。但是,这要求系统具有标签路径能力。然而,如数据中心的服务器,建立虚拟扩展局域网(virtual extensible local area network,VxLAN)隧道时,并不具备标签路径能力。

  如图4所示的通过远程无环替换(remote loop-free alternate,remote LFA)技术进行路径切换的示意图,通过控制面计算出PQ节点,生成经过PQ节点的备用路径。其中:

  P空间:是指以源节点为根,到其他节点的最短路径(SPF)树,删掉保护路径及其下挂的分支和节点。

  Q空间:是指以目的节点为根,到其他节点的SPF树,删掉保护路径及其下挂的分支和节点。

  PQ节点:是指PQ空间的交集中的节点,即D节点。选择该节点主要是为了防止C之外的节点不知道故障产生,C将流量送出去之后,其它节点又将流量送回C点,产生微环。

  CF链路的备用路径是指C到D的隧道(tunnel),经CBAD将流量送到PQ节点。

  故障时的切换:流量从故障节点C经BADE,送到目的地F。通过remote LFA算法能找到一个无环代理节点。无环的意思是:一旦有故障后,故障节点知道有故障,其它节点不知道有故障,故障节点如果随意将报文转到其它路由器,其它路由器不知道故障节点已经故障了,它可能按照路由表一转,又转回故障节点了,形成环路。Remote LFA就是要找到一个PQ节点,从故障节点到PQ节点,从PQ节点到目的地,最短路都不经过故障点,从而也不会形成故障导致的环路。

  然而,remote LFA技术需要路由器具有建立标签路径的能力,故障后流量从非最短路绕行,增加了绕行链路部分的流量压力(链路CBADEF,相对于原链路A到C,需要两倍的流量),会对网络造成冲击。

  仍参考图1,IP网络出现故障时,理想的切换方法,是在路由器A直接切换到负载分担链路的另一条路径上,这里称路由器A为切换节点。但在故障发生时不知道上游的切换节点A在什么地方,如何能搜索到节点A进行切换?

  基于此,如何快速地找到切换节点进行路径切换,是亟待解决的问题。

  发明内容

  本申请提供一种路径切换方法及节点、系统,以快速找到切换节点,进行路径切换。

  第一方面,提供了一种路径切换方法,所述方法包括:第一路由节点接收上一跳路由节点发送的至少一个数据报文;以及当所述第一路由节点不能向下一跳路由节点发送所述至少一个数据报文时,所述第一路由节点发送面向目的地的有向无环图DDAG协议报文,其中,所述DDAG协议报文用于搜索满足路径切换条件的切换节点,所述路径切换条件包括到所述至少一个数据报文的目的路由节点存在冗余路径,所述DDAG协议报文包括所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识以及所述至少一个数据报文的标识。在该方面中,第一路由节点在发生故障时,发送DDAG协议报文,快速搜索切换节点,以通过切换节点及时地转发报文,从而提高了数据报文传输的可靠性。

  第二方面,提供了一种路径切换方法,所述方法包括:第二路由节点接收来自所述第二路由节点的上一跳路由节点的面向目的地的有向无环图DDAG协议报文,其中,所述DDAG协议报文用于搜索满足路径切换条件的切换节点,所述路径切换条件包括到至少一个数据报文的目的路由节点存在冗余路径,所述DDAG协议报文包括所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识以及所述至少一个数据报文的标识;所述第二路由节点根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、以及所述第二路由节点的上一跳路由节点的到切换节点的代价cost值由高到低的顺序,确定DDAG路径;以及所述第二路由节点在所述DDAG路径上转发所述DDAG协议报文。在该方面中,通过在确定的DDAG路径上发送DDAG协议报文,可以快速地搜索到切换节点,由切换节点进行路径切换,从而提高了数据报文传输的可靠性。

  在一个实现中,所述方法还包括:所述第二路由节点根据所述路径切换条件,判断所述第二路由节点是否满足所述路径切换条件;以及当所述第二路由节点不满足所述路径切换条件时,执行所述第二路由节点在所述DDAG路径上转发所述DDAG协议报文的步骤。在该实现中,每一个接收到DDAG报文的路由节点都判断自身是否满足路径切换条件,当自身不满足路径切换条件时,转发DDAG协议报文至DDAG路径上的下一跳路由节点;当自身满足路径切换条件时,则作为切换节点,转发DDAG协议报文。

  在又一个实现中,所述第二路由节点根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、以及所述第二路由节点的上一跳路由节点的cost值由高到低的顺序,确定DDAG路径,包括:所述第二路由节点向相邻的路由节点发送所述DDAG协议报文,并将所述相邻的路由节点的cost值设置为设定值;当所述第二路由节点的cost值小于所述相邻的路由节点的cost值时,将所述第二路由节点至所述相邻的路由节点的路径的方向反转;和/或当所述第二路由节点不存在出口路径时,将所述第二路由节点的cost值增加一个单位,并且所述第二路由节点将所有指向所述第二路由节点的入口路径的方向反转;以及所述第二路由节点确定cost值从高到低所经过的一个或多个路由节点构成的路径为所述DDAG路径。在该实现中,根据链路反转的原理确定DDAG路径,能够快速地找到切换节点。

  在又一个实现中,所述方法还包括:所述第二路由节点向多个相邻的路由节点发送所述DDAG协议报文;以及所述第二路由节点将所述DDAG路径之外的相邻的路由节点的cost值设置为最大值。在该实现中,对于不作为搜索目标的路由节点,将其cost值设置为最大值,以保证不搜索该路由节点,从而实现快速地搜索到切换节点。

  在又一个实现中,所述方法还包括:当搜索到所述至少一个数据报文中的其中一个数据报文对应的切换节点时,所述第二路由节点停止对所述其中一个数据报文的切换节点的搜索。在该实现中,对于故障节点相同的多个数据报文,可以通过一个DDAG报文搜索该多个数据报文的切换节点,且当搜索到其中任一个数据报文的切换节点时,停止对该数据报文的切换节点的搜索。

  在又一个实现中,所述第二路由节点为所述第一路由节点的上一跳路由节点。在该实现中,路由的往返路径是重合的,优先将DDAG协议报文发送到故障路由节点的上一跳路由节点,可以更快的搜索到切换节点。

  在又一个实现中,DDAG协议报文(寻路报文)只向流量入接口方向寻路,且将故障节点的cost值设置为最大值255,可以将DDAG协议报文的搜索锁定在流量入接口方向,减小搜索范围。

  在又一个实现中,所述方法还包括:所述第二路由节点获取无环代理LFA路径和存在所述LFA路径的路由节点,其中,存在所述LFA路径的路由节点为起始路由节点;所述第二路由节点生成DDAG域,其中,所述DDAG域包括所述起始路由节点和所述起始路由节点的至少一个下游节点,所述下游节点无法计算出LFA路径;以及所述第二路由节点在所述DDAG域内将所述DDAG报文发送至所述起始路由节点。在该实现中,可以通过LFA路径转发数据报文,该LFA路径为通往目的路由节点的一条冗余路径,然而,LFA路径的起始路由节点的下游路由节点无法计算出LFA路径,因此,生成一个DDAG域,下游路由节点在该DDAG域内将DDAG协议报文发送至起始路由节点,从而搜索到起始路由节点为切换节点,保证可靠地搜索到切换节点。

  第三方面,提供了一种路径切换方法,所述方法包括:切换节点接收面向目的地的有向无环图DDAG协议报文,其中,所述DDAG协议报文用于搜索满足路径切换条件的切换节点,所述路径切换条件包括到至少一个数据报文的目的路由节点存在冗余路径,所述DDAG协议报文包括所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识以及所述至少一个数据报文的标识;所述切换节点根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、所述至少一个数据报文的标识以及所述路径切换条件,确定所述切换节点满足所述路径切换条件;以及所述切换节点根据所述至少一个数据报文的目的路由节点,将所述至少一个数据报文切换到所述冗余路径上发送。在该方面中,切换节点判断自身满足路径切换条件,则将数据报文切换到冗余路径上发送,从而提高了数据报文传输的可靠性。

  在一个实现中,所述切换节点为无环代理LFA路径的起始路由节点,所述方法还包括所述切换节点切换到无环代理LFA路径发送所述至少一个数据报文。

  第四方面,提供了一种第一路由节点,该第一路由节点用于实现上述方法中第一路由节点的行为功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

  第五方面,提供了一种第二路由节点,该第二路由节点用于实现上述方法中第二路由节点的行为功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。第六方面,提供了一种切换节点,该切换节点用于实现上述方法中切换节点的行为功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。第七方面,提供了一种第一路由节点,包括:处理器和物理接口,所述处理器用于执行如下步骤:用所述物理接口接收上一跳路由节点发送的至少一个数据报文;以及当所述第一路由节点不能向下一跳路由节点发送所述至少一个数据报文时,用所述物理接口发送面向目的地的有向无环图DDAG协议报文,其中,所述DDAG协议报文用于搜索满足路径切换条件的切换节点,所述路径切换条件包括到所述至少一个数据报文的目的路由节点存在冗余路径,所述DDAG协议报文包括所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识以及所述至少一个数据报文的标识。

  第八方面,提供了一种第二路由节点,包括:处理器和物理接口,所述处理器用于执行如下步骤:用所述物理接口接收来自所述第二路由节点的上一跳路由节点的面向目的地的有向无环图DDAG协议报文,其中,所述DDAG协议报文用于搜索满足路径切换条件的切换节点,所述路径切换条件包括到至少一个数据报文的目的路由节点存在冗余路径,所述DDAG协议报文包括所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识以及所述至少一个数据报文的标识;根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、以及所述第二路由节点的上一跳路由节点的到切换节点的代价cost值由高到低的顺序,确定DDAG路径;以及用所述物理接口在所述DDAG路径上转发所述DDAG协议报文。

  在一个实现中,所述处理器还用于执行如下步骤:根据所述路径切换条件,判断所述第二路由节点是否满足所述路径切换条件;以及当所述第二路由节点不满足所述路径切换条件时,执行所述第二路由节点在所述DDAG路径上转发所述DDAG协议报文的步骤。

  在又一个实现中,所述处理器执行所述第二路由节点根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、以及所述第二路由节点的上一跳路由节点的cost值由高到低的顺序,确定DDAG路径的步骤,包括:用所述物理接口向相邻的路由节点发送所述DDAG协议报文,并将所述相邻的路由节点的cost值设置为设定值;当所述第二路由节点的cost值小于所述相邻的路由节点的cost值时,将所述第二路由节点至所述相邻的路由节点的路径的方向反转;和/或当所述第二路由节点不存在出口路径时,将所述第二路由节点的cost值增加一个单位,并且所述第二路由节点将所有指向所述第二路由节点的入口路径的方向反转;以及确定cost值从高到低所经过的一个或多个路由节点构成的路径为所述DDAG路径。

  在又一个实现中,所述处理器还用于执行如下步骤:用所述物理接口向多个相邻的路由节点发送所述DDAG协议报文;以及将所述DDAG路径之外的相邻的路由节点的cost值设置为最大值。

  在又一个实现中,所述处理器还用于执行如下步骤:当搜索到所述至少一个数据报文中的其中一个数据报文对应的切换节点时,停止对所述其中一个数据报文的切换节点的搜索。

  在又一个实现中,所述第二路由节点为所述第一路由节点的上一跳路由节点。

  在又一个实现中,所述处理器还用于执行如下步骤:获取无环代理LFA路径和存在所述LFA路径的路由节点,其中,存在所述LFA路径的路由节点为起始路由节点;生成DDAG域,其中,所述DDAG域包括所述起始路由节点和所述起始路由节点的至少一个下游节点,所述下游节点无法计算出LFA路径;以及用所述物理接口在所述DDAG域内将所述DDAG报文发送至所述起始路由节点。

  第九方面,提供了一种切换节点,包括:处理器和物理接口,所述处理器用于执行如下步骤:用所述物理接口接收面向目的地的有向无环图DDAG协议报文,其中,所述DDAG协议报文用于搜索满足路径切换条件的切换节点,所述路径切换条件包括到至少一个数据报文的目的路由节点存在冗余路径,所述DDAG协议报文包括所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识以及所述至少一个数据报文的标识;根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、所述至少一个数据报文的标识以及所述路径切换条件,确定所述切换节点满足所述路径切换条件;以及用所述物理接口根据所述至少一个数据报文的目的路由节点,将所述至少一个数据报文切换到所述冗余路径上发送。

  在一个实现中,所述切换节点为无环代理LFA路径的起始路由节点,所述处理器还用于执行如下步骤:用所述物理接口切换到无环代理LFA路径发送所述至少一个数据报文。

  第十方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

  第十一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

  第十二方面,提供了一种通信系统,包括上述的第一路由节点、第二路由节点和切换节点。

  附图说明

  下面将对本发明实施例或背景技术中所需要使用的附图进行说明。

  图1为IP网络报文传输示意图;

  图2为利用IP FRR技术进行路径切换的示意图;

  图3为端到端路径切换示意图;

  图4为通过remote LFA技术进行路径切换的示意图;

  图5为本申请实施例提供的一种路径切换的系统架构示意图;

  图6为链路反转的原理示意图;

  图7为本申请实施例提供的一种路径切换方法的流程示意图;

  图8a~图8g为示例的一种搜索切换节点的过程示意图;

  图9为示例的又一种搜索切换节点的过程示意图;

  图10为示例的又一种搜索切换节点的过程示意图;

  图11为示例的又一种搜索切换节点的过程示意图;

  图12为本申请实施例提供的又一种路径切换方法的流程示意图;

  图13为示例的一种通过保护路径转发数据报文的示意图;

  图14为本申请实施例提供的一种第一路由节点的结构示意图;

  图15为本申请实施例提供的一种第二路由节点的结构示意图;

  图16为本申请实施例提供的一种切换节点的结构示意图;

  图17为本申请实施例提供的又一种路由节点的结构示意图。

  具体实施方式

  下面结合本发明实施例中的附图对本发明实施例进行描述。

  请参阅图5,图5为本申请实施例提供的一种路径切换的系统架构示意图,图5中示例了首先通过路径1转发数据报文,该路径1包括n个路由节点:路由节点1、……路由节点n。然后,在第一路由节点转发数据报文时发生了故障,该第一路由节点可以是路径1上的任一路由节点。从而,搜索切换节点,该切换节点可以通过路径1的冗余路径(例如图5中的路径2)转发数据报文至目的路由节点。其中,路径2包括m个路由节点:路由节点1、……路由节点m。需要说明的是,路径1的冗余路径可以是一条或两条。

  本申请实施例提供一种路径切换方法及节点、系统,通过在确定的DDAG路径上发送DDAG协议报文,可以快速地搜索到切换节点,由切换节点进行路径切换,从而提高了数据报文传输的可靠性。

  本申请实施例路由节点采用链路反转(link reversal)原理搜索切换节点,因此,首先介绍一下链路反转原理:

  物联网(internet of things,IoT)路由协议中的按需路由协议,可以不维持路由表,直接在转发层面通过一定的尝试,即可找到转发路径。其中一种为链路反转法,类似于水从高山流下的过程。

  链路反转原理包括如下两个定理:

  定理1:从任意一个随机的有向无环图(directed acyclic graph,DAG)开始,存在一种翻转链路方向的方法,可以在有限次数内,将该随机DAG转化为面向目的地的有向无环图(destination-oriented directed acyclic graph,DDAG)。

  其中,DAG是指任意一条边有方向,且不存在环路的图。

  DDAG是指满足如下条件的一种DAG:“对于某个目的地d,DAG中每个非d的节点都存在至少1条到达d的无环可达路径”。

  其中,一种链路反转算法为全反转算法(full reversal)。全反转算法原理如下:定义sink节点为DAG中无出边的节点。每次选择DAG中当前的一个Sink节点(如果有多个,则随机选择1个或多个),对它的所有入边进行方向翻转。其中,sink节点是指所有的link方向都指向自己的节点。

  定理2:按上述翻转算法翻转有限次,一定能够收敛到一个DDAG;且收敛的DDAG与翻转次序无关,仅与初始DAG有关。

  如图6所示的链路反转的原理示意图,节点3在发送报文到目的节点D时发生故障,且节点3没有出边,则将节点3的链路全部反转;在节点3的链路全部反转后,节点2也没有出边,则将节点2的链路全部反转;在节点2的链路全部反转后,节点5也没有出边,则将节点5的链路全部反转;在节点5的链路全部反转后,节点4也没有出边,则将节点4的链路全部反转;在节点4的链路全部反转后,可以看到,找到了节点1,可以由节点1将报文发送到目的节点D。

  请参阅图7,图7为本申请实施例提供的一种路径切换方法的流程示意图,示例性地,该方法可以包括以下步骤:

  S101、第一路由节点接收上一跳路由节点发送的至少一个数据报文。

  第一路由节点可以接收上一跳路由节点发送的一个或多个数据报文。这一个或多个数据报文的转发路径可以相同,也可以不同;这一个或多个数据报文的转发路径的目的地可以相同,也可以不同。但是,这一个或多个数据报文都经过第一路由节点转发。

  S102、当所述第一路由节点不能向下一跳路由节点发送所述至少一个数据报文时,所述第一路由节点发送面向目的地的DDAG协议报文。

  然而,第一路由节点处发生故障,第一路由节点不能向下一跳路由节点发送上述一个或多个数据报文。本实施例将切换节点作为寻路目标,使用按需路由协议搜索切换节点。具体地,第一路由节点发送DDAG协议报文,该DDAG协议报文用于搜索满足路径切换条件的切换节点。其中,路径切换条件包括到上述至少一个数据报文的目的路由节点存在冗余路径。其中,DDAG协议报文包括第一路由节点的标识、至少一个数据报文的目的路由节点的标识以及至少一个数据报文的标识。

  具体地,第一路由节点向邻居节点发送上述DDAG协议报文。并且第一路由节点将自身的到切换节点的花费(cost)值设置为最大值,例如,最大值为255。cost值越大,越不可能到达。

  S103、第二路由节点接收来自所述第二路由节点的上一跳路由节点的DDAG协议报文后,所述第二路由节点根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、以及所述第二路由节点的上一跳路由节点的到切换节点的代价cost值由高到低的顺序,确定DDAG路径。

  第二路由节点可以是一个或多个。第二路由节点接收到上一跳路由节点发送的DDAG协议报文后,搜索切换节点。首先,确定转发DDAG协议报文的DDAG路径。具体地,第二路由节点根据第一路由节点的标识、数据报文的目的路由节点的标识、以及第二路由节点的上一跳路由节点的到切换节点的cost值由高到低的顺序,确定DDAG路径。DDAG是一种按需路由协议,第二路由节点可以不维持路由表,直接在转发层面通过一定的尝试,搜索到切换节点。按照cost值由高到低的顺序搜索切换节点,类似于水从高山流下的过程。

  具体实现中,S103可以包括以下步骤:所述第二路由节点向相邻的路由节点发送所述DDAG协议报文,并将所述相邻的路由节点的cost值设置为设定值;当所述第二路由节点的cost值小于所述相邻的路由节点的cost值时,将所述第二路由节点至所述相邻的路由节点的路径的方向反转;和/或当所述第二路由节点不存在出口路径时,将所述第二路由节点的cost值增加一个单位,并且所述第二路由节点将所有指向所述第二路由节点的入口路径的方向反转;以及所述第二路由节点确定cost值从高到低所经过的一个或多个路由节点构成的路径为所述DDAG路径。

  如图8a~图8g所示,为示例的一种搜索切换节点的过程示意图,在图8a中,故障节点A(即本实施例中的第一路由节点)向任一邻居节点发送DDAG协议报文,例如向节点B发送DDAG协议报文,并将自身的cost值设置为最大值,例如255。节点B在收到DDAG协议报文后,判断自身是否满足路径切换条件,如果不满足,则向邻居节点C转发上述DDAG协议报文,并默认将节点B的cost值设置为2。节点C收到上述DDAG协议报文后,将节点C的cost值也默认设置为2,然后向邻居节点A转发DDAG协议报文,结果发现节点A的cost值比自身的cost值大,则将节点C向节点A的链路反转。即节点C不能向节点A发送DDAG协议报文。经过上述链路反转,节点C就不存在出口路径了(即节点C为sink节点),则将节点C的另一条路径进行反转,并将cost值加1,即变为3。然后,节点B向节点D发送DDAG协议报文,节点D满足路径切换条件,节点D可以作为切换节点。由此形成了节点C——节点B——节点D的DDAG路径。

  进一步地,为了加速路由收敛,一个节点有多个邻居时,可以通过向每个邻居都发送一个DDAG协议报文,以加快路由收敛。如图9所示,节点B可以同时向节点C和节点D发送DDAG协议报文。可以将其中任意一个节点排除在DDAG路径之外,则不搜索该节点,可以将该节点的cost值设置为最大值,例如255。如图9所示,如果不搜索节点D,可以将节点D的cost值设置为255,则节点B仅存在节点B——节点C一个链路方向;如果不搜索节点C,可以将节点C的cost值设置为255,则节点B仅存在节点B——节点D一个链路方向。

  进一步地,为了提高搜索效率,减少DDAG协议报文的数量,当多个数据报文经过同一个故障节点发送时,如图10所示,可以在一个DDAG协议报文中携带上述多个数据报文的标识、故障节点的节点标识、多个数据报文的源节点标识和目的节点标识等。发送一个DDAG协议报文,搜索多个数据报文对应的切换节点,当搜索到其中任一个数据报文对应的切换节点时,则停止对该数据报文的切换节点的搜索,直到搜索到所有数据报文的切换节点。即这多个数据报文共享故障节点信息和DDAG寻路信息。具体地,可以将该数据报文的标识、该数据报文的源节点标识和目的节点标识从DDAG协议报文中删除。

  进一步地,一般情况下,路由的往返路径是重合的,可以朝向原来转发数据报文的路径的反方向发送DDAG协议报文,即第一路由节点向其上一跳路径节点转发DDAG协议报文,这样很大概率可以直接发现切换节点。具体地,使用源网络协议(source IP,SIP)查路由,将得到的下一跳作为优先探索的路径。如图11所示,假设原来是由节点A——B——C发送数据报文,在节点C处发生故障,则节点C可以按照节点C——B——A的链路方向发送DDAG协议报文,并且将节点C的cost值设置为255,节点B的cost值设置为2。

  进一步地,寻路报文可以向流量入接口方向寻路,且将故障节点cost值设置为最大值,例如,255。从而可以将DDAG搜索锁定在流量入接口方向,减小搜索范围。

  S104、所述第二路由节点在所述DDAG路径上转发所述DDAG协议报文。

  每一个第二路由节点接收到DDAG协议报文后,都要根据路径切换条件,判断自身是否满足上述路径切换条件,即判断自身是否存在到目的路由节点的冗余路径。如果不满足路径切换条件,则根据上述确定的DDAG路径,在DDAG路径上转发上述DDAG协议报文。如果满足路径切换条件,则将自身作为切换节点。

  S105、切换节点接收到DDAG协议报文后,所述切换节点根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、所述至少一个数据报文的标识以及所述路径切换条件,确定所述切换节点满足所述路径切换条件。

  当路由节点接收到DDAG协议报文后,根据上述第一路由节点的标识、数据报文的目的路由节点的标识、数据报文的标识以及路径切换条件,确定自身满足路径切换条件,即确定自身存在到目的路由节点的冗余路径,则确定该路由节点为切换节点。

  进一步地,路径切换条件还可以包括存在路径会经过故障节点。即路由节点如果存在到目的路由节点的冗余路径,进一步还存在到故障节点的路径,则该路由节点为切换节点。如图5所示,切换节点存在冗余路径——路径2,也存在到故障节点的路径——路径1。

  S106、所述切换节点根据所述至少一个数据报文的目的路由节点,将所述至少一个数据报文切换到所述冗余路径上发送。

  确定切换节点后,切换节点将数据报文切换到冗余路径上发送,从而可以保证数据报文的可靠传输。

  根据本申请实施例提供的一种路径切换方法,通过在确定的DDAG路径上发送DDAG协议报文,可以快速地搜索到切换节点,由切换节点进行路径切换,从而提高了数据报文传输的可靠性。

  图12为本申请实施例提供的又一种路径切换方法的流程示意图,示例性的,该方法可以包括以下步骤:

  S201、第一路由节点接收上一跳路由节点发送的至少一个数据报文。

  该步骤的具体实现可参考图7所示实施例的步骤S101。

  S202、当所述第一路由节点不能向下一跳路由节点发送所述至少一个数据报文时,所述第一路由节点发送面向目的地的DDAG协议报文。

  该步骤的具体实现可参考图7所示实施例的步骤S102。

  S203、第二路由节点获取无环代理(loop-free alternate,LFA)路径和存在所述LFA路径的路由节点,其中,存在所述LFA路径的路由节点为起始路由节点。

  本实施例中,有些第二路由节点可能无法计算出LFA路径(或者称“保护路径”)。本实施例中,假设某一个第二路由节点可以计算出LFA路径,则该第二路由节点称为LFA路径的起始路由节点。该第二路由节点获取计算出的LFA路径。如图13所示的通过LFA路径转发数据报文的示意图,供应商的边缘(provider edge,PE)节点为起始路由节点,PQ节点为切换节点。

  S204、所述第二路由节点生成DDAG域,其中,所述DDAG域包括所述起始路由节点和所述起始路由节点的至少一个下游节点,所述下游节点无法计算出LFA路径。

  该第二路由节点,即起始路由节点,生成DDAG域。在该DDAG域内,除起始路由节点外,其它为起始路由节点的下游节点,这些下游节点无法计算出LFA路径。如图13所示,节点A、节点B为起始路由节点的下游节点。DDAG域为DDAG协议报文的转发路径。

  S205、所述第二路由节点在所述DDAG域内将所述DDAG报文发送至所述起始路由节点。

  下游节点在DDAG域内将DDAG报文转发至起始路由节点。如图13所示,节点A将报文转发给节点B,然后,节点B将报文转发给PE。

  S206、切换节点切换到LFA路径发送所述至少一个数据报文。

  LFA路径为通往目的路由节点的唯一路径,切换节点通过该LFA路径将数据报文发送至目的路由节点。如图13所示,切换节点即PQ节点,PQ节点可以将数据报文通过LFA路径发送至目的路由节点。

  根据本申请实施例提供的一种路径切换方法,可以通过LFA路径转发数据报文,该LFA路径为通往目的路由节点的一条冗余路径,然而,LFA路径的起始路由节点的下游路由节点无法计算出LFA路径,因此,生成一个DDAG域,下游路由节点在该DDAG域内将DDAG协议报文发送至起始路由节点,从而搜索到起始路由节点为切换节点,保证可靠地搜索到切换节点。

  基于上述实施例中的路径切换方法的同一构思,如图14所示,本申请实施例还提供一种第一路由节点100,该第一路由节点100可应用于上述图7和图12所示的路径切换方法中。该第一路由节点100包括:接收单元11和发送单元12。示例性的:

  接收单元11,用于接收上一跳路由节点发送的至少一个数据报文;

  发送单元12,用于当第一路由节点不能向下一跳路由节点发送所述至少一个数据报文时,发送面向目的地的有向无环图DDAG协议报文,其中,所述DDAG协议报文用于搜索满足路径切换条件的切换节点,所述路径切换条件包括到所述至少一个数据报文的目的路由节点存在冗余路径,所述DDAG协议报文包括所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识以及所述至少一个数据报文的标识。

  有关上述接收单元11和发送单元12更详细的描述可以参考上述图7和图12所示的方法实施例中的相关描述得到,这里不加赘述。

  根据本申请实施例提供的一种第一路由节点,第一路由节点在发生故障时,发送DDAG协议报文,快速搜索切换节点,以通过切换节点及时地转发报文,从而提高了数据报文传输的可靠性。

  基于上述实施例中的路径切换方法的同一构思,如图15所示,本申请实施例还提供一种第二路由节点200,该第二路由节点200可应用于上述图7和图12所示的路径切换方法中。该第二路由节点200包括:接收单元21、第一确定单元22、发送单元23;还可以包括判断单元24、第二设置单元25、搜索单元26、获取单元27和生成单元28。示例性的:

  接收单元21,用于接收来自第二路由节点的上一跳路由节点的面向目的地的有向无环图DDAG协议报文,其中,所述DDAG协议报文用于搜索满足路径切换条件的切换节点,所述路径切换条件包括到至少一个数据报文的目的路由节点存在冗余路径,所述DDAG协议报文包括所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识以及所述至少一个数据报文的标识;

  第一确定单元22,用于根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、以及所述第二路由节点的上一跳路由节点的到切换节点的代价cost值由高到低的顺序,确定DDAG路径;

  发送单元23,用于在所述DDAG路径上转发所述DDAG协议报文。

  在一个实现中,判断单元24,用于根据所述路径切换条件,判断所述第二路由节点是否满足所述路径切换条件;

  所述发送单元23,还用于当所述第二路由节点不满足所述路径切换条件时,在所述DDAG路径上转发所述DDAG协议报文。

  在又一个实现中,所述发送单元23,用于向相邻的路由节点发送所述DDAG协议报文;

  所述第一确定单元22,包括:

  第一设置单元221,用于将所述相邻的路由节点的cost值设置为设定值;

  反转单元222,用于当所述第二路由节点的cost值小于所述相邻的路由节点的cost值时,将所述第二路由节点至所述相邻的路由节点的路径的方向反转;和/或当所述第二路由节点不存在出口路径时,将所述第二路由节点的cost值增加一个单位,并且所述第二路由节点将所有指向所述第二路由节点的入口路径的方向反转;

  第二确定单元223,用于确定cost值从高到低所经过的一个或多个路由节点构成的路径为所述DDAG路径。

  在又一个实现中,所述发送单元23,还用于向多个相邻的路由节点发送所述DDAG协议报文;

  第二设置单元25,用于将所述DDAG路径之外的相邻的路由节点的cost值设置为最大值。

  在又一个实现中,搜索单元26,用于当搜索到所述至少一个数据报文中的其中一个数据报文对应的切换节点时,停止对所述其中一个数据报文的切换节点的搜索。

  在又一个实现中,所述第二路由节点为所述第一路由节点的上一跳路由节点。

  在又一个实现中,获取单元27,用于获取无环代理LFA路径和存在所述LFA路径的路由节点,其中,存在所述LFA路径的路由节点为起始路由节点;

  生成单元28,用于生成DDAG域,其中,所述DDAG域包括所述起始路由节点和所述起始路由节点的至少一个下游节点,所述下游节点无法计算出LFA路径;

  所述发送单元23,还用于在所述DDAG域内将所述DDAG报文发送至所述起始路由节点。

  有关上述各单元更详细的描述可以参考上述图7和图12所示的方法实施例中的相关描述得到,这里不加赘述。

  根据本申请实施例提供的一种第二路由节点,通过在确定的DDAG路径上发送DDAG协议报文,可以快速地搜索到切换节点,由切换节点进行路径切换,从而提高了数据报文传输的可靠性。

  基于上述实施例中的路径切换方法的同一构思,如图16所示,本申请实施例还提供一种切换节点300,该切换节点300可应用于上述图7和图12所示的路径切换方法中。该切换节点300包括:接收单元31、确定单元32、发送单元33。示例性的:

  接收单元31,用于接收面向目的地的有向无环图DDAG协议报文,其中,所述DDAG协议报文用于搜索满足路径切换条件的切换节点,所述路径切换条件包括到至少一个数据报文的目的路由节点存在冗余路径,所述DDAG协议报文包括所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识以及所述至少一个数据报文的标识;

  确定单元32,用于根据所述第一路由节点的标识、所述至少一个数据报文的目的路由节点的标识、所述至少一个数据报文的标识以及所述路径切换条件,确定所述切换节点满足所述路径切换条件;

  发送单元33,用于根据所述至少一个数据报文的目的路由节点,将所述至少一个数据报文切换到所述冗余路径上发送。

  在一个实现中,所述切换节点为无环代理LFA路径的起始路由节点;

  所述发送单元33,还用于切换到无环代理LFA路径发送所述至少一个数据报文。

  根据本申请实施例提供的一种切换节点,切换节点判断自身满足路径切换条件,则将数据报文切换到冗余路径上发送,从而提高了数据报文传输的可靠性。

  本申请实施例还提供一种路由节点,图17为本申请实施例提供的一种路由节点的结构示意图。该路由节点400包括物理接口41和处理器42。物理接口41用于收发DDAG协议报文。处理器42用于执行图7或图12中第一路由节点、第二路由节点或切换节点所执行的方法步骤。

  物理接口41的数量可以为一个或多个。物理接口41可以包括无线接口和/或有线接口。例如,无线接口可以包括WLAN接口,蓝牙接口,蜂窝网络接口或其任意组合。有线接口可以包括以太网接口、异步传输模式接口、光纤通道接口或其任意组合。以太网接口可以为电接口或光接口。物理接口41并不一定包括(尽管通常包括)以太网接口。

  处理器42的数量可以为一个或多个。处理器42包括中央处理器,网络处理器,图形处理器(graphics processing unit,GPU),专用集成电路,可编程逻辑器件或其任意组合。上述PLD可以是复杂可编程逻辑器件,现场可编程门阵列,通用阵列逻辑或其任意组合。处理器42可以包括控制面421和转发面422。控制面421和转发面422可以由独立的电路实现,也可以整合在一个电路中。例如,处理器42为多核CPU。多个核中的一个或一些实现控制面421,其他的核实现转发面422。又例如,控制面421由CPU实现,转发面422由NP,ASIC,FPGA或其任意组合实现。又例如,路由节点为框式网络设备,控制面421由主控卡实现,转发面422由线卡实现。又例如,控制面421和转发面422都由带控制面能力的NP实现。

  所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

  在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

  作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

  在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件或固件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、双绞线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何介质或者是包含一个或多个介质集成的服务器、数据中心等数据存储设备。该介质可以是只读存储器(read-only memory,ROM),或随机存取存储器(randomaccess memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid statedisk,SSD)等。

《一种路径切换方法及节点、系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)