具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
为便于描述本发明实施例的技术方案,首先对本发明下列各详述实施例中出现的术语进行说明。本发明下列各详述实施例中,分离路径包括二条路径:第一路径和第二路径,工作路径即为第一路径,保护路径即为第二路径;工作路径(第一路径)所经的域序列即为第一域系列,保护路径(第二路径)所经的域序列即为第二域系列。第一域序列和第二域序列均包括的域称为共同域,而仅第一域序列或第二域序列包括的域称为分离域;第一域序列和第二域序列包括的第一个域均为源节点所在的域(以下称为源域),而第一域序列和第二域序列包括的最后一个域均为宿节点所在的域(以下称为宿域);源域和宿域可认为是共同域的特例,即:在第一域序列或第二域序列中,没有上游域的共同域即为源域,而没有下游域的共同域即为宿域,因此当本域属性为共同域时,可根据本域的相邻域确定本域是否为源域或宿域。其中,第一域序列和第二域序列至少包括一个分离域。
以第一域序列或第二域序列预先定义的路径顺序,与本域相邻的域即为相邻域,相邻域可包括相邻上游域和/或相邻下游域;与本域相邻且位于本域上游的域即为相邻上游域;与本域相邻且位于本域下游的域即为相邻下游域;当本域为源域时,本域没有相邻上游域;当本域为宿域时,本域没有相邻下游域。当本域的相邻域为多个时,位于本域同侧的相邻域即为同向相邻域,如:二个相邻域均位于本域的上游且与本域相邻;或二个相邻域均位于本域下游并与本域相邻。
每个域中包括多个节点。本域与相邻上游域连接的边界节点即为本域入口节点;本域与相邻下游域连接的边界节点即为本域出口节点。本域将其他 域的计算结果临时合并到本域拓扑信息后,根据合并后的拓扑信息重新确定的边界节点为拓扑边界节点;拓扑边界节点可包括拓扑入口节点或拓扑出口节点;拓扑入口节点即为根据合并后的拓扑信息重新确定的入口边界节点;拓扑出口节点即为根据合并后的拓扑信息重新确定的出口边界节点。
流量工程(Traffic Engineering,简称TE)中路径信息的获取可作为本发明实施例的一个应用场景。下述以本发明实施例在流量工程中路径信息计算中的应用为例,说明本发明实施例的技术方案。当网络中包括多个域(Doma in)时,可在每个域内部署一个路径计算单元(Pa th ComputationE1ement,以下简称PCE),用于进行自身负责域(Doma in)内(即:本域)的路径计算。每个PCE设有流量工程数据库(Traffic Engineering Database,以下简称TED),TED中保存了本域的拓扑信息和流量工程信息。为了获取源节点到宿节点之间的最短路径,需要计算路径信息的节点(即:路径计算客户端(Path Computation Client,以下简称PCC))发送包含路由计算参数信息的算路请求给PCE,由PCE根据自身TED存储的信息进行路径计算,并将计算结果反馈给PCC。当算路请求消息中的源节点(Src)所在的域,与宿节点(Dst)所在的域不同时,需要多个域配合进行路径计算。本发明实施例典型的应用场景为:当工作路径所经的第一域序列与保护路径所经的第二域序列不同时,进行分离路径的计算。
通常“路径分离”包含3种分离:节点分离,即要求工作路径和保护路径不经过同个节点(源、宿节点除外);链路分离,即要求工作路径和保护路径不经过同一段链路;和共享风险链路组(Shared Risk Link Group,SRLG)分离,即要求工作路径和保护路径不经过同一个共享风险链路组。在计算分离路径时,可以指定1种或多种路径分离约束。以下以节点分离为路径分离约束条件(假设路径计算的约束条件是:工作路径和保护路径不经过相同的节点),说明本发明实施例的技术方案。
图1a为本发明路径信息的获取方法第一实施例的流程图。本实施例的执行主体可为在域中部署的PCE。如图1a所示,本实施例包括:
步骤11、根据接收的算路请求消息,获取本域属性和相邻域属性;该算路请求消息包括第一路径所经的第一域序列信息和第二路径所经的第二域序列信息,第一域序列信息或第二域序列信息至少包括一个分离域。
源节点可预先获取了第一路径(工作路径)所经的第一域序列信息以及第二路径(保护路径)所经的第二域序列信息,例如:第一域序列信息和第二域序列信息可由网管预先分配等。第一域序列信息与第二域序列信息不同,二者至少包括一个分离域。之后,源节点可将自身作为PCC向源域部署的PCE(以下称为源域PCE)发送算路请求消息,该算路请求消息中携带第一域序列信息与第二域序列信息。源域PCE接收到算路请求消息后,各域PCE将顺着第一域序列与第二域序列预先定义的顺序,依次转发算路请求消息,直至宿域PCE接收到算路请求消息。本域PCE在接收到算路请求消息时,可获取本域属性和相邻域属性,例如:本域PCE比较第一域序列信息和第二域序列信息,当第一域序列信息和第二域序列信息均包括本域或相邻域时,本域属性或相邻域属性为共同域;否则,本域属性或相邻域属性为分离域。
步骤12、当本域属性为分离域时,计算本域入口节点和本域出口节点之间的抽象路径;将抽象路径信息发送给相邻域。
步骤13、当本域属性为共同域、且至少一个相邻域属性为分离域时,根据接收的来自相邻域的抽象路径信息确定拓扑边界节点,计算拓扑边界节点与宿节点或源节点之间的分离路径;并将计算结果发送给相邻域或源节点。
如果完成步骤13的PCE所在的域是源域,那么源域PCE可根据计算结果选择最优的分离路径,并反馈给源节点。
发明人在实现本发明实施例过程中发现,如果将BRPC方法直接应用到工作路径和保护路径所经的域序列不同时分离路径的计算,虽然也可能获取分离路径信息,但至少存在着分离路径计算成功率低的技术缺陷。例如:
现有技术BRPC方法可用于计算单条路径信息。如果基于BRPC采用串行方法也可能获取分离路径信息,即:采用计算单条路径的方法首先计算工作路径,完成工作路径计算后,再排除工作路径经过的节点和链路,进行保护 路径的计算。但该串行方法可能存在路径陷阱(Trapping)问题。图1b为现有技术基于BRPC的串行方法计算分离路径的应用场景系统示意图。图中大写字母表示系统中的节点。如图1b所示,假设路径分离约束条件为工作路径和保护路径不经过相同的节点。如果采用串行方法计算工作路径时,选用了A-B-C这条路径,由于F-B-G这条路径已经不能使用了,那么将导致保护路径计算失败。实际上图1b所示的系统中分离路径是存在的,例如:工作路径选用A-D-E-C,保护路径选用F-B-G;但由于在工作路径计算时没有综合考虑工作路径和保护路径所需经过的节点,因此导致实际存在分离路径,但无法成功获取的技术缺陷,从而产生路径陷阱(trapping)问题,分离路径计算成功率低。
如果基于BRPC采用并行方法,也有可能获取分离路径。该方法在共同域中并行计算工作路径和保护路径,并将结果分别发送给工作路径和保护路径的上游相邻域的PCE;在分离域中PCE按照BRPC的方法计算本域到宿节点的最优工作路径或保护路径。但该方法可能实际存在分离路径,但无法成功获取,即“实际存在分离路径但算不出来”的情况。图1c为现有技术基于BRPC的并行方法计算分离路径的应用场景系统示意图。图中大写字母表示系统中的节点;链路上的数字表示链路代价。如图1c所示,PCE1向PCE2和PCE3分别发送算路请求(PCEReq)消息;PCE2和PCE3分别向PCE4发送算路请求(PCEReq)消息。PCE4计算本域入口节点到宿节点的路径:B-Dst,C-Dst,D-Dst,并通过算路响应(PCERep)消息返回给PCE2和PCE3。对PCE2,把B-Dst,C-Dst,D-Dst临时合并到本域的拓扑中,再计算I-Dst和J-Dst的路径,分别是I-H-B-A-Dst(链路代价之和为8)和J-H-B-A-Dst(链路代价之和为7),PCE2选择链路代价较小的路径J-H-B-A-Dst作为最优的路径并反馈给PCE1。PCE3把B-Dst,C-Dst,D-Dst路径信息临时合并到本域的拓扑中,再计算G-Dst的路径。由于G-Dst有2条路径G-E-C-A-Dst(链路代价之和为8)和G-F-B-Dst(链路代价之和为20)。通过比较代价大小,PCE3最终会选择G-E-C-A-Dst并反馈给PCE1。如此计算之后,PCE1发现无论本域 如何挑选路径,工作路径和保护路径都经过了A点,于是找不到分离路径,算路失败。
实际上,图1c所示的系统中,分离路由是实际存在的,例如:保护路径选择Src-M-G-F-D-Dst即可避免与工作路径的冲突,但BRPC却算不出来。其根本的原因在于,工作路径经过的分离域PCE和保护路径经过的分离域PCE各自独立选择最优路径,这2条路径在共同域中很可能是相互冲突的。因此存在分离路径计算成功率低的的技术缺陷。
本发明实施例路径信息的获取方法,通过将分离域中与路径相关的拓扑信息抽象出来,合并到相邻的共同域中;合并后,可从逻辑上认为第一路径(工作路径)所经的第一域序列和第二路径(保护路径)所经的第二域序列相同;之后,仅需对现有获取路径方法上进行改进,即可获取第一路径(工作路径)所经的第一域序列和第二路径(保护路径)所经的第二域序列不同情形下的分离路径信息。此外,由于本实施例在共同域计算路径时,可综合考虑第一域序列包括分离域和第二域序列包括分离域的信息选取最优路径,因此,可有效避免所选取的分离路径中第一路径(工作路径)和第二路径(保护路径)的相互冲突,克服了现有技术存在的“实际存在分离路径但算不出来”的技术缺陷,从而明显提高了分离路径计算的成功率。
在本实施例技术方案的基础上,综合考虑第一域序列和第二域序列包括的各域PCE进行的操作,将PCE根据本域属性将分离域中与路径相关的拓扑信息抽象出来,合并到相应的相邻共同域的操作称为“抽象合并”;将根据合并后的逻辑域序列进行路径计算的操作称为“计算处理”。“抽象合并”和“计算处理”可在路径信息获取方法的不同分流程中完成。
例如图1d-图1f中,假设源节点所在的域为域1(域1为源域),宿节点所在的域为域7(域7为宿节点);第一路径(工作路径)所经的第一域序列为(1,2,4,5,7);第二路径(保护路径)所经的第二域序列为(1,3,4,6,7)。通过对比第一域序列和第二域序列,可知域1、域4和域7的属性均为共同域;域2、域3、域5和域6的属性均为分离域。至少可采用 以下3种方式进行相应处理:
(1)“抽象合并”在算路请求(PCEReq)流程中完成,而“计算处理”在算路响应流程中完成(以下称为“前向合并、后向计算”)。图1d为本发明“前向合并、后向计算”应用场景系统实施例示意图。
在算路请求(PCEReq)流程中,把域2和域3中与路径相关的拓扑抽象出来合并到域4中,并看成是一个整体域4’;把域5和域6与路径相关的拓扑抽象出来合并到域7中,并看成是一个整体域7’。抽象合并后,可以从逻辑上认为第一路径(工作路径)和第二路径(保护路径)所经的域序列相同,都是域1,域4’和域7’(1,4’,7’)。在算路响应(PCERep)流程中,再进行分离路径计算。
(2)“抽象合并”和“计算处理”均在算路响应流程中完成(以下称为“后向合并、后向计算”)。图1e为本发明“后向合并、后向计算”应用场景系统实施例示意图。
在算路响应(PCERep)流程中,把域5和域6中与路径相关的拓扑抽象出来合并到域1中,并看成是一个整体域1’;把域5和域6与路径相关的拓扑抽象出来合并到域4中,并看成是一个整体域4’;同时进行分离路径的计算。抽象合并后,可以从逻辑上认为第一路径(工作路径)和第二路径(保护路径)所经的域序列相同,都是域1’,域4’和域7(1’,4’,7)。
(3)“抽象合并”和“计算处理”均在算路请求流程中完成(以下称为“前向合并、前向计算”)。图1f为本发明“前向合并、前向计算”应用场景系统实施例示意图。
在算路请求(PCEReq)流程中,把域2和域3中与路径相关的拓扑抽象出来合并到域4中,并看成是一个整体域4’;把域5和域6与路径相关的拓扑抽象出来合并到域7中,并看成是一个整体域7’;同时进行分离路径的计算。抽象合并后,可以从逻辑上认为第一路径(工作路径)和第二路径(保护路径)所经的域序列相同,都是域1,域4’和域7’(1,4’,7’)。
图2a为本发明路径信息的获取方法第二实施例的算路请求流程图。图 2b为本发明路径信息的获取方法第二实施例的算路响应流程图。本发明路径信息的获取方法第二实施例是通过“前向合并,后向计算”的方案获取分离路径信息。
本实施例算路请求流程(“前向合并”)如图2a所示,包括:
步骤21a、当前域PCE接收算路请求消息(PCEReq)。
该算路请求消息包括工作路径所经的第一域序列信息和保护路径所经的第二域序列信息,其中第一域序列或第二域序列至少包括一个分离域,即:工作路径和保护路径所经的域序列不同。
步骤22a、当前域PCE根据接收的算路请求消息中包括的第一域序列信息和第二域序列信息,获取本域属性;如果本域属性为分离域,执行步骤23a;如果本域属性为共同域,执行步骤28a;如果本域属性为源域,执行步骤211a;如果本域属性为宿域,执行步骤212a。
步骤23a、当前域PCE根据接收的算路请求消息中包括的第一域序列信息和第二域序列信息,获取相邻上游域属性;如果相邻上游域属性为共同域,执行步骤25a;如果相邻上游域属性为分离域,执行步骤24a。
步骤24a、当前域PCE计算本域入口节点到本域出口节点的抽象路径,将该抽象路径信息和算路请求消息发送给相邻下游域。当相邻下游域的PCE接收到算路请求消息时,重复执行本流程。
抽象路径的信息可以封装在算路请求消息中下发给下游域。
步骤25a、当前域PCE接收相邻上游域发送的抽象路径信息,将接收到的抽象路径信息临时合并本域拓扑信息。
步骤26a、当前域PCE计算拓扑入口节点到本域出口节点的抽象路径信息,其中,该拓扑入口节点即为添加有抽象路径信息的本域拓扑信息中的入口节点。
步骤27a、当前域PCE将步骤26a计算获得的抽象路径信息和算路请求消息发送给相邻下游域,并在本域拓扑信息中,删除步骤25a临时合并的抽象路径信息。当相邻下游域接收到算路请求消息时,重复执行本流程。
步骤28a、当前域PCE根据接收的算路请求消息中包括的第一域序列信息和第二域序列信息,获取相邻上游域属性;如果相邻上游域属性为分离域,执行步骤29a;如果相邻上游域属性为共同域,执行步骤211a。
步骤29a、当前域PCE等待直至接收到另一个相邻上游域(分离域)发送的算路请求消息和抽象路径信息。
步骤210a、当前域PCE分别保存二个相邻上游域(分离域)发送的抽象路径信息,并向相邻下游域转发算路请求消息。当相邻下游域接收到算路请求消息时,重复执行本流程。
步骤211a、当前域PCE向相邻下游域转发算路请求消息。当相邻下游域接收到算路请求消息时,重复执行本流程。
步骤212a、当前域PCE根据接收的算路请求消息中包括的第一域序列信息和第二域序列信息,获取相邻上游域属性;如果相邻上游域属性为分离域,执行步骤213a;如果相邻上游域属性为共同域,执行步骤214a。
步骤213a、当前域PCE如果发现本域具有二个相邻上游域且至少一个相邻上游域的属性为分离域时,本域PCE等待直至接收到另一个相邻上游域发送的信息;保存来自属性为分离与的相邻上游域(分离域)发送的抽象路径信息;如果二个相邻上游域的属性均为分离域时,当前域PCE需分别保存二个相邻上游域(分离域)发送的抽象路径信息。
步骤214a、结束本流程,转入图2b所示的算路响应流程。
本实施例算路响应流程(“后向计算”)如图2b所示,包括:
步骤21b、宿域PCE是否存有抽象路径信息,如果有执行步骤22b;如果没有执行步骤24b。
步骤22b、宿域PCE将存储的抽象路径信息临时合并本域拓扑信息,计算拓扑入口节点到宿节点的路径信息。
步骤23b、宿域PCE在本域拓扑信息中删除步骤22b临时合并的抽象路径信息,向相邻上游域发送算路响应消息(PCERep),该算路响应消息携带有步骤22b获取的路径信息;当相邻上游域接收到算路响应消息时,跳转执 行步骤25b。
步骤24b、宿域PCE计算本域入口节点到宿节点的路径信息,向相邻上游域发送携带有该路径信息的算路响应消息;当相邻上游域接收到算路响应消息时,跳转执行步骤25b。
步骤25b、当前域PCE接收算路响应消息,获取本域属性;如果本域属性为分离域,执行步骤26b;如果本域属性是共同域时,执行步骤27b;如果相邻上游域属性为源域,执行步骤214b。
步骤26b、当前域PCE向相邻上游域转发算路响应消息。当相邻上游域接收到算路响应消息时,跳转执行步骤25b。
步骤27b、当前域PCE获取相邻上游域属性;如果相邻上游域属性为分离域,执行步骤28b;如果相邻上游域属性为共同域,执行步骤211b。
步骤28b、当前域PCE将接收的算路响应消息中包括的路径信息以及存储的抽象路径信息临时合并本域拓扑信息。
步骤29b、当前域PCE计算拓扑入口节点到宿节点的路径信息。
步骤210b、当前域PCE在本域拓扑信息中删除步骤28b临时合并的相应路径信息(包括接收的算路响应消息中包括的路径信息以及存储的抽象路径信息),向相邻上游域发送算路响应消息,该算路响应消息携带有步骤29b获取的路径信息;当相邻上游域接收到算路响应消息时,跳转执行步骤25b。
步骤211b、当前域PCE将接收的算路响应消息中包括的路径信息临时合并本域拓扑信息。
步骤212b、当前域PCE计算本域入口节点到宿节点的路径信息;
步骤213b、当前域PCE向相邻上游域发送携带有步骤212b计算获得的该路径信息的算路响应消息,并删除步骤211b临时合并的相应路径信息;当相邻上游域接收到算路响应消息时,跳转执行步骤25b。
步骤214b、当前域PCE将接收的算路响应消息中包括的路径信息临时合并本域拓扑信息。
如果当前域PCE存在有二个相邻下游域时,当前域PCE将接收到二个相 邻下游域发送的路径响应消息,此时,保留一个路径响应消息,并丢弃另一路径响应消息(图中未示出)。
步骤215b、当前域PCE计算从源节点到宿节点的分离路径信息,根据计算结果选择最优路径信息发送给源节点,并删除步骤214b临时合并本域拓扑信息中的路径信息,结束本流程。
本实施例在算路请求流程中,将分离域中与路径相关的拓扑信息抽象出的抽象路径合并到属性为共同域的相邻下游域中,相邻下游域在算路响应流程中,将分离域的抽象路径合并到本域拓扑信息中,综合考虑第一域序列包括的分离域和第二域序列包括的分离域的抽象路径信息,计算并选取最优分离路径信息,从而有利于提高了分离路径计算的成功率。
图3a为本发明路径信息的获取方法第三实施例的网络结构图。如图3a所示的网络结构中,假设:源节点(Src)位于域1(Domain1)中;宿节点(Dst)位于域6(Domain6)中;工作路径所经的第一域序列为域1、域2、域5和域6(1,2,5,6);保护路径所经的第二域序列为域1、域3、域4、域5和域6(1,3,4,5,6);因此,域1属性为共同域且为源域,域6属性为共同域且为宿域,域2、域3和域4属性均为分离域,域5属性为共同域。如果选取域4作为当前域,那么位于域4上游且与域4相邻的域3即为域4的相邻上游域,而位于域4下游且与域4相邻的域5即为域4的相邻下游域。每个域中可包括多个节点,在图中采用大写字母进行标识(图中仅示出了各域包括的入口节点和出口节点)。从相邻上游域(域3)进入域4的入口边界处的节点Q和节点R即为域4的入口节点(本域入口节点);从域4内进入相邻下游域(域5)的出口边界处的节点S和节点T即为域4的出口节点(本域出口节点)。在每个域中均部署一个PCE,用于处理域内的路径计算。在域1、域2、域3、域4、域5和域6部署的PCE依次标识为PCE1、PCE2、PCE3、PCE4、PCE5和PCE6。
以下结合图3a所示的网络结构,并参照图2a和图2b所示的流程图,说明各PCE获取路径信息的方法。
步骤31-步骤37为算路请求流程(“前向合并”)中各PCE的处理方法。
步骤31、源节点(Src)向PCE1发送算路请求(PCEReq)消息,该算路请求消息中包括工作路径所经的第一域序列信息,和保护路径所经的第二域序列信息。
步骤32、PCE1获取本域(域1)属性为源域,分别向PCE2和PCE3转发算路请求(PCEReq)消息,用于请求PCE2和PCE3进行路径计算。
步骤33、PCE2获取本域(域2)属性为分离域,计算本域入口节点(节点C和节点D)到本域出口节点(节点E、节点F和节点G)的抽象路径,分别表示为:C-E、C-F、C-G、D-E、D-F和D-G(如图3b所示);将该抽象路径信息以及路径请求消息发送给相邻下游域PCE5;其中抽象路径信息可包括各路径以及各路径相应的链路代价。
步骤34、PCE3获取本域(域3)属性为分离域,计算本域入口节点(节点M和节点N)到本域出口节点(节点0和节点P)的抽象路径,分别表示为:M-O、M-P、N-O和N-P(如图3c所示);将该抽象路径信息以及路径请求消息发送给相邻下游域PCE4。
步骤33和步骤34没有时序关系的限制。
步骤35、PCE4获取本域(域4)属性为分离域、且本域的相邻上游域(域3)属性也为分离域,将接收到的抽象路径信息临时合并本域拓扑信息(如图3d所示)。PCE4完成拓扑信息临时合并后,域3的入口节点(节点M和节点N)即为拓扑入口节点。PCE4计算拓扑入口节点(节点M和节点N)到本域出口节点(节点S和节点T)的抽象路径信息,分别表示为:M-S、M-T、N-S和N-T(如图3e所示)。之后,PCE4将计算获得的抽象路径信息(可包括这4条路径以及各路径的链路代价)以及路径请求消息发送给相邻下游域PCE5;最后,PCE4把临时合并的抽象路径信息删除。
步骤36、PCE5最终会收到2个算路请求消息(分别由PCE2和PCE4发送)。在收到第一个算路请求消息后,PCE5根据算路请求消息包括的二个域序列信息推断出本域属性为共同域、且本域的相邻上游域(域2和域4)属性均为 分离域,于是PCE5启动定时器等待另一相邻上游域发送的算路请求消息。如果定时器超时,但PCE5仍未接收到另一相邻上游域发送的算路请求消息,PCE5则向PCE1返回出错信息。如果在定时器预设的时间内收到另一相邻上游域发送的算路请求消息,PCE5将在接收二个算路请求消息时接收到的抽象路径信息(包括PCE2计算的抽象路径信息和PCE4计算的抽象路径信息)保存下来,并向PCE6转发算路请求消息。
步骤37、PCE6收到算路请求消息后,获取本域(域6)属性为宿域,因此不需要再发送转发算路请求消息,进入算路响应流程。
步骤38-步骤313为算路响应流程(“后向计算”)中各PCE的处理方法。
步骤38、PCE6首先计算本域的分离路径。PCE6所在域为宿域,且相邻上游域(域5)为共同域,PCE6上没有存储抽象路径信息,因此,PCE6计算本域入口节点对(Y,Z)到宿节点(Dst)之间的路径信息,分别表示为Y-Dst和Z-Dst,然后将该路径信息携带在算路响应消息(PCERep)中返回给相邻上游域PCE5。
图3a所示的网络结构中示出了域6包括二个入口节点的情形,该情形下组成入口节点对的方式只有一种。如果域6包括的入口节点多于二个,PCE6则需将域6任意二个入口节点进行两两组合,分别计算各种组合节点对到宿节点之间的路径信息(图中未示出)。例如:域6的入口节点包括Y1、Y2和Y3,那么,形成本域入口节点对的组合可包括(Y1,Y2)、(Y1,Y3)和(Y2,Y3)。PCE6分别计算三组入口节点对中各节点到宿节点的路径信息,形成三组分离路径,分别可表示为Y1-Dst和Y2-Dst、Y1-Dst和Y3-Dst、Y2-Dst和Y3-Dst。完成计算后,PCE6将计算结果携带在算路响应消息(PCERep)中返回给相邻上游域PCE5。
由于在算路请求流程中,PCE5获取并存储了分离域PCE2和PCE4中与路径相关的抽象拓扑(即PCE2向PCE5发送的包括6个路径的抽象路径信息,和PCE4向PCE5发送的包括4个路径的抽象路径信息)。如果PCE5将这些拓 扑临时合并到本域中,则可以从逻辑上认为工作路径和保护路径都经过域1、域5’和域6,即工作路径和保护路径所经的域序列相同(如图3f所示)。
步骤39、PCE5将接收的来自PCE6的算路响应消息中包括的路径信息,以及PCE5自身存储的来自PCE2和PCE4的抽象路径信息,临时合并本域拓扑信息;并计算拓扑入口节点到宿节点的路径信息,执行步骤310。
其中步骤39可包括步骤391-步骤394:
步骤391、PCE5将存储的抽象路径信息临时合并本域拓扑信息。
此时,拓扑入口节点为节点C、节点D、节点M和节点N(C、D、M、N)(如图3g所示)。PCE5根据拓扑入口节点选取第一路径/第二路径入口节点对。该第一路径/第二路径入口节点对包括第一路径节点和第二路径节点,因此第一路径/第二路径入口节点对包括:(C、M)、(C、N)、(D、M)和(D、N)。
本步骤区别于工作路径和保护路径所经的域序列相同的现有技术,由于本实施例第一路径/第二路径入口节点对需包括第一路径节点和第二路径节点,因此不能选取(C、D)或(M、N)作为第一路径/第二路径入口节点对。
步骤392、PCE5将接收的来自PCE6的算路响应消息中包括的路径信息临时合并本域拓扑信息中(如图3h所示)。
步骤393、PCE5分别以(C,M)、(C,N)、(D,M)、(D,N)作为第一路径/第二路径入口节点对,计算第一路径/第二路径入口节点到宿节点(Dst)的分离路径,分别表示为(C-Dst、M-Dst)、(C-Dst、N-Dst)、(D-Dst、M-Dst)和(D-Dst、N-Dst)(如图3k所示)。
步骤391-步骤393示出了PCE6返回一组分离路径计算结果的信息,即Y-Dst和Z-Dst。
假设PCE6向PCE5返回三组分离路径计算结果(图中未示出):Y1-Dst和Y2-Dst、Y1-Dst和Y3-Dst、Y2-Dst和Y3-Dst,那么PCE5在进行路径计算时,需在选定的第一路径/第二路径入口节点对与PCE6返回的分离路径之间,分别进行计算,以便获取最优路径。
例如:PCE5以(C,M)作为第一路径/第二路径入口节点,计算从节点(C,M)到宿节点之间的分离路径。为保证路径计算的成功率,PCE5具体计算的方法可包括:
PCE5将(Y1-Dst、Y2-Dst)临时合并到本域拓扑信息中,计算分离路径:(C-Y1-Dst、D-Y2-Dst),再将(Y1-Dst、Y2-Dst)从本域拓扑信息中删除;
PCE5将(Y1-Dst、Y3-Dst)临时合并到本域拓扑信息中,计算分离路径:(C-Y1-Dst、D-Y3-Dst),再将(Y1-Dst、Y3-Dst)从本域拓扑信息中删除;
PCE5将(Y2-Dst、Y3-Dst)临时合并到本域拓扑信息中,计算分离路径:(C-Y2-Dst、D-Y3-Dst),再将(Y2-Dst、Y3-Dst)从本域拓扑信息中删除;
PCE5比较上述3组计算结果,根据计算结果选择最优分离路径信息,该路径作为以(C,M)作为第一路径/第二路径入口节点对时的最优分离路径,并分别发送给相邻上游域PCE2和PCE4。
采用类似的计算方法,PCE5将分别以(C,N),(D,M),(D,N)作为第一路径/第二路径入口节点对时的最优分离路径,并发送给相邻上游域PCE2和PCE4。
步骤394、PCE5删除步骤391和步骤392临时合并本域拓扑信息中的相应路径信息,并分别向相邻上游域PCE2和PCE4发送携带有步骤393计算获取的路径信息的算路响应消息,执行步骤310。
步骤310、PCE2的本域属性为分离域,当PCE2接收到PCE5发送的分离路径信息时,向相邻上游域PCE1直接转发该算路响应消息,不需要进行路径计算。
步骤311、PCE4的本域属性为分离域,当PCE4接收到PCE5发送的分离路径信息时,向相邻上游域PCE3直接转发该算路响应消息,不需要进行路径计算。
步骤310和步骤311之间没有时序的限制。
步骤312、PCE3的本域属性为分离域,当PCE3接收到PCE4转发的分离路径信息时,向相邻上游域PCE1直接转发该算路响应消息。
经过上述处理后,PCE1将收到2个算路响应消息(PCERep消息),分别来自PCE2和PCE3。PCE1可处理其中一个算路响应消息,而丢弃另一个算路响应消息。
步骤313、PCE1将接收的算路响应消息中包括的路径信息临时合并本域拓扑信息;计算从源节点到宿节点的分离路径信息,根据计算结果选择最优路径信息发送给源节点,并删除步骤临时合并本域拓扑信息中的路径信息。
具体的,步骤313可包括:
步骤3131、PCE1将(C-Dst、M-Dst)临时合并到本域拓扑信息中(如图3m所示),计算分离路径:(Src-C-Dst、Src-M-Dst),再将(C-Dst、M-Dst)从本域拓扑信息中删除。
步骤3132、PCE1把(C-Dst、N-Dst)临时合并到本域拓扑信息(如图3n所示)中,计算分离路径:(Src-C-Dst、Src-N-Dst),再将(C-Dst、N-Dst)从本域拓扑信息中删除。
步骤3133、PCE1把(D-Dst、M-Dst)临时合并到本域拓扑信息(如图30所示)中,计算分离路径:(Src-D-Dst、S rc-M-Dst),再将(D-Dst、M-Dst)从本域拓扑信息中删除。
步骤3134、PCE1把(D-Dst、N-Dst)临时合并到本域拓扑信息中(如图3p所示),计算分离路径:(Src-D-Dst、Src-N-Dst),再将(D-Dst、N-Dst)从本域拓扑信息中删除。
步骤3131-步骤3134之间没有时序的限制。
步骤3135、PCE1比较步骤3131-步骤3134的4组计算结果,根据计算结果选择最优分离路径信息发送给源节点。
本实施例在算路请求流程中,将分离域中与路径相关的拓扑信息抽象出的抽象路径,合并到属性为共同域的相邻下游域中,相邻下游域在算路响应流程中,将分离域的抽象路径合并到本域拓扑信息中,重新确定拓扑入口节点,在根据拓扑入口节点选取工作路径/保护路径节点对时,选取的各种可能组合的节点对中,每对节点对均包括了工作路径所经的节点和保护路径所经 的节点,因此,可有效避免共同域所选取的分离路径中工作路径和保护路径的相互冲突,从而明显提高了分离路径计算的成功率。
本发明路径信息的获取方法第四实施例是通过“后向合并,后向计算”的方案获取最优路径信息的;其中,“后向合并、后向计算”即为在算路响应流程中,将分离域中与路径相关的拓扑抽象出来,合并到非分离域中,并基于合并后的域序列,计算所需的路径信息。
本实施例在算路请求流程中,在域中部署的PCE不进行路径信息合并和路径计算,而是从源域开始,将接收到的算路请求消息,顺着工作路径所经的第一域序列和保护路径所经的第二域序列,依次向相邻下游域转发算路请求消息,直至宿域接收到该算路请求消息。该算路请求消息包括工作路径所经的第一域序列信息和保护路径所经的第二域序列信息,其中第一域序列或第二域序列至少包括一个分离域,即:工作路径和保护路径所经的域序列不同。各域在接收到算路请求消息时,均保存第一域序列信息和第二域序列信息。当宿域接收到该算路请求消息时,开始执行算路响应流程。
图4为本发明路径信息的获取方法第四实施例的算路响应流程图。本实施例分离域中,与分离路径相关的拓扑信息合并到非分离域,并基于合并后的域序列计算最优路径信息等处理均是在算路响应流程中完成的(“后向合并、后向计算”)。如图4所示,本实施例在算路响应流程中,包括:
步骤41、宿域PCE计算本域入口节点到宿节点的路径信息,向相邻上游域发送携带有宿域PCE的计算结果和算路响应消息。当相邻上游域接收到算路响应消息时,执行步骤42。
其中,该计算结果可以作为一个单独的消息上传,也可携带在算路响应消息中上传。以下均以计算结果封装在算路响应消息中进行上传为例,进行说明。
步骤42、当前域PCE接收算路响应消息,通过比较本域保存的第一域序列信息和第二域序列信息,获取本域属性;如果本域属性为分离域,执行步骤43;如果本域属性为共同域,执行步骤48。
步骤43、当前域PCE通过比较本域保存的第一域序列信息和第二域序列信息,获取相邻下游域属性;如果相邻下游域属性为共同域,执行步骤44;如果相邻下游域为分离域,执行步骤45。
步骤44、当前域PCE计算本域入口节点到本域出口节点的抽象路径,向相邻上游域发送算路响应消息,此时,该算路响应消息包括相邻下游域的计算结果和本域的抽象路径信息。当相邻上游域接收到算路响应消息时,执行步骤42。
步骤45、当前域PCE接收相邻下游域发送的抽象路径信息,将接收到的抽象路径信息临时合并本域拓扑信息。
步骤46、当前域PCE计算本域入口节点与拓扑出口节点之间的抽象路径,其中,该拓扑出口节点即为添加有抽象路径信息的本域拓扑信息中的出口节点。
步骤47、当前域PCE向相邻上游域发送算路响应消息,并在本域拓扑信息中删除步骤45临时合并的抽象路径信息;此时,该算路响应消息包括原携带的地址信息和本域计算的抽象路径信息。当相邻上游域接收到算路响应消息时,执行步骤42。
步骤48、当前域PCE通过比较本域保存的第一域序列信息和第二域序列信息,获取相邻下游域属性;如果相邻下游域属性为共同域,执行步骤49;如果相邻下游域为分离域,执行步骤411。
步骤49、当前域PCE将接收的算路响应消息中包括的路径信息临时合并到本域拓扑信息;当前域PCE计算本域入口节点到宿节点的路径信息,并在本域拓扑信息中删除临时合并的相应地址信息。
步骤410、当前域PCE获取本域属性是否为源域,如果本域属性为共同域但非源域,执行步骤414;如果本域属性为共同域且为源域,执行步骤416。
步骤411、当前域PCE如果发现本域具有二个相邻下游域且至少一个相邻上游域的属性为分离域时,本域PCE等待直至接收到另一个相邻下游域发送的算路响应消息,将接收的算路响应消息中包括的抽象路径信息临时合并 到本域拓扑信息;根据合并后的本域拓扑信息,确定拓扑出口节点;根据拓扑出口节点选择工作路径/保护路径出口节点对;该工作路径/保护路径出口节点对包括一个工作路径节点和一个保护路径节点。
步骤412、当前域PCE获取本域属性是否为源域,如果本域属性为共同域但非源域,执行步骤413;如果本域属性为共同域且为源域,执行步骤415。
步骤413、计算本域入口节点经过工作路径/保护路径出口节点对,到宿节点的最短分离路径。
步骤414、当前域PCE将计算结果封装在算路响应消息中发送给相邻上游域。当相邻上游域接收到算路响应消息时,执行步骤42。
步骤415、源域PCE计算源节点经过工作路径/保护路径出口节点对,到宿节点的最短分离路径。
步骤416、源域PCE从计算获取的最短分离路径中选择一组最优的分离路径(例如:链路代价最低的分离路径),作为最终的路径信息发送给源节点;结束本流程。
本实施例在算路响应流程中,将分离域中与路径相关的拓扑信息抽象出的抽象路径合并到属性为共同域的相邻上游域中,由共同域在算路响应流程中,将分离域的抽象路径合并到本域拓扑信息中,综合考虑第一域序列包括的分离域和第二域序列包括的分离域的抽象路径信息,计算并选取最优分离路径信息,从而有利于提高了分离路径计算的成功率。
图5为本发明路径信息的获取方法第五实施例的网络结构图。对于图3a所示的网络结构,也可采用“后向合并、后向计算”的方法获取所需的路径信息;此时,图3a所示的网络结构可从逻辑上认为是图5所示的网络结构。
在算路请求(PCEReq)流程中,源节点(Scr)自身作为PCC向部署在域1中的PCE1发送算路请求消息,该算路请求消息中包括工作路径所经的第一域序列信息,和保护路径所经的第二域序列信息。算路请求消息顺着第一域序列和第二域序列预先定义的顺序,依次向下传递,直至部署在域6中的PCE6接收到该算路请求消息。PCE6开始发起算路响应流程,即开始“后向合并、 后向计算”的流程,具体步骤如下:
步骤51、PCE6计算本域入口节点对(Y,Z)和宿节点(Dst)之间的路径信息,分别表示为Y-Dst和Z-Dst,然后将该路径信息携带在算路响应消息(PCERep)中返回给相邻上游域PCE5。图5所示的网络结构中示出了域6包括二个入口节点的情形,该情形下组成入口节点对的方式只有一种。如果域6包括的入口节点多于二个,PCE6则需将域6任意二个入口节点进行两两组合,分别计算各种组合节点对到宿节点之间的路径信息(图中未示出)。例如:域6的入口节点包括Y1、Y2和Y3,那么,形成入口节点对的组合可包括(Y1,Y2)、(Y1,Y3)和(Y2,Y3)。PCE6分别计算三组入口节点对中各节点到宿节点的路径信息,形成三组分离路径,分别可表示为Y1-Dst和Y2-Dst、Y1-Dst和Y3-Dst、Y2-Dst和Y3-Dst。完成计算后,PCE6将计算结果携带在算路响应消息(PCERep)中返回给相邻上游域PCE5。
步骤52、PCE5根据第一域序列信息和第二域序列信息判断本域属性为共同域,且相邻下游域属性为共同域,PCE5计算本域入口节点H、节点I、节点J和节点U到宿节点(Dst)之间的路径信息,具体包括:PCE5选择入口节点对(H,U),(H,V),(I,U),(I,V),(J,U),(J,V),将PCE6返回的一组路径信息临时合并到本域拓扑,再分别计算并选择各种入口节点对到宿节点Dst的最优分离路径,分别表示为H-Dst和U-Dst、H-Dst和V-Dst、I-Dst和U-Dst、I-Dst和V-Dst、J-Dst和U-Dst、J-Dst和V-Dst;然后将该路径信息携带在算路响应消息(PCERep)中,分别发送给相邻上游域PCE2和PCE4。
步骤52示出了PCE6返回一组分离路径计算结果的信息,即Y-Dst和Z-Dst。假设PCE6向PCE5返回三组分离路径计算结果(图中未示出):Y1-Dst和Y2-Dst、Y1-Dst和Y3-Dst、Y2-Dst和Y3-Dst,那么PCE5在进行路径计算时,需在选定的第一路径/第二路径入口节点对与PCE6返回的分离路径之间,分别进行计算,以便获取最优路径。
例如:PCE5以(H,U)作为第一路径/第二路径入口节点,计算从节点 (H,U)到宿节点之间的分离路径。为保证路径计算的成功率,PCE5具体计算的方法可包括:
PCE5将(Y1-Dst、Y2-Dst)临时合并到本域拓扑信息中,计算分离路径:(H-Y1-Dst、U-Y2-Dst),再将(Y1-Dst、Y2-Dst)从本域拓扑信息中删除;
PCE5将(Y1-Dst、Y3-Dst)临时合并到本域拓扑信息中,计算分离路径:(H-Y1-Dst、U-Y3-Dst),再将(Y1-Dst、Y3-Dst)从本域拓扑信息中删除;
PCE5将(Y2-Dst、Y3-Dst)临时合并到本域拓扑信息中,计算分离路径:(H-Y2-Dst、U-Y3-Dst),再将(Y2-Dst、Y3-Dst)从本域拓扑信息中删除;
PCE5比较上述3组计算结果,根据计算结果选择最优分离路径信息,该路径作为以(H,U)作为第一路径/第二路径入口节点对时的最优分离路径,并发送给相邻上游域PCE2和PCE4。
采用类似的计算方法,PCE5将分别以(H,V),(I,U),(I,V),(J,U),(J,V)作为第一路径/第二路径入口节点对时的最优分离路径,并分别发送给相邻上游域PCE2和PCE4。
步骤53、PCE2接收PCE5发送的算路响应消息,并判断本域属性为分离域,且相邻下游域PCE5属性为共同域,因此,PCE2计算本域入口节点(节点C和节点D)到本域出口节点(节点E、节点F和节点G)的抽象路径,分别表示为:C-E、C-F、C-G、D-E、D-F和D-G,并将计算的抽象路径以及PCE5的计算结果携带在算路响应消息中,发送给相邻上游域PCE1。
步骤54、PCE4接收PCE5发送的算路响应消息,并判断本域属性为分离域,且相邻下游域PCE5属性为共同域,因此,PCE4计算本域入口节点(节点Q和节点R)到本域出口节点(节点S和节点T)的抽象路径,分别表示为:Q-S、Q-T、R-S和R-T,并将计算的抽象路径以及PCE5的计算结果携带在算路响应消息中,发送给相邻上游域PCE3。
步骤53和步骤54之间没有时序的限制。
步骤55、PCE3接收PCE4发送的算路响应消息,并判断本域属性为分离域,且相邻下游域PCE4属性为分离域,因此,PCE3将PCE4计算的抽象路径 与PCE3本域拓扑信息合并,抽象合并后,PCE4的出口节点(节点S和节点T)即为拓扑出口节点。PCE3计算本域入口节点(节点M和节点N)与拓扑出口节点(节点S和节点T)之间的抽象路径信息,分别表示为:M-S、M-T、N-S和N-T。之后,PCE3将计算获得的抽象路径信息、PCE5的计算结果携带在算路响应消息中,并发送给相邻上游域PCE1。
步骤56、PCE1根据第一域序列信息和第二域序列信息判断本域属性为共同域且为源域、相邻下游域属性为分离域并且存在二个属性为分离域的相邻下游域,因此,当PCE1接收到一个相邻下游域发送的算路响应消息时,启动定时器等待另一相邻下游域发送的算路响应消息。如果定时器超时,但PCE1仍未接收到另一相邻下游域发送的算路响应消息,PCE1则向源节点返回出错信息。如果在定时器预设的时间内收到另一相邻下游域发送的算路响应消息,PCE1将接收到的二个算路响应消息包括的抽象路径信息(包括PCE2计算的抽象路径信息和PCE4计算的抽象路径信息)与本域拓扑信息合并,根据合并后的拓扑信息,确定拓扑出口节点为节点E、节点F、节点G、节点S和节点T(包括域2的出口节点和域4的出口节点);抽象合并后,图3a所示的网络结构可从逻辑上认为图5所示的网络结构,即:工作路径所经的第一域序列和保护路径所经的第二域序列相同,都经过域1’、域5和域6。
步骤57、PCE1根据拓扑出口节点选取第一路径/第二路径出口节点对。该第一路径/第二路径出口节点对包括第一路径节点和第二路径节点,因此第一路径/第二路径出口节点对包括:(E、S)、(E、T)、(F、S)、(F、T)、(G、S)和(G、T)。
步骤58、PCE1将PCE5的计算结果与域1’的拓扑信息合并,以步骤57确定的第一路径/第二路径出口节点对,分别计算源节点(Scr)到宿节点(Dst)之间的最短分离路径,可能的6组最短分离路径表示为:Src-E-H-Dst和Src-S-U-Dst、Src-E-H-Dst和Src-T-V-Dst、Src-F-I-Dst和Src-S-U-Dst、Src-F-I-Dst和Src-T-V-Dst、Src-G-J-Dst和Src-S-U-Dst、Src-G-J-Dst和Src-T-V-Dst。PCE1从计算获取的6组最短分离路径中选择一组最优的分 离路径(例如:链路代价最低的分离路径),作为最终的路径信息发送给源节点。
本实施例在算路请求流程中,将分离域中与路径相关的拓扑信息抽象出的抽象路径,合并到属性为共同域的相邻上游域中,由共同域在算路响应流程中,将分离域的抽象路径合并到本域拓扑信息中,重新确定拓扑入口节点,在根据拓扑入口节点选取工作路径/保护路径节点对时,选取的各种可能组合的节点对中,每对节点对均包括了工作路径所经的节点和保护路径所经的节点,因此,可有效避免共同域所选取的分离路径中工作路径和保护路径的相互冲突,从而明显提高了分离路径计算的成功率。
图6为本发明路径信息的获取方法第六实施例的算路请求流程图。本实施例分离域中,与分离路径相关的拓扑信息合并到非分离域,并基于合并后的域序列计算最优路径信息等处理均是在算路请求流程中完成的(“前向合并、前向计算”)。如图6所示,本实施例在算路响应流程中,包括:
步骤61、源域PCE接收源节点发送的算路请求消息,根据该算路请求消息计算源节点到源域出口节点的路径信息,向相邻下游域发送携带有源域PCE的计算结果和算路请求消息。当相邻上游域接收到算路请求消息时,执行步骤62。
该算路请求消息包括工作路径所经的第一域序列信息和保护路径所经的第二域序列信息,其中第一域序列或第二域序列至少包括一个分离域,即:工作路径和保护路径所经的域序列不同。此外,源域PCE的该计算结果可以作为一个单独的消息上传,也可携带在算路请求消息中下发。以下均以计算结果封装在算路请求消息中进行下发为例,进行说明。
步骤62、当前域PCE接收算路请求消息,通过比较第一域序列信息和第二域序列信息,获取本域属性;如果本域属性为分离域,执行步骤63;如果本域属性为共同域,执行步骤68。
步骤63、当前域PCE通过比较本域保存的第一域序列信息和第二域序列信息,获取相邻上游域属性;如果相邻上游域属性为共同域,执行步骤64; 如果相邻上游域为分离域,执行步骤65。
步骤64、当前域PCE计算本域入口节点到本域出口节点的抽象路径,向相邻上游域发送算路请求消息,此时,该算路请求消息包括相邻上游域的计算结果和本域的抽象路径信息。当相邻下游域接收到算路请求消息时,执行步骤62。
步骤65、当前域PCE接收相邻上游域发送的抽象路径信息,将接收到的抽象路径信息临时合并本域拓扑信息,确定拓扑入口节点。
步骤66、当前域PCE计算拓扑入口节点与本域出口节点之间的抽象路径,其中,该拓扑入口节点即为临时合并有抽象路径信息的本域拓扑信息中的入口节点。
步骤67、当前域PCE向相邻下游域发送算路请求消息,并在本域拓扑信息中删除步骤65临时合并的抽象路径信息;此时,该算路请求消息包括原携带的地址信息和本域计算的抽象路径信息。当相邻下游域接收到算路请求消息时,执行步骤62。
步骤68、当前域PCE通过比较本域保存的第一域序列信息和第二域序列信息,获取相邻上游域属性;如果相邻上游域属性为共同域,执行步骤69;如果相邻上游域为分离域,执行步骤611。
步骤69、当前域PCE将接收的算路请求消息中包括的路径信息临时合并到本域拓扑信息;当前域PCE计算源节点到本域出口节点的路径信息,并在本域拓扑信息中删除临时合并的相应地址信息。
步骤610、当前域PCE获取本域属性是否为宿域,如果本域属性为共同域但非宿域,执行步骤614;如果本域属性为共同域且为宿域,执行步骤616。
步骤611、当前域PCE将接收的算路请求消息中包括的抽象路径信息临时合并到本域拓扑信息;根据合并后的本域拓扑信息,确定拓扑入口节点;根据拓扑入口节点选择工作路径/保护路径入口节点对;该工作路径/保护路径入口节点对包括一个工作路径节点和一个保护路径节点。
步骤612、当前域PCE获取本域属性是否为宿域,如果本域属性为共同 域但非宿域,执行步骤613;如果本域属性为共同域且为宿域,执行步骤615。
步骤613、计算源节点经过工作路径/保护路径入口节点对,到本域出口节点的最短分离路径。
步骤614、当前域PCE将计算结果封装在算路请求消息中发送给相邻上游域。当相邻上游域接收到算路请求消息时,执行步骤62。
步骤615、宿域PCE计算源节点经过工作路径/保护路径出口节点对,到宿节点的最短分离路径。
步骤616、宿域PCE从计算获取的最短分离路径中选择一组最优的分离路径(例如:链路代价最低的分离路径),并发起算路响应流程,即将该最优的分离路径作为最终的路径信息发送给源节点;结束本流程。
本实施例在算路响应流程中,在域中部署的PCE不进行路径信息合并和路径计算,而是从宿域开始,将宿域选取的最终计算结果顺着工作路径所经的第一域序列和保护路径所经的第二域序列,依次向相邻上游域转发算路响应消息,直至源域接收到该算路响应消息,并将该算路响应消息中携带的最优路径信息作为计算结果发送给源节点。
本实施例在算路请求流程中,将分离域中与路径相关的拓扑信息抽象出的抽象路径合并到属性为共同域的相邻下游域中,由共同域将分离域的抽象路径合并到本域拓扑信息中,综合考虑第一域序列包括的分离域和第二域序列包括的分离域的抽象路径信息,计算并选取最优分离路径信息,从而有利于提高了分离路径计算的成功率。
图7为本发明路径信息的获取方法第七实施例的网络结构图。对于图3a所示的网络结构,也可采用“前向合并、前向计算”的方法获取所需的路径信息;此时,图3a所示的网络结构可从逻辑上认为是图7所示的网络结构。
步骤71、当PCE1接收源节点(Src)发送的算路请求消息,该算路请求消息包括工作路径所经的第一域序列信息和保护路径所经的第二域序列信息,其中第一域序列或第二域序列至少包括一个分离域,即:工作路径和保护路径所经的域序列不同。PCE1根据该算路请求消息计算源节点(Src)到 域1出口节点A、节点B、节点L和节点K(A、B、L、K)的路径信息;然后将该路径信息携带在算路请求消息(PCEReq)中发送给相邻下游域PCE2和PCE3。
PCE1计算最短分离路径信息的方法可包括如下步骤:PCE1选取本域出口节点对,该出口节点对包括与域2入口节点(节点C或节点D)关联的第一路径节点(节点A或节点B)以及与域3入口节点(节点M或节点N)关联的第二路径节点(节点K或节点L),可包括4种组合(A,L)、(A,K)、(B,L)和(B、K)。PCE1分别计算源节点Src到各组出口节点对之间的路径信息,分别可表示为:Src-A和Src-L、Src-A和Src-K、Src-B和Src-L和Src-B和Src-K。
步骤72、PCE2根据第一域序列信息和第二域序列信息判断本域属性为分离域,且相邻上游域PCE1属性为共同域,因此,PCE2计算本域入口节点(节点C和节点D)到本域出口节点(节点E、节点F和节点G)的抽象路径,分别表示为:C-E、C-F、C-G、D-E、D-F和D-G,并将计算的抽象路径以及PCE1的计算结果携带在算路请求消息中,发送给相邻下游域PCE5。
步骤73、PCE3根据第一域序列信息和第二域序列信息判断本域属性为分离域,且相邻上游域PCE1属性为共同域,因此,PCE3计算本域入口节点(节点M和节点N)到本域出口节点(节点0和节点P)的抽象路径,分别表示为:M-O、M-P、N-O和N-P,并将计算的抽象路径以及PCE1的计算结果携带在算路请求消息中,发送给相邻下游域PCE4。
步骤72和步骤73之间没有时序关系的限制。
步骤74、PCE4接收PCE3发送的算路请求消息,并判断本域属性为分离域,且相邻上游域PCE3属性为分离域,因此,PCE4将PCE3计算的抽象路径与PCE4本域拓扑信息合并,抽象合并后,PCE3的入口节点(节点M和节点N)即为拓扑入口节点。PCE4计算拓扑入口节点(节点M和节点N)与本域出口节点(节点S和节点T)与之间的抽象路径信息,分别表示为:M-S、M-T、N-S和N-T。之后,PCE4将计算获得的抽象路径信息、PCE1的计算结果携带 在算路请求消息中,并发送给相邻下游域PCE5。
步骤75、PCE5根据第一域序列信息和第二域序列信息判断本域属性为共同域、相邻上游域属性为分离域并且存在二个属性为分离域的相邻上游域,因此,当PCE5接收到一个相邻上游域发送的算路请求消息时,启动定时器等待另一相邻上游域发送的算路请求消息。如果定时器超时,但PCE5仍未接收到另一相邻上游域发送的算路请求消息,PCE5则向源节点返回出错信息。如果在定时器预设的时间内收到另一相邻上游域发送的算路请求消息,PCE5将接收到的二个算路请求消息包括的抽象路径信息(包括PCE2计算的抽象路径信息和PCE4计算的抽象路径信息)与本域拓扑信息合并,根据合并后的拓扑信息,确定拓扑入口节点为节点C、节点D、节点M和节点N(包括域2的入口节点和域4的入口节点);抽象合并后,图3a所示的网络结构可从逻辑上认为图7所示的网络结构,即:工作路径所经的第一域序列和保护路径所经的第二域序列相同,都经过域1、域5’和域6。
步骤76、PCE5选取本域出口节点对。图7所示的网络结构中,PCE5所在域包括二个本域出口节点,即该本域出口节点对的选择为一组(W,X)。
步骤77、PCE5将PCE1的计算结果与本域的拓扑信息合并,计算源节点(Src)经第一路径/第二路径入口节点对到本域出口节点的最短分离路径,并将计算结果封装在算路请求消息中发送给PCE6。
由于PCE1计算获取了4组分离路径,因此,PCE5需分别考虑这4组路径信息并计算分离路径。例如:PCE5将PCE1计算的分离路径信息Src-A和Src-L、Src-A和Src-K、Src-B和Src-L和Src-B和Src-K临时合并到本域拓扑,分别计算分离路径Src-A-W和Src-L-X、Src-A-W和Src-K-X、Src-B-W和Src-L-X和Src-B-W和Src-K-X。计算完成后,PCE5从这4组分离路径中选择一组最优的一组分离路径,并将其封装在算路请求消息中发送给PCE6。
步骤78、PCE6根据第一域序列信息和第二域序列信息判断本域属性为共同域且为宿域、相邻上游域(域5)属性也为共同域,则将从PCE5接收到算路请求消息中的路径信息临时合并到本域拓扑信息中,计算源节点(Src)到 宿节点(Dst)的最短分离路径,并从计算结果中选择一组最优的分离路径(例如:链路代价最低的分离路径)。
PCE6发起算路响应流程,即将该最优的分离路径作为最终的路径信息发送给源节点;结束本流程。
本实施例在算路响应流程中,在域中部署的PCE不进行路径信息合并和路径计算,而是从PCE6开始,将PCE6选取的最终计算结果顺着工作路径所经的第一域序列和保护路径所经的第二域序列,依次向相邻上游域转发算路响应消息,直至PCE1接收到该算路响应消息,并将该算路响应消息中携带的最优路径信息作为计算结果发送给源节点。
本实施例在算路请求流程中,将分离域中与路径相关的拓扑信息抽象出的抽象路径,合并到属性为共同域的相邻下游域中,由共同域在算路响应流程中,将分离域的抽象路径合并到本域拓扑信息中,重新确定拓扑出口节点,在根据拓扑出口节点选取工作路径/保护路径节点对时,选取的各种可能组合的节点对中,每对节点对均包括了工作路径所经的节点和保护路径所经的节点,因此,可有效避免共同域所选取的分离路径中工作路径和保护路径的相互冲突,从而明显提高了分离路径计算的成功率。
本领域技术人员可以理解:本发明路径信息的获取方法的上述实施例可通过在域中部署PCE进行路径计算;也可由在域中部署的具有集中式路径计算功能的服务器进行路径计算,即:本发明路径信息的获取方法实施例的执行主体可为PCE或具有集中式路径计算功能的服务器等。
图8为本发明路径计算装置实施例结构图。如图8所示,本实施例包括:域属性获取模块81、第一抽象路径提取模块82和分离路径计算模块83。
域属性获取模块81用于根据接收的算路请求消息,获取本域属性和相邻域属性;所述算路请求消息包括第一路径所经的第一域序列信息和第二路径所经的第二域序列信息,所述第一域序列信息或第二域序列信息至少包括一个分离域。
第一抽象路径提取模块82用于当本域属性为分离域时,计算本域入口节 点和本域出口节点之间的抽象路径;将抽象路径信息发送给相邻域。
分离路径计算模块83用于当本域属性为共同域、且至少一个相邻域属性为分离域时,根据接收的来自相邻域的抽象路径信息确定拓扑边界节点,计算拓扑边界节点与宿节点或源节点之间的分离路径;并将计算结果发送给相邻域或源节点。
在上述技术方案的基础上,域属性获取模块81可包括解析单元811和比较单元812。
解析单元811用于解析接收的算路请求消息,获取所述算路请求消息中包括的第一路径所经的第一域序列信息和第二路径所经的第二域序列信息。
比较单元812用于比较所述第一域序列信息和第二域序列信息,当所述第一域序列信息和第二域序列信息均包括本域或相邻域时,本域属性或相邻域属性为共同域;否则,本域属性或相邻域属性为分离域。
当本域属性为共同域、且至少一个相邻域属性为分离域时,分离路径计算模块83可包括边界节点确定单元831、节点对选取单元832、路径计算单元833和发送单元834。
边界节点确定单元831用于根据接收的来自相邻域的抽象路径信息确定拓扑边界节点。
节点对选取单元832用于根据所述拓扑边界节点选取第一路径/第二路径节点对,所述第一路径/第二路径节点对包括第一路径节点和第二路径节点。
路径计算单元833用于根据节点对选取单元832的选取结果,分别计算第一路径节点和第二路径节点与宿节点之间的最短路径,或者,分别计算第一路径节点和第二路径节点与源节点之间的最短路径。
发送单元834用于将所述路径计算单元的计算结果发送给相邻域或源节点。
进一步的,当本域属性为共同域、存在二个同向的相邻域、至少一个相邻域属性为分离域时,分离路径计算模块83还可包括定时单元835、存储单元836和出错反馈单元837。
定时单元835用于当接收到一个相邻域发送的信息时,启动定时器。
存储单元836用于保存来自属性为分离域的相邻域的抽象路径信息。
出错反馈单元837用于当所述定时器超时、且未接收到来自另一相邻域发送的信息时,向源节点返回出错信息。
在上述技术方案的基础上,当本域属性为分离域、且相邻域属性为分离域时,本实施例路径计算装置还可包括第二抽象路径提取模块84。
第二抽象路径提取模块84用于根据接收的来自相邻域的抽象路径信息确定拓扑边界节点,计算拓扑边界节点和本域出口节点或本域入口节点之间的抽象路径;将抽象路径信息发送给相邻域。
本实施例通过域属性获取模块获取本域属性和相邻域属性,由第一抽象路径提取模块将分离域中与路径相关的拓扑信息抽象出来,合并到相邻的共同域中;合并后,由路径信息计算模块从逻辑上认为第一路径所经的第一域序列和第二路径所经的第二域序列相同,并可获取第一路径所经的第一域序列和第二路径所经的第二域序列不同情形下的分离路径信息。由于分离路径计算模块在进行分离路径计算时,综合考虑第一域序列包括的分离域和第二域序列包括的分离域的抽象路径信息,选取最优分离路径信息,从而克服了现有技术存在的“实际存在分离路径但算不出来”的技术缺陷,明显提高了分离路径计算的成功率。
本发明路径计算装置实施例的表现形式可为一个独立的装置,或路径计算单元(PCE),或作为具有集中式路径计算功能的服务器中的一个功能模块等。本发明路径计算装置实施例具体的工作流程可参见本发明路径信息的获取方法实施例的记载,不再赘述。
图9为本发明路径信息的获取系统实施例结构示意图。如图9所示,本实施例包括分离域路径计算装置91和共同域路径计算装置92。
分离域路径计算装置91用于根据接收的算路请求消息,获取本域属性;当本域属性为分离域时,计算本域入口节点和本域出口节点之间的抽象路径;将抽象路径信息发送给相邻域。
共同域路径计算装置92用于根据接收的算路请求消息,获取本域属性和相邻域属性;当本域属性为共同域、且至少一个相邻域属性为分离域时,接收所述分离域路径计算装置91发送的抽象路径信息,根据接收的抽象路径信息确定拓扑边界节点,计算拓扑边界节点与宿节点或源节点之间的分离路径;并将计算结果发送给相邻域或源节点。
本实施例通过分离域路径信息计算装置将分离域中与路径相关的拓扑信息抽象出来,合并到相邻的共同域中;合并后,由共同域路径计算装置从逻辑上认为第一路径所经的第一域序列和第二路径所经的第二域序列相同,可获取第一路径所经的第一域序列和第二路径所经的第二域序列不同情形下的分离路径信息,克服了现有技术存在的“实际存在分离路径但算不出来”的技术缺陷,明显提高了分离路径计算的成功率。
本领域普通技术人员可以理解:附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。