一次路由计算实现层次路由的拓扑方法

文档序号:7611606阅读:229来源:国知局
专利名称:一次路由计算实现层次路由的拓扑方法
技术领域
本发明涉及一种路由拓扑方法,特别涉及一种一次路由计算实现层次路由的拓扑方法。
背景技术
ASON(Automatic Switched Optical Network,自动交换光网络),是能够智能化地自动完成光网络交换连接功能的新一代光传送网,又称智能光网络,基于分布控制平面实现,支持自动交换连接建立的光网络控制平面。所述自动交换连接是指在网络资源和拓扑结构的自动发现的基础上,调用动态智能选路算法,通过分布式信令处理和交互,建立端到端的按需连接。为了完成自动交换连接功能,ASON必须具备一些基本功能,包括发现功能(如邻居发现、拓扑发现和业务发现等)、路由功能和信令功能等。
而一般光网络属于层次网络,也就是说,在ASON中,可以划分为不同的路由域,每一个路由域又可以分为不同的域。而域之间又可以互相嵌套,一个上层域内部可包含若干个下层网络,形成层次的结构。每一个域都知道本身的拓扑结构并能够进行动态连接控制,但不了解层次结构中的上层或者下层域的拓扑结构,如图1所示,2层域CD7包括两个1层域CD5和CD6,1层域CD5包括两个0层域CD1和CD2,1层域CD6包括两个0层域CD3和CD4,域CD1中包括网络节点N01、N02、N03、N04、BN1、BN2;域CD2中包括网络节点S2、BN3、BN4、BN5、BN6;,域CD3中包括网络节点BN7、BN8、BN9和BN10,域CD4中包括网络节点BN11、BN12、BN13、BN14;还包括域外节点C01、C02、C03、C04,其中,C01和N01节点的TNA地址为TNA11,C02和BN2节点的TNA地址为TNA12,C03和BN5节点的TNA地址为TNA13,C04和BN13节点的TNA地址为TNA14、并且0层网络中包括域间链路BN1-BN3、BN2-BN4、BN5-BN7、BN6-BN8、BN9-BN11、BN10-BN12。因此在多层控制时涉及到层次路由和层次业务的发现,这就需要采用多层统一处理的方法,实现ASON自动路由的功能。
现有技术中,针对层次路由拓扑方法采用单层集中式计算。对于单层集中式拓扑方案,也可以说是一次集中式计算方案,就是层次网络中的0层的每个域中节点和域内链路信息,通过层次域(相邻上下层域)之间的数据信息的Feed Up(上载)和Feed Down(下载)以及域内OSPF(Open Shortest Path First,开放最短路径优先)协议的洪泛过程,使在0层各个域中的每一个节点都具有整个层次路由的节点和链路信息的全网信息,因此在计算多个域之间的路由时,可以采用一次集中式计算方式,计算出整个路径。如图1中计算从TNA11到TNA14的路径,由于首节点N01具有整个层次路由的节点和链路信息的全网信息,因此只需要在N01就可以一次计算出整个路径。但单层集中式计算方案中需要进行全网数据的洪泛,也就是说,每个域中的每个网络节点的数据都需要在整个网络中传送,而且对于层次网络来说,整个网络有可能是几十,甚至是几百个节点,数据量非常大,如果要全网数据洪泛,信息量非常大,占据大量带宽,使得网络效率降低,在OSPF协议的洪泛过程中则还会导致网络收敛时间很长。

发明内容
本发明解决的问题是提供一种一次路由计算实现层次路由的拓扑方法,以解决现有技术中全网数据洪泛、信息流量非常大和网络收敛时间长的缺陷。
为了解决上述问题,本发明公开了一种一次路由计算实现层次路由的拓扑方法,该方法包括以下步骤A、在多层次网络中,将下层网络中的每个域在相邻上层网络的域中抽象为一个路由控制器,最下层网络以上各层网络中的每个路由控制器包含下层域的域间链路信息;B、将下层网络中的每个域进行节点地址汇聚;C、在相邻上层的路由控制器与相邻下层的节点之间进行数据信息的上载和下载;D、根据抽象到相邻上层域中路由控制器的域间链路信息,将域间链路拓扑进行重新构建,使整个多层次网络形成一个平面链路拓扑。
还包括E、在所述平面链路拓扑中进行路径选择。
所述平面链路拓扑中进行路径选择时,应用的路由选择算法包括Dijkstra算法或A算法。
每个域的域内链路信息为全连通。
步骤B所述节点地址汇聚方法包括采用IP地址或掩码方式进行节点地址Node ID的汇聚。
步骤C中所述的数据信息包括流量工程TE链路、汇聚后的节点地址和传输网络分配地址TNA。
所述流量工程TE链路、汇聚后的节点地址和传输网络分配地址TNA的上载和下载是通过同一节点中的不同软件单元间的数据传输实现的。
步骤C中所述相邻上层的路由控制器与相邻下层的节点为相同点。
步骤D所述域间链路的重建方法包括以下步骤D1、设置域间链路属性本端抽象端点、对端抽象端点、本端实际端点和对端实际端点,所述本端抽象端点,为最下层域之间的域间链路对应相邻上层域中域内链路的本端节点;所述对端抽象端点,为最下层域之间的域间链路对应上层域中域内链路的远端节点;所述本端实际端点,为最下层域中域间链路的本端节点;所述对端实际端点,为最下层域中域间链路的远端节点;D2、如果域间链路本端实际端点和对端实际端点在相邻上一层网络中属于同一个域,则该域间链路本端抽象端点和本端实际端点相同,对端抽象端点为该域间链路的对端实际端点对应的相邻上层网络中路由控制器;
D3、如果域间链路本端实际端点和对端实际端点在相邻上一层网络中不属于同一个域,那么该域间链路的本端抽象端点为该域间链路的本端实际端点对应的层次列表Hierarchy List中的第二个路由控制器;对端抽象端点为该对端实际端点对应的层次列表Hierarchy List的第一个路由控制器,所述层次列表Hierarchy List为对应一条域间链路的两端节点在抽象到上层属于同一个域内后,从该域对应的路由控制器RC ID到最下层域的该节点下载Feed Down过程中所需要经过的每一层的路由控制器列表,按照由上到下顺序排列;D4、将传输网络分配地址TNA地址抽象到TNA地址所在节点抽象后与本域抽象后在同一个域的路由控制器。
与现有技术相比,本发明具有以下优点本发明通过对域间链路的抽象处理,保证网络拓扑的连通性;并经过路径选择输出,简化了网络业务路径拓扑,快速有效的进行路径选择。


图1是现有技术的多层次网络结构图;图2是本发明基本原理的流程图;图3是应用本发明获得的路由拓扑图;图4是本发明中从域CD1看到的抽象后的在同一平面的链路拓扑图。
具体实施例方式
本发明的基本原理如图2所示,包括以下步骤步骤S201,在多层次网络中,将下层网络中的每个域在相邻上层网络的域中抽象为一个路由控制器;步骤S202,将下层网络中的每个域进行节点地址汇聚;步骤S203,在相邻上层的路由控制器与相邻下层的节点之间进行TE(Traffic Engineering,流量工程)链路、汇聚后的节点地址和TNA(TransportNetwork Assigned Address,传输网络分配地址)的上载和下载;步骤S204,根据抽象到相邻上层域中路由控制器的域间链路信息,将域间链路拓扑进行重新构建,使整个多层次网络形成一个平面链路拓扑。
下面以图1所示的三层(0层、1层和2层,其中,0层为最下层,1层为中间层,2层为最上层)网络为例,说明本发明实现层次路由一次计算的应用实例。
首先,将一个域在相邻上层的控制域中抽象为一个路由控制器RC(RouterController),域内链路设置为全连通;在1层及1层以上各层中只有下层的域间链路信息。如图1所示,在CD5域内,存在两个路由控制器,分别为RC11和RC12,分别对应CD1和CD2域,在CD5域内,只有CD1和CD2两个域的域间链路BN1-BN3和BN2-BN4信息;在CD6域内,存在两个路由控制器,分别为RC13和RC14,分别对应CD3和CD4域,在CD6域内,只有CD3和CD4两个域的域间链路BN9-BN11和BN10-BN12信息;CD7域内,分别只有代表CD5和CD6域的路由控制器RC21和RC22(可以看成下层域的节点),两个路由控制器之间的域间链路只有BN5-BN7和BN6-BN8。因此,0层的域CD1在1层中抽象为RC11,CD2抽象为RC12,CD3抽象为RC13,CD4抽象为RC14,1层的域CD5在2层中抽象为RC21,CD6抽象为RC22,RC21和RC22逐层了顶层域CD7。在0层以上的域中的节点,在实际的网络中,并没有RC**这个节点,这些节点是抽象出来的,为相邻下一层网络的某一个具体的节点。比如RC11,在1层的CD5域内,标识为RC11,但它同时是0层的CD1域内N04节点,RC12,在1层的CD5域内标识为RC11,它同时为0层CD2域内的S2节点。因此1层及1层以上域内的节点实际上是0层网络中的某一个真实节点,因此层与层之间节点之间的通讯实际就是同一个节点中软件模块之间的数据传递。
然后,每层的每个控制域需要进行node_id(节点地址)的汇聚。由于在每个域内包括多个节点,每个节点包含大量信息,如节点地址信息等,且该地址信息可能有多位,在数据传输中会占据大量带宽,因此可以采用IP地址和掩码长度进行Node ID的汇聚,汇聚的结果是使底层域的网络节点node_id用尽可能少的地址代替,使得在上载Feed Up的过程中传递的数据尽可能少。
所述子网掩码是一个32位地址,用来判断任意两个节点的IP地址是否属于同一域。使用子网掩码可以屏蔽IP地址的一部分以减少传输的数据量,只有同在一个域中的节点才能互相通讯联系。例如,一个域存在如下Node ID192.168.10.2,192.168.10.3,192.168.10.5,192.168.10.6,192.168.10.7,192.168.10.8,要进行这些Node ID的汇聚。对于给定的一个地址列表,遍历此地址列表,对于每一个地址,将32位置位0,检查最低位为0,1时是否存在,如果都存在的话,再将31位置位0,检查最后两位为00,01,10,11是否都存在,如果其中一个不存在,即可得到最大掩码长度,然后继续遍历后续的地址,重复上面的处理。
举例如下地址129.9.0.0/32,129.9.0.1/32,129.9.0.2/32,129.9.0.3/32,129.9.0.4/32,129.9.0.5/32,129.9.0.6/32,129.9.0.7/32,129.9.0.8/32,129.9.2.0/24,129.9.3.0/24,首先取到地址129.9.0.0/32,然后判断129.9.0.0/31对应的地址129.9.0.0,129.9.0.1是否存在,在本例中可以找到,说明掩码可以是31位,然后再将掩码变为30,此时判断地址129.9.0.0,129.9.0.1,129.9.0.2,129.9.0.3是否都存在,同样都可以找到,因此掩码长度可以缩减为30,然后再判断掩码为29位的情况,发现都可以找到,因此将掩码缩减为29位,然后再判断掩码为28位的情况,此时发现129.9.0.9找不到,因此前8个地址的汇聚结果为129.9.0.0/29,对于129.9.0.8重复上面的判断,发现不能汇聚,所以汇聚结构为129.9.0.8/32,对于最后的两个地址,重复上面的判断流程,汇聚后的结果为129.9.2.0/23。因此这个域内的节点就汇聚为两个Node ID129.9.0.0,掩码长度为29和129.9.2.0,掩码长度为23。其他情况类似。通过IP地址129.9.0.0和29的掩码长度,就可以知道它实际上代表了8个Node ID。同样129.9.2.0和掩码长度23也就代表了两个Node ID。
以上的汇聚实例实际上就是通过最少的Node ID来表示最多的Node ID,使用的只有汇聚的Node ID和掩码长度。
接着,每层的抽象节点(路由控制器RC)进行TE链路,汇聚后的节点地址node_id和TNA(Transport Network Assigned Address,传输网络分配地址)地址的Feed Up和/或Feed Down。如果域间链路的两个端点在某一个上层域已经抽象到同一个域内,那么此域间链路信息不再向上Feed Up。图中节点间(例如RC11和N04,RC12和RC21)进行拓扑数据(这里的数据包括汇聚后的node_id、TE链路、TNA地址)的Feed Up和/或Feed Down。在进行拓扑数据的Feed Up和Feed Down后,域内的节点通过OSPF协议进行域内的洪泛过程,每个节点将可以看到整个网络的抽象拓扑。例如,在CD1中的节点看到的网络拓扑如图3所示,包括2层域CD7,1层域CD5,0层域CD2,CD3(实际上从CD1的节点看不到CD2和CD3的域内情况,之所以在图3中画出CD2和CD3域,是因为这里存在域间链路);路由控制器RC11、RC 12、RC21、RC22;域间链路BN1-BN3、BN2-BN4、BN5-BN7、BN6-BN8;还包括域外节点C01、C02、C03。
在上面的描述中,获取到的是路由拓扑,在ASON的路径选择中,最需要的是业务拓扑,也就是链路拓扑图,从图3中可以看到,CD1和其他域之间的链路连接是松散的,CD1中的节点只能看到1层域CD5和2层域CD7,及域间链路BN1-BN3,BN2-BN4,BN5-BN7,BN6-BN8,不能形成一个完整的链路拓扑。如果在CD1域的一个节点需要建立一条从一个TNA地址到其他域一个节点的TNA地址的一条链路,需要从上到下进行分布式计算,此时计算过程随着层次的增加而增加路径选择的时间。如果希望采取一次性路径选择,在如图3中路由拓扑中,一次计算出一条完整的由本域的域内链路和其他域间链路组成的端到端路径,就需要对图3中的域间链路拓扑进行重新建模,将链路抽象到某个RC上,使它成为在一个平面上的链路拓扑。
本发明中域间链路的重建方法为首先,设置域间链路属性,包括本端抽象端点、对端抽象端点、本端实际端点和对端实际端点;所述本端抽象端点,为最下层域之间的域间链路对应相邻上层域中域内链路的本端节点;所述对端抽象端点,为最下层域之间的域间链路对应上层域中域内链路的远端节点;所述本端实际端点,为最下层域中域间链路的本端节点;所述对端实际端点,为最下层域中域间链路的远端节点。
如果域间链路两个实际端点(本端实际端点和对端实际端点)在相邻上一层网络中属于同一个域,则域间链路本端抽象节点和本端实际节点相同,对端抽象节点为该域间链路的对端实际节点对应的相邻上层网络中路由控制器。如果域间链路两个实际端点在相邻上一层网络中不属于同一个域,那么所述两个实际端点在Feed Up到同一个域内时,必然都需要经过一个以上路由控制器(RC),相同的道理,从两个节点属于同一个域的路由控制器到最低层的实际端点也需要经过相同的路由控制器,由这些路由控制器就组成了层次列表(Hierarchy List),顺序由上到下排列。那么域间链路属性的本端抽象节点为该域间链路的本端实际节点对应的层次列表Hierarchy List的第二个路由控制器ID;对端抽象节点为该对端实际节点对应的层次列表Hierarchy List的第一个路由控制器ID;例如,从图3中可以看出,CD1域中的节点能够看到的其他域的上层网络节点为RC12和RC22,这之间包含了两个域间链路,分别对应为BN1-BN3、BN2-BN4和BN5-BN7、BN6-BN8。其中BN1-BN3和BN2-BN4的两个端点抽象到同一个域CD5中,从路由的Feed Down的层次列表Hierarchy List可以获得,CD5为CD1和CD2两个域的上一层域,因此这两条链路的本端抽象端点就是本端实际端点,对端抽象端点为RC12。BN5-BN7和BN6-BN8的两个端点抽象到同一个域CD7,从路由的Feed Down的Hierarchy List可以获得,CD9与CD2和CD3不是相邻的上层域,BN5和BN6两个端点的Hierarchy List为RC21-RC12,BN7和BN8两个端点的Hierarchy List为RC22-RC13。因此这两条链路的本端抽象端点为RC12,对端抽象端点为RC22。
然后,将TNA地址抽象到TNA地址所在节点ID抽象后与本域抽象后在同一个域的路由控制器ID。如TNA14,对于CD1域内的节点,和TNA14所在节点将抽象到在CD7域内,因此TNA14此时就抽象到RC22上。相应的0层域内节点上的TNA地址也根据链路抽象规则抽象到了相应的RC ID,例如从CD1域内的N01节点,如果要通过层次网络看到TNA14,那么TNA14必须抽象到更上层的节点上,N01才能看得到,因此按照规则,TNA14就抽象到与N01节点抽象后同属于同一个域(CD7)的RC22上。
经过网络拓扑的抽象,图1的三层网络从CD1域来看,最终形成新的网络拓扑和链路拓扑如图4所示,为一平面拓扑图。该拓扑图中包括CD1中的所有节点(N01、N02、N03、N04、BN1、BN1;路由控制器RC12、RC22;和域外节点C01、C02、C03、C04。此时,从CD1中的任何一个节点,都能够看到图1中所有的TNA(TNA11、TNA12、TNA13、TNA14、)地址的信息,也就是说,在CD1中的任何一个节点,都能够一次选择一条从该域的某个TNA地址到另外一个域的TNA地址的路径。
当路由拓扑和链路拓扑都已经存在,接下来的工作就是选择一条合适的域内和域间链路,由于当前拓扑相当于各个节点在同一个域内,因此路径选择就相当于在同一个域内完成,而目前对于路径选择方面的算法有很多,其中最常用的就是Dijkstra算法,Dijkstra算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,创建两个表,OPEN,CLOSE。OPEN表保存所有已生成而未考察的节点,CLOSED表中记录已访问过的节点。
1.访问路网中里起始点最近且没有被检查过的点,把这个点放入OPEN组中等待检查。
2.从OPEN表中找出距起始点最近的点,找出这个点的所有子节点,把这个点放到CLOSE表中。
3.遍历考察这个点的子节点。求出这些子节点距起始点的距离值,放子节点到OPEN表中。
4.重复2,3步,直到OPEN表为空,或找到目标点。
另一种算法是A*(A-Star)算法,该算法是一种静态路网中求解最短路最有效的方法。公式表示为f(n)=g(n)+h(n),其中f(n)是节点n从初始点到目标点的估价函数,g(n)是在状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的估计代价。保证找到最短路径(最优解的)条件,关键在于估价函数h(n)的选取估价值h(n)<=n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。如果估价值>实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。估价值与实际值越接近,估价函数取得就越好。例如对于几何路网来说,可以取两节点间欧几理德距离(直线距离)做为估价值,即f=g(n)+sqrt((dx-nx)*(dx-nx)+(dy-ny)*(dy-ny));这样估价函数f在g值一定的情况下,会或多或少的受估价值h的制约,节点距目标点近,h值小,f值相对就小,能保证最短路的搜索向终点的方向进行。
当完成抽象域内的路径选择,例如从TNA11到TNA14的路径为(N01->N02->BN1)->RC12->RC22,此时并不是一条完整的端到端的路径,RC12代表了(BN3-BN5),RC22代表了(BN7-BN13),之间缺少BN3-BN5域内的路径以及BN7-BN13的一个新的层次路径,这些路径选择需要进行分布式选择,分别在BN3和BN7节点按照相同的原理进行路径选择。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种一次路由计算实现层次路由的拓扑方法,其特征在于,包括以下步骤A、在多层次网络中,将下层网络中的每个域在相邻上层网络的域中抽象为一个路由控制器,最下层网络以上各层网络中的每个路由控制器包含下层域的域间链路信息;B、将下层网络中的每个域进行节点地址汇聚;C、在相邻上层的路由控制器与相邻下层的节点之间进行数据信息的上载和下载;D、根据抽象到相邻上层域中路由控制器的域间链路信息,将域间链路拓扑进行重新构建,使整个多层次网络形成一个平面链路拓扑。
2.如权利要求1所述,其特征在于,还包括E、在所述平面链路拓扑中进行路径选择。
3.如权利要求2所述,其特征在于,所述平面链路拓扑中进行路径选择时,应用的路由选择算法包括Dijkstra算法或A算法。
4.如权利要求1所述,其特征在于,每个域的域内链路信息为全连通。
5.如权利要求1所述,其特征在于,步骤B所述节点地址汇聚方法包括采用IP地址或掩码方式进行节点地址Node ID的汇聚。
6.如权利要求1所述,其特征在于,步骤C中所述的数据信息包括流量工程TE链路、汇聚后的节点地址和传输网络分配地址TNA。
7.如权利要求6所述,其特征在于,所述流量工程TE链路、汇聚后的节点地址和传输网络分配地址TNA的上载和下载是通过同一节点中的不同软件单元间的数据传输实现的。
8.如权利要求1所述,其特征在于,步骤C中所述相邻上层的路由控制器与相邻下层的节点为相同点。
9.如权利要求1所述,其特征在于,步骤D所述域间链路的重建方法包括以下步骤D1、设置域间链路属性本端抽象端点、对端抽象端点、本端实际端点和对端实际端点,所述本端抽象端点,为最下层域之间的域间链路对应相邻上层域中域内链路的本端节点;所述对端抽象端点,为最下层域之间的域间链路对应上层域中域内链路的远端节点;所述本端实际端点,为最下层域中域间链路的本端节点;所述对端实际端点,为最下层域中域间链路的远端节点;D2、如果域间链路本端实际端点和对端实际端点在相邻上一层网络中属于同一个域,则该域间链路本端抽象端点和本端实际端点相同,对端抽象端点为该域间链路的对端实际端点对应的相邻上层网络中路由控制器;D3、如果域间链路本端实际端点和对端实际端点在相邻上一层网络中不属于同一个域,那么该域间链路的本端抽象端点为该域间链路的本端实际端点对应的层次列表Hierarchy List中的第二个路由控制器;对端抽象端点为该对端实际端点对应的层次列表Hierarchy List的第一个路由控制器,所述层次列表Hierarchy List为对应一条域间链路的两端节点在抽象到上层属于同一个域内后,从该域对应的路由控制器RC ID到最下层域的该节点下载Feed Down过程中所需要经过的每一层的路由控制器列表,按照由上到下顺序排列;D4、将传输网络分配地址TNA地址抽象到TNA地址所在节点抽象后与本域抽象后在同一个域的路由控制器。
全文摘要
本发明公开了一种一次路由计算实现层次路由的拓扑方法,其特征在于,包括以下步骤A、在多层次网络中,将下层网络中的每个域在相邻上层网络的域中抽象为一个路由控制器,最下层网络以上各层网络中的每个路由控制器包含下层域的域间链路信息;B、将下层网络中的每个域进行节点地址汇聚;C、在相邻上层的路由控制器与相邻下层的节点之间进行数据信息的上载和下载;D、根据抽象到相邻上层域中路由控制器的域间链路信息,将域间链路拓扑进行重新构建,使整个多层次网络形成一个平面链路拓扑。本发明通过对域间链路的抽象处理,保证网络拓扑的连通性;并经过路径选择输出,简化了网络业务路径拓扑,快速有效地进行路径选择。
文档编号H04B10/10GK1816000SQ20051000536
公开日2006年8月9日 申请日期2005年2月2日 优先权日2005年2月2日
发明者尹芳 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1