專利名稱:改進最短路徑生成樹算法的方法及其設備的制作方法
技術領域:
本發明涉及對開放式最短路徑優先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斯達康通訊有限公司