光网络中端到端保护路径的获取方法 【技术领域】
本发明涉及光网络中传输路径的获取方法,具体地说涉及到光网络中从一端到另一端业务传输工作路径的保护路径的获取方法。背景技术
在基于光网络的业务传输中,由于网络中承载的业务量巨大,为保证业务传输的质量和效率,必须要为光网络的业务传输提供各种层次的保护。目前,光网络的保护方式主要依靠自身底层的保护机制,如依靠复用段保护(MSP,Multiplex Section Protection)环、子网连接保护(SNCP,Subnetwork Connection Protection)环以及通道保护(PP,Path Protection)环等自身的自愈机制提供1∶1及1+1的保护。然而实际中光网络并不都是以环网的组网方式,例如还可能以网状网(Mesh)网的组网方式存在。而一些Mesh网并不能提供上述的保护方式,而且也很难避免不出现业务中断的情况。因此在诸如Mesh网地网中,需要为业务提供端到端的工作路径的保护路径,以便在工作路径中断时,通过保护路径继续业务的传输。目前端到端的保护路径的获取方法首先将工作路径在网络拓扑图中标记出来,列为禁止节点,即将该工作路径从网络拓扑图中裁剪掉,然后在裁剪后的网络拓扑图中从新计算,以获取从源节点到目的节点之间与工作路径具有相同源节点和目的节点的保护路径。现有方法的缺点在于,保护路径的获取是基于裁剪去工作路径的网络拓扑结构实现的,由于在裁剪了工作路径后,原本是连通的节点可能不再连通,这样,某些端到端的保护路径即使存在,也可能找不出,因此,现有方法无法为工作路径有效地提供保护路径。发明内容
本发明的目的在于提供一种光网络中端到端保护路径的获取方法,使用该方法能够有效获取工作路径的保护路径。
为达到上述目的,本发明提供的光网络中端到端保护路径的获取方法,包括:
(1)确定要获取的保护路径的源节点和目的节点,确定工作路径;
(2)计算网络中所有节点到目的节点之间的最小代价的路径,并且保存上述路径;
(3)重新计算各路径的权值;
(4)对工作路径逐点进行摆动,得到新的从源节点和目的节点的路径,组成侯选路径集;
(5)从侯选路径集中查找最短路径,如果没找到,确定没有保护路径,然后结束保护路径的获取操作,如果找到,
(6)将该最短路径作为新工作路径,判断该新工作路径是否有环,如果有环,转步骤(7),否则转步骤(8);
(7)从侯选路径集中去除该新工作路径,取侯选路径集中的下一条路径为工作路径,如果成功选取下一条路径,以该路径为工作路径,然后转步骤(4),否则结束保护路径的获取操作;
(8)判断新工作路径的节点与原工作路径的节点是否完全分离,如果是,确定新工作路径为保护路径,然后结束保护路径的获取操作,否则转步骤(4)。
与现有技术所述的方法相比,由于本发明所述的方法避免了从网络拓扑图中裁减工作路径,使得潜在的保护路径不会丢失,只要端到端的保护路径存在,就一定能够找到,因此提高了获取保护路径的可能性,可以为IP网络中重要的业务提供端到端保护。附图说明
图1是本发明所述方法实施例流程图。具体实施方式
为克服传统获取保护路径的方法导致的缺点,本发明所述的方法基于完整的网络拓扑结构计算端到端的保护路径,即采取对现有的工作路径逐点进行摆动的方法获取所有的从源节点到目的节点的路径,从中选出与工作路径分离的最短路径作为工作路径的保护路径。现有的K条路算法即是这种思想,但是对于K条路径来说,由于实际中的K值可能很大,可能导致算法的收敛速度很慢,且这K条路也不一定是与目前的工作路径是节点分离的,要穷举完所有的路径,在K很大时,计算的代价将会很高,而且也不现实。为此,为加快算法的收敛速度,本发明对路径权重(Weight)进行了改进;同时,本发明还一个重要步骤,就是在方法增加了路径防环处理的过程,即对计算出来的路径进行检测,看是否有成环的情形出现,以确保计算出来的路径与工作路径是节点分离的。 为对本发明进行详细说明,假如要计算的路径的源、目节点对是(S,D),计算出的工作路径是P,本发明的任务就是要从网络中从源节点S到目的节点D之间的多条路径中选取一条路径P1,该路径P1是与路径P除首末节点外是节点分离的,即为P的保护路径。下面结合附图所述实施例对本发明作进一步详细的描述。
图1是本发明所述方法实施例流程图。按照图1,首先在步骤1确定要获取的保护路径的源节点和目的节点,确定工作路径。然后在步骤2采用计算网络中所有节点到目的节点之间的最小代价的路径,并且保存上述路径。该步骤通过分别计算网络中各节点到目的节点之间的最小代价的路径实现,所述计算网络中任一节点到目的节点之间的最小代价的路径可以按照最短路径算法(Dijkstra)进行。本发明采用的最短路径算法具体参考如下:假设R为从源节点到计算的当前节点的最短路径确定的集合,Q为所有顶点的集合,D为源节点到该节点的花费,是一个数组,例如D[2]即是从源节点到该节点的花费,PI为描述节点前驱的数组,例如Pi[2]描述的即是到标号为2的节点的前一个节点的标号,则,
1)、初始化D中所有的节点的花费值,如果是源节点,则初始化为0,其余的顶点都初始化为无穷大,R初始化为空,Q初始化为所有节点的集合;
2)、从Q中选择花费值最小的节点,假设为u;
3)、把节点u加入到集合R中;
4)、放松与u相邻的每一个节点,放松的过程如下,假如放松的下一个节点为v,那么到v的花费值为d[u]+w(u,v),其中w(u,v)是链路的花费值,如果d[u]+w(u,v)>d[v],则更新前驱Pi[v]=u;
5)、重复步骤2)到4),直到Q中所有的节点都已经穷尽。
6)、在前驱表中找到目的节点,假设为D,不断回溯前驱,只到节点S(源节点)。
在步骤3,重新计算各路径的权值。该步骤按照下述公式完成:
权值Cij‾=Cj-Ci+Cij;]]>
其中Cj、Ci是节点j、i到目的节点的最小花费值,Cij是链路(i,j)的花费值。该步骤是本发明的一个重要步骤,目的是加快本发明的收敛速度,以及对网络拓扑图中所有的路径都进行摆动。
在步骤4,对工作路径逐点进行摆动,得到新的从源节点和目的节点的路径,组成侯选路径集。上述对工作路径逐点进行摆动参照下述步骤进行:
(A1)确定最优路径(在组成侯选路径集的最初循环开始时最优路径即为工作路径)上的摆动节点a,并找到最优路径上节点a的下一节点b;
(A2)遍历与a节点相连的所有路径,找出权值比从节点a到节点b的路径的权值大,且在所有与a相连节点的路径中权值最小的路径,设该路径的尾节点为c,则该路径为Pac;
(A3)找出从c节点到目的节点d的路径,设该段路径设为Pcd;
(A4)确定摆动得到的新路径为户Psa+Pac+Pcd。
该步骤4是本发明的另一个重要步骤,用于循环选择路径,为方便上述步骤(A1)到(A4)的具体实施,可以使用三个集合,第一个集合为X_list,用于保存摆动得到的路径,第二个集合为P_list,用于保存优选路径,第三个集合为Deviated_Set,用于保存已经摆动过的路径集合。在摆动选择路径过程中,只要X_list不为空或者P_list不为空,同时没有找到所需路径,则继续循环,直到找到路径或者上述两个集合为空为止。
具体摆动过程是从当前工作路径上沿着源到目的的顺序依次摆动形成一条新路径,对于新路径按以下添加规则处理:a)必须判断新路径是否存在于路径集合X_list或者P_list或者Deviated_Set中,如果存在则不加入X集合,同时要回收该新路径资源;b)当一条路径摆动结束,需要判断该路径是否已经存在P_list集合中,如果不存在,将此路径加入到Deviated_Set集合中。
假设当前要从目前工作路径L的节点a摆动,首先找到路径L上节点a的下一节点,假设为b。遍历与节点a相连的,即包含节点a的所有路径,选出权值大于等于路径<a,b>的权值且没有摆过的链路L’(如果没有找到,则表示该节点处没有可以摆动的链路,可以跳出此节点的摆动遍历,选L上的下一节点继续进行),记录L’的另一端点为c。到此可以形成一条新路L’(psa+pac+pcd,其中psa是L上节点s到节点a的路径,pcd是基于目的节点的最小花费的路径)。新路L’必定为当前从节点a摆动的最短路径。当路径L上的所有点摆动结束,取出X_list集合中的最优路径赋予L(此时X_list不为空),如果路径L无环,如果P_list为空或者L和P_list中路径等花费,就加入到P_list中;否则,继续处理P_list集合寻找路径。
在步骤4中,对工作路径逐点进行摆动时不包括目的节点。
在步骤5,从侯选路径集中查找最短路径,如果没找到,确定没有保护路径,然后结束保护路径的获取操作,如果找到最短路径,在步骤6,将该最短路径作为新工作路径,然后在步骤7判断该新工作路径是否有环,如果有环,转步骤8从侯选路径集中去除该新工作路径,取侯选路径集中的下一条路径为工作路径;接着在步骤9判断步骤8中路径选取操作是否成功,如果成功,以该路径为工作路径,然后转步骤4继续操作,否则结束保护路径的获取操作;如果在步骤7判断得知该新工作路径无环,转步骤10判断新工作路径的节点与原工作路径的节点是否完全分离,如果是,确定新工作路径为保护路径,然后结束保护路径的获取操作,否则转步骤(4)继续进行寻找保护路径的操作。