改进最短路径生成树算法的方法及其设备的制作方法

文档序号:7600469阅读:212来源:国知局
专利名称:改进最短路径生成树算法的方法及其设备的制作方法
技术领域
本发明涉及对开放式最短路径优先OSPF(Open Shortest PathFirst)动态路由协议的最短路径生成树算法的改进,以便灵活运用到GPRS网关支持节点GGSN设备,从而满足采用模块化结构的GGSN中对上行用户数据的负荷分担的路由转发需要。
背景技术
3G GGSN作为3G核心网PS域与外部分组数据网PDN的接口,承担网关或路由器的功能,它提供用户数据分组在核心网络和外部数据网之间的路由转发和封装。在Gi接口上支持动态路由协议,以便能够让GGSN自动检测到外部数据网的网络拓扑变化,从而正确转发上行的用户数据,由于OSPF成为目前Internet广域网和Intranet企业网采用最多、应用最广泛的路由协议之一,我们在本篇幅主要讨论在GGSN上实现OSPF动态路由协议。
例如UTStarcom的GGSN采用模块化的可扩展的系统框架、支持信令处理板、数据处理板等多种功能处理板。数据处理板实现Gi接口的功能。诸如思科等厂商的这种模块化架构的路由设备采取的方案是采用路由交换处理板(route switch processor)+接口处理板(interface processor)的架构,路由交换处理板运行路由协议并生成和维护路由表,低端的接口处理板没有路由表,对IP报文的转发依赖于在路由交换处理板中路由表的查找,为提高转发速率会在接口处理板上设置一些高速缓存。高端的接口处理板本身具有路由转发能力,但其转发表和路由交换处理板上的路由表是一致的。总而言之,这种结构的特点是所有的接口处理板使用一份路由转发表。
GGSN为了支持百万级的用户量,通常会利用多个数据处理板与ISP的网络相连,以分担负荷。在负荷分担的模式下,我们假设通过每个数据处理板都可以到达同一个外部网络,即不存在只有经过某个特定数据处理板才能到达某个外部网络的情况。在这种模式下,单一路由表的结构就不再适合了。
因为传统的OSPF协议只能维护一张路由表,如果为每个数据处理板单独运行一个OSPF实例,带来的系统开销又很大。
因此,需要改进OSPF动态路由协议的最短路径生成树算法,以便灵活运用到GGSN设备,从而满足在采用模块化结构的GGSN中对上行用户数据的负荷分担的路由转发需要。

发明内容
本发明提供一种对现有的最短路径生成树算法改进的方法,以克服现有技术中的不足,并满足负荷分担的需求。
具体地,本发明提供用于改进最短路径生成树算法的一种方法,所述方法包括以下步骤从数据网中接收数据;将接收的数据传送到数据处理板;数据处理板转发接收的数据;计算每个数据处理板所需要的路由表;利用一个OSPF实例为每个数据处理板单独生成一个路由表;将路由表下发到每个数据处理板。
如果接收的数据是待转发的IP报文,则数据处理板查找该数据处理板上的路由表进行转发。
如果接收的数据为OSPF协议报文,则数据处理板将OSPF协议报文转发给路由处理板进行处理。
特别地,本发明还提供一种GGSN设备,其中所述GGSN设备包含一块路由处理板和多块数据转发板,OSPF实例和链路状态数据库运行在路由处理板上,数据转发板接收到OSPF报文之后转发给路由处理板的OSPF实例进行处理,OSPF实例单独为每个数据转发板生成路由表,数据转发板根据路由表转发IP报文,其中在所述GGSN设备中运行上述的用于改进最短路径生成树算法的方法。
优选地,根据本发明,路由交换处理板为每个数据处理板单独生成一个路由表,并且路由交换处理板不再进行路由转发,而只是根据负荷分担的原则将从Gn接口接收到的数据直接发送到Gi接口所在的数据处理板,从而由数据处理板根据本地的路由表进行转发。传统模式是路由交换处理板负责路由协议和路由表维护,数据处理板转发数据,而本发明在保持传统的路由转发模式的同时,对路由交换处理板上的OSPF路由最短生成树算法进行适当的改进,以便灵活运用到GGSN设备,并满足GGSN中对上行用户数据的负荷分担的转发需求。
全局只在路由模块RM上运行一份路由协议,路由模块通过数据模块发送OSPF报文,数据模块在接收到OSPF报文后,把它转交给路由模块进行处理。在需要生成路由表时,例如,如果Gi接口所连接的网络拓扑发生变化,路由模块通过改进的最小生成树Dijkstra算法,为每个数据板生成一个独特的路由表,并将路由表下发到每个数据模块。
由于只是对OSPF协议中生成路由表的过程进行修改,所以并不影响OSPF的协议流程,并且该修改对与GGSN相邻的OSPF路由器是透明的。
通过使路由模块利用一个OSPF实例为每个数据处理板生成不同的路由表,能够实现GGSN的负荷分担。
通过参照下面的附图并结合具体的优选实施方式,本发明的其他目的、特性和优点将是显而易见的。


利用示例的方式,参照附图来描述本发明,其中图1表示现有技术的GGSN的负荷分担;图2表示OSPF保存的现有技术的网络拓扑;图3表示现有技术的网络拓扑图生成的最小生成树;图4表示本发明的基于数据处理板的网络拓扑;图5表示本发明的网络拓扑图生成的最小生成树;和图6表示本发明的网络拓扑图生成的最小生成树。
具体实施例方式
特别地,请参见如图1所示的现有技术的GGSN的负荷分担。如图1所示,如果经过Gi1到节点N4网的开销是12,则经过Gi2到节点N4网的开销是13。如果按通常的模式,路由交换处理板上产生的到节点N4的最优路由是只能经过Gi1接口出去。有可能从Gi1出去的开销总是略大于从Gi2口出去,其原固有可能是因为Gi2所连接的ISP接入网中多经过了一个路由节点。这样,大多数的上行IP(因特网协议)包经过Gi1出去,而其他Gi接口的负载很小,因而不能达到负荷分担的效果。
下面,首先简单介绍一下GGSN路由交换处理板上OSPF任务所保存的与图1网络相对应的的网络拓扑图,OSPF报文中的链路状态通告(Link State Advertisement)构成了链路状态数据库,链路状态数据库描述网络拓扑结构,这是一张有向图,其由节点和边构成,其中节点包括路由器节点R和网络节点N。边的权值就是节点间的开销。GGSN通过3个Gi接口和节点N1,N2,N3相连,这些节点N又和其他的路由器接口相连。为了方便表述起见,网络节点N统称为外部网络。
现在,参见图2。图2表示OSPF保存的现有技术的网络拓扑。如果从这张拓扑图中运用Dijkstra最小生成树算法,得到最短生成树,如图3所示。由于经Gi1接口到节点N4,N5的开销最小,所以Gi2和Gi3接口就失去了作用。
所生成的路由表如下表1所示,从中可以看到节点N4的下一跳从Gi1出,节点N5的下一跳也从Gi1出去,所以使用该路由表不能实现GGSN的负荷分担。
表1原始路由表下面描述路由表的生成、下发过程和数据转发过程。
全局只在路由模块RM运行一份路由协议,路由模块通过数据模块发送OSPF报文,数据模块收到OSPF报文后,把它交给路由模块处理。在需要生成路由表时,例如,如果Gi接口所连接的网络拓扑发生变化,路由模块通过应用如下的改进的最小生成树Dijkstra算法,为每个数据板生成一个独特的路由表,并将路由表下发到每个数据模块。
由于只是对OSPF协议中生成路由表的过程进行修改,所以并不影响OSPF的协议流程,并且这些修改对与GGSN相邻的OSPF路由器是透明的。
运行在路由交换处理板上的OSPF路由协议在需要生成路由表时,例如,如果Gi接口所连接的网络拓扑发生变化,将通过不断修改相应网络拓扑数据库的方式,多次运行最小生成树Dijkstra算法,为每个数据处理板生成一个独特的路由表,并将路由表下发到每个数据处理板。
当GGSN从Gn口接收到数据,不再查找全局路由表,而是根据负荷分担的原则直接发送到最优的Gi口所在的数据处理板,由数据处理板根据本地路由表对上行的IP报文进行转发。
下面描述对OSPF路由协议最小生成树Dijkstra算法的改进。
根据本发明,对最小生成树算法的第一步进行了改进,即改进了构造根节点的步骤。根据现有技术的根节点拓扑结构显示在图2中,其以GGSN为根,有三条边和三个网络节点,这三条边分别代表三个数据板的三个Gi接口,三个网络节点代表Gi接口所在的网络。
根据本发明,在为每个数据处理板进行生成树计算时,构造根节点时去掉其它边,只保留该数据处理板所有的边,并且其余的步骤不变,如此生成的路由表可以保证其是针对这个数据处理板的。
图3表示按照标准OSPF方式生成的最短路径生成树,数据板2具有Gi2接口,数据板3具有Gi3接口,但是路由处理板如果按照这个最短路径生成树为数据板2和3生成路由表,那么N4和N5网络将无法到达。
通过反复运行改进的最小生成树算法,就可以为每个数据板生成不同的路由表了。
在运行最小生成树算法生成路由信息时,将分别为每一个数据处理板单独生成一个路由表,并对链路状态数据库进行修改,即在路由处理板为数据处理板计算路由表时,去除与所述数据处理板无关的接口,修改链路状态数据库,为所述数据处理板生成单独的路由表,从而去掉这个数据处理板之外的其他数据处理板的Gi接口,OSPF报文随即发送新的链路状态通告,并且新的OSPF报文构成新的链路状态数据库。
例如,在为数据处理板2生成路由表时,将链路状态数据库修改为如图4所示,其中去掉了Gi1和Gi3的接口。
根据这张拓扑图生成的最小生成树如图5所示,并且所生成的路由表如下表2所示,从表2中可以看到,所有路径的下一跳都是从Gi2出去,该路由表可以被数据处理板2使用。
表2根据修改拓扑图生成的路由表同样,在为数据处理板3计算路由表时,我们首先恢复之前的修改,并将拓扑图中与数据处理板3无关的GGSN的Gi接口去掉,将链路状态数据库修改为如图6所示。
此时,如果再运行Dijkstra生成树算法,可以得到数据处理板3的路由表。
所生成的路由表如下表3所示,从表3中可以看到,所有路径的下一跳都是从Gi3出去,该路由表可以被数据处理板3使用。
表3根据修改拓扑图生成的路由表这样,通过简单的改变网络拓扑图,我们就可以计算出每个数据处理板需要的路由表了。
本发明的改进的算法适用于多个数据处理板需要进行负荷分担的情况,而且要求数据处理板对外部网络都有可达性,其中可能到达某些网络的开销不一样。
虽然在上面结合具体实施方式
对本发明进行了描述,但是本领域普通技术人员将明白,鉴于上面的教导和启示,可以对本发明作出许多替换、修改和变化,并且所有这些替换、修改和变化都落入所附的权利要求书的范畴与精神之内。
权利要求
1.用于改进最短路径生成树算法的一种方法,所述方法包括以下步骤从数据网中接收数据;将接收的数据传送到数据处理板;数据处理板转发接收的数据;计算每个数据处理板所需要的路由表;利用一个OSPF实例为每个数据处理板单独生成一个路由表;将路由表下发到每个数据处理板。
2.根据权利要求1的方法,其中如果接收的数据是待转发的IP报文,则数据处理板查找该数据处理板上的路由表进行转发。
3.根据权利要求1的方法,其中如果接收的数据为OSPF协议报文,则数据处理板将OSPF协议报文转发给路由处理板进行处理。
4.根据权利要求1的方法,其中在路由处理板中,在为每个数据处理板计算生成树时,在构造根节点的同时去掉其它边,只保留该数据处理板所有的边,为该数据处理板生成路由表。
5.根据权利要求1的方法,其中由数据处理板根据本地路由表转发数据,并且由路由处理板为数据处理板单独生成路由表。
6.根据权利要求1的方法,其中由路由处理板通过运行一个OSPF实例为每个数据处理板单独生成一个路由表。
7.根据权利要求1的方法,其中由路由处理板为每个数据处理板计算路由表,并且在路由处理板为每个数据处理板计算路由表时,通过去除与所述数据处理板无关的接口,修改链路状态数据库,为所述数据处理板生成单独的路由表。
8.根据权利要求3的方法,其中OSPF协议报文中的链路状态通告构成链路状态数据库,以及其中所述链路状态数据库描述网络拓扑结构。
9.根据权利要求8的方法,其中修改自身生成的路由器链路状态通告(Router-LSA),去除路由器链路状态通告中与该数据板无关的链路。
10.一种GPRS网关支持节点设备,其中所述GPRS网关支持节点设备包含一块路由处理板和多块数据转发板,OSPF实例和链路状态数据库运行在路由处理板上,数据转发板接收到OSPF报文之后转发给路由处理板的OSPF实例进行处理,OSPF实例单独为每个数据转发板生成路由表,数据转发板根据路由表转发IP报文,其中在所述GPRS网关支持节点设备中运行根据权利要求1-9之一的方法。
全文摘要
根据本发明,提供用于改进最短路径生成树算法的一种方法及其设备,在为每个数据处理板进行生成树计算时,在构造根节点的同时去掉其它边,只保留该数据处理板所有的边,并且其余的步骤不变,以保证如此生成的路由表是针对这个数据处理板的,从而通过不断修改相应网络拓扑数据库的方式,多次运行最小生成树Dijkstra算法,为每个数据处理板生成一个独特的路由表,并将路由表下发到每个数据处理板,满足GGSN中对上行用户数据的负荷分担的转发需求。
文档编号H04L29/06GK1783836SQ200410098099
公开日2006年6月7日 申请日期2004年11月30日 优先权日2004年11月30日
发明者瓮志强, 刘栋梁 申请人:Ut斯达康通讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1