提供全面保護的ip快速重路由機制的制作方法
【專利摘要】公開了提供全面保護的IP快速重路由機制,用于降低與消息分組相關(guān)聯(lián)的地址查找的數(shù)量。提供全面保護的IP快速重路由機制包括路由器,其被配置為根據(jù)存儲在轉(zhuǎn)發(fā)信息存儲器中的轉(zhuǎn)發(fā)信息表中與目的地節(jié)點有關(guān)的第一指針和第二指針中的一個,向下一跳鄰居節(jié)點轉(zhuǎn)發(fā)到達分組;第一指針指向第一下一跳鄰居節(jié)點,其位于從網(wǎng)絡(luò)節(jié)點到目的地節(jié)點的最短路徑上;第二指針指向不同于第一下一跳鄰居節(jié)點的第二下一跳鄰居節(jié)點,其位于候選循環(huán)上,該候選循環(huán)包含網(wǎng)絡(luò)節(jié)點和目的地節(jié)點,并與以目的地節(jié)點為根的匯集樹具有最大重疊。提供全面保護的IP快速重路由機制特別有用于向針對單個鏈路和節(jié)點故障的全面保護提供不需要分組修改的簡單方法。
【專利說明】提供全面保護的IP快速重路由機制
[0001]相關(guān)申請
[0002]本申請通過引用結(jié)合2011年11月I日提交的美國臨時專利申請N0.61/554,341,并要求它的優(yōu)先權(quán)。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明一般涉及在網(wǎng)絡(luò)出現(xiàn)故障時的分組重路由,特別涉及一種分組重路由的方法,其減少收斂時間,同時提供網(wǎng)絡(luò)的全面保護覆蓋。
【背景技術(shù)】
[0004]現(xiàn)代IP(因特網(wǎng)協(xié)議)網(wǎng)絡(luò)攜帶無數(shù)時間敏感應(yīng)用的業(yè)務(wù)數(shù)據(jù),諸如視頻會議和交互式多人游戲。因此,網(wǎng)絡(luò)被要求提供非常高水平的服務(wù)質(zhì)量(QoS)和可用性。于是,月艮務(wù)提供商竭盡全力以保證其網(wǎng)絡(luò)在這些方面運行滿意并不奇怪。然而,意外的組件故障以及定期的維護過程通常會造成降級的網(wǎng)絡(luò)性能周期。
[0005]這些降級的網(wǎng)絡(luò)性能周期中的一個被稱為收斂周期,因為它們對應(yīng)于例如開放最短路徑優(yōu)先(OSPF)的網(wǎng)絡(luò)內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)在發(fā)生拓撲變化后收斂所需要的時間。更具體地,在每個這種周期內(nèi),每個路由器獨立地更新它的轉(zhuǎn)發(fā)信息庫(FIB)表,因為有關(guān)拓撲變化的信息在整個網(wǎng)絡(luò)中傳播。因此,不同路由器的轉(zhuǎn)發(fā)表可能會暫時彼此不一致,導致業(yè)務(wù)在轉(zhuǎn)發(fā)環(huán)路中被捕獲和/或丟棄。
[0006]收斂周期一般持續(xù)幾百毫秒或者甚至幾秒鐘。不幸的是,這么長的恢復時間對于大多數(shù)實時應(yīng)用來說是不可接受的。相反,低于50毫秒的恢復時間,像S0NET/SDH和MPLS網(wǎng)絡(luò)的恢復時間,是期望的,以保證消費者很難注意到任何不利影響。
[0007]與此相關(guān),能效最近成為服務(wù)提供商的重要問題。一種流行的降低能耗的技術(shù)涉及動態(tài)地規(guī)劃網(wǎng)絡(luò),以滿足當前的業(yè)務(wù)需求,例如,通過暫時關(guān)掉不必要的鏈路和路由器。然而,像任何其它拓撲變化一樣,這些操作都容易對網(wǎng)絡(luò)性能產(chǎn)生負面影響,并可能會相當頻繁地發(fā)生。因此,從這樣的事件中獲得低的恢復時間會獲得更大的意義,因為不這樣的話,上述節(jié)能措施不太可能被廣泛地采用。
[0008]即使在出現(xiàn)拓撲變化時也要維持IP網(wǎng)絡(luò)的高水平的QoS和可用性的需求需要在收斂周期中使網(wǎng)絡(luò)服務(wù)中斷最小化的方法。在MPLS網(wǎng)絡(luò)中,這通過快速重路由(FRR)來完成。即,對于每個潛在的組件故障,提供避開它的專門繞行路徑。當這種故障實際發(fā)生時,業(yè)務(wù)會自動轉(zhuǎn)移到適當?shù)睦@行路徑上。因此,MPLS-FRR有效地保證了 50ms的故障恢復時間,分組丟失可忽略不計。
[0009]用于IP網(wǎng)絡(luò)的類似解決方案被稱為IP快速重路由(IP FRR)。在IP FRR中,不能通過故障組件發(fā)送分組被轉(zhuǎn)到備選路由器,其將該分組轉(zhuǎn)發(fā)到它的目的地。然而,不同于MPLS-FRR中繞行路徑被提供為專用MPLS隧道,在IP網(wǎng)絡(luò)中,每個路由器做出獨立的本地路由決策。該基于目的地的轉(zhuǎn)發(fā)模式在IPFRR的實現(xiàn)中引起嚴重的問題,如以下所說明的。
[0010]緊接著故障發(fā)生并被檢測到之后,只有相鄰的路由器知道這一點;這些路由器被稱為本地維修(LRR)。因此,已經(jīng)被LRR轉(zhuǎn)到非LRR備選下一跳的分組可能被直接或間接地路由回同一個LRR,從而進入轉(zhuǎn)發(fā)環(huán)路。幾個IP FRR建議,諸如等價多路徑(ECMP)機制和無環(huán)路備選(LFA)機制,通過規(guī)定分組僅應(yīng)當被轉(zhuǎn)發(fā)到滿足保證無環(huán)路傳遞的某些簡單屬性的備選鄰居來避免這個問題。例如,考慮圖1A中所示的節(jié)點107故障后的網(wǎng)絡(luò)。LFA機制使得節(jié)點105能夠通過將去往節(jié)點110的業(yè)務(wù)轉(zhuǎn)到節(jié)點109來從該故障中恢復,節(jié)點109構(gòu)成無環(huán)路備選。
[0011]另一種方案稱為U-Turn機制,其通過允許LRR將分組原路返回到上游鄰居,隨后該上游鄰居將其轉(zhuǎn)發(fā)到它自己的鄰居中作為無環(huán)路備選的鄰居來擴展LFA。因此,如果圖1A中網(wǎng)絡(luò)的鏈路107-108出現(xiàn)故障,則節(jié)點107可將去往節(jié)點110的分組發(fā)送到節(jié)點105,后者通過將分組轉(zhuǎn)發(fā)到節(jié)點109來繞開故障。
[0012]雖然上述的機制易于實現(xiàn),但它們并不保證對每個潛在故障的無環(huán)路恢復。這在LRR沒有滿足由該機制規(guī)定的屬性的鄰居時發(fā)生,在具有低平均節(jié)點度的網(wǎng)絡(luò)中,問題會特別普遍。評估研究已經(jīng)表明LFA比ECMP能針對更多故障進行保護,而U-turn比LFA能針對更多故障進行保護,但這些研究還顯示甚至U-turn也通常僅對所有可能的鏈路故障中的大約90%的故障和低于75%的節(jié)點故障進行保護。例如,在圖1A中網(wǎng)絡(luò)的節(jié)點108故障時,這些機制中沒有一個可以成功地將分組從節(jié)點107路由到目的地110,盡管圖1B示出從107到110有一條路徑仍然可用,如由雙箭頭指示的。
[0013]其它IP FRR機制使用各種技術(shù)以標記繞路上的分組,諸如使用隧道、將故障組件列表添加到IP報頭、或者規(guī)定禁止地址(稱為不經(jīng)由(not-via)地址)。一些機制,諸如SafeGuard,主張修改IP報頭以隱式地標識故障組件。另外,在IEEE INFOCOM的會議記錄中描述的方案:“IP fast reroute:Lightweight not-via without additional addresses,,,2009 年,第 2771-2775 頁,G.Enyed1、P.Szilagyi>G.Retvari 和 A.Csasza ;預先計算每個目的地的備選路由樹,并使用IP報頭中的某些位以標識所期望的轉(zhuǎn)發(fā)路徑。雖然這些解決方案支持大多數(shù)可能故障的快速恢復,但是它們具有顯著的缺點:繞道的分組需要經(jīng)過額外的處理,這些處理只能在路由器緩慢路徑上進行,并且在某些情況下,如果額外的嵌入信息使得分組超過MTU大小,則它們可能必須被分成片段。
[0014]此夕卜,在網(wǎng)絡(luò)的IEEE/ACM 事務(wù)中,“Fast local rerouting for handlingtransient link failures”, 2007 年,15 (2): 359-372, S.Nelakudit1、S.Lee、Y.Yu、Z._L.Zhang和C.-N.Chuah介紹了一種接口特定轉(zhuǎn)發(fā)機制,其使路由器能夠基于分組的進入接口來推斷網(wǎng)絡(luò)中是否有故障。接著,通過考慮分組的進入接口以及目的地來確定該分組的下一跳。作者表示所述機制提供對任何組件故障的無環(huán)路繞行,但是這種方式導致對于每個路由器接口維護專用轉(zhuǎn)發(fā)表的相當大的成本和復雜性。
[0015]簡單IP FRR方案的明顯缺陷激發(fā)了許多備選路由范式的建議,其通常利用網(wǎng)絡(luò)的路徑多樣性。一種這樣的方法是多路由配置(MRC)機制,其建立備份路由拓撲結(jié)構(gòu)(稱為配置),以使得每個鏈路和節(jié)點被隔離在至少一個備份拓撲結(jié)構(gòu)中。在故障發(fā)生后,分組沿著故障組件被隔離的某個配置路由。盡管MCR可以解決快速恢復問題,但它面臨著實現(xiàn)問題,諸如設(shè)計隔離每個組件的配置和選擇路由的合適配置。其它研究通過沿著每個指定目的地的預先計算的定向非循環(huán)圖(DAG)路由分組來利用路徑多樣性。在該路由范例中,分組并不必需沿著最短路徑進行路由,也不能保證DAG對每個可能的故障提供保護。最后但不是不重要的,G.RfTVAM、J.TAPOLCA1、G.ENYEDI 和 A.CSASZAR在 2Oll 年 IEEEINFOCOM 的會議記錄中的“IP fast reroute:Loopfree alternates revisited”建議用其它鏈路加強網(wǎng)絡(luò)以確保LFA機制可向所有可能的故障提供恢復。
[0016]因此,期望有一種方法或裝置能夠確保在網(wǎng)絡(luò)收斂期間分組會沿著最短路徑或者在沿著最短路徑的一個鏈路/路由器故障時通過備選路徑到達目的地,其使得現(xiàn)有技術(shù)中的缺點和復雜性最小化。
【發(fā)明內(nèi)容】
[0017]本發(fā)明的目的是提供分組分類的方法和裝置,其在網(wǎng)絡(luò)收斂時間內(nèi)保證分組或者沿著最短路徑或者通過網(wǎng)絡(luò)的備選路徑到達它們的目的地。
[0018]在前面部分提到的所有解決方案或者不能夠針對所有潛在的故障進行保護,或者難以實現(xiàn),或者兩者都有。在此公開了一種新的、簡單和有效的IP FRR機制,即不相交路徑恢復(DisPath),其具有以下有利的屬性:
[0019]DDisPath保留傳統(tǒng)的基于目的地的IP路由范式,并在穩(wěn)定的網(wǎng)絡(luò)狀態(tài)中,分組沿著最短路徑被轉(zhuǎn)發(fā)到目的地。
[0020]2)分組不會以任何方式進行修改(除了適當?shù)臉藴什僮饕酝?,諸如TTL遞減和新的報頭校驗和計算)。
[0021]3)DisPath在每個路由器的轉(zhuǎn)發(fā)表中對每個目的地節(jié)點僅維持兩個指針:一個用于主要下一跳鄰居,另一個用于備選下一跳鄰居。顯然,這是實現(xiàn)恢復機制所需要的最少數(shù)量的指針。
[0022]4)假定恢復路徑存在,則DisPath提供全面保護,即,針對單個組件的每個潛在故障進行保護而不管網(wǎng)絡(luò)拓撲結(jié)構(gòu)如何。
[0023]5)即使在出現(xiàn)多個故障時,DisPath機制也完美地避免短暫的路由環(huán)路。
[0024]應(yīng)當注意,屬性2和3使得該方案相對簡單地用當前路由技術(shù)實現(xiàn)。還應(yīng)當注意,屬性4對于能效網(wǎng)絡(luò)是非常期望的,該能效網(wǎng)絡(luò)由于動態(tài)地去激活冗余的路由器和鏈路,因此具有非常低的平均節(jié)點度。
[0025]此外,對代表性網(wǎng)絡(luò)實例的模擬表明DisPath在伸展性(stretch)方面表現(xiàn)得很好,即,重新路由的分組的軌跡的長度與避免故障網(wǎng)絡(luò)組件的最短路徑的長度的比率,其是常用的性能指標。連同以上的屬性,這表明DisPath滿足設(shè)計確保全面保護的簡單且實用的IP FRR機制的目標。
[0026]因此,根據(jù)本發(fā)明的一個方面,提供一種在網(wǎng)絡(luò)節(jié)點處的網(wǎng)絡(luò)單元,用于路由具有目的地節(jié)點的到達分組,該網(wǎng)絡(luò)單元具有路由器,其被配置為根據(jù)在轉(zhuǎn)發(fā)信息存儲器中存儲的轉(zhuǎn)發(fā)信息表中與該目的地節(jié)點有關(guān)的第一指針和第二指針中的一個,將到達分組轉(zhuǎn)發(fā)到下一跳鄰居節(jié)點;第一指針指向位于從網(wǎng)絡(luò)節(jié)點到目的地節(jié)點的最短路徑上的第一下一跳鄰居節(jié)點;第二指針指向不同于第一下一跳鄰居節(jié)點的第二下一跳鄰居節(jié)點,第二下一跳鄰居節(jié)點位于候選循環(huán)上,該候選循環(huán)包含網(wǎng)絡(luò)節(jié)點和目的地節(jié)點的,并與以目的地節(jié)點為根的匯集樹(sinktree)具有最大重疊。
[0027]在本發(fā)明的某些實施例中,路由器被配置為在到達分組從不同于由第一指針指示的下一跳鄰居節(jié)點的鄰居節(jié)點到達時,根據(jù)第一指針轉(zhuǎn)發(fā)到達分組。在本發(fā)明的某些實施例中,路由器被配置為在到達分組從由第一指針指示的下一跳鄰居節(jié)點到達時,根據(jù)第二指針轉(zhuǎn)發(fā)到達分組。在某些實施例中,路由器被配置為在由第一指針指示的下一跳鄰居節(jié)點不能轉(zhuǎn)發(fā)分組時,根據(jù)第二指針轉(zhuǎn)發(fā)到達分組。在某些實施例中,路由器被配置為在去往由第一指針指示的下一跳鄰居節(jié)點的鏈路不能轉(zhuǎn)發(fā)分組時,根據(jù)第二指針轉(zhuǎn)發(fā)到達分組。
[0028]在本發(fā)明的這個方面的其它實施例中,網(wǎng)絡(luò)單元還具有在轉(zhuǎn)發(fā)信息存儲器中存儲的轉(zhuǎn)發(fā)信息表中與目的地節(jié)點有關(guān)的第一標記和第二標記;第一標記指示從網(wǎng)絡(luò)節(jié)點到目的地節(jié)點的最短路徑的運行狀態(tài);第二標記指示從網(wǎng)絡(luò)節(jié)點到第二下一跳節(jié)點的鏈路是否是以目的地節(jié)點為根的匯集樹的單元;路由器被配置為在第一標記指示非運行狀態(tài),第二標記指示從網(wǎng)絡(luò)節(jié)點到第二下一跳節(jié)點的鏈路是以目的地節(jié)點為根的匯集樹的單元,并且到達分組從由第一指針指示的下一跳鄰居節(jié)點到達時,丟棄到達分組。
[0029]在某些實施例中,路由器被配置為在到達分組從不同于由第一指針指示的下一跳鄰居節(jié)點的鄰居節(jié)點到達時,根據(jù)第一指針轉(zhuǎn)發(fā)到達分組。在其它實施例中,路由器被配置為在到達分組從由第一指針指示的下一跳鄰居節(jié)點到達時,根據(jù)第二指針轉(zhuǎn)發(fā)到達分組。在其它實施例中,網(wǎng)絡(luò)單元具有路由器,其被配置為在由第一指針指示的下一跳鄰居節(jié)點不能轉(zhuǎn)發(fā)分組時,根據(jù)第二指針轉(zhuǎn)發(fā)到達分組。在其它實施例中,路由器在去往由第一指針指示的下一跳鄰居節(jié)點的鏈路不能轉(zhuǎn)發(fā)分組時,根據(jù)第二指針轉(zhuǎn)發(fā)到達分組。
[0030]在本發(fā)明的這個方面的其它實施例中,網(wǎng)絡(luò)單元被配置為在指示用于網(wǎng)絡(luò)單元是其中的節(jié)點的網(wǎng)絡(luò)的新的網(wǎng)絡(luò)配置的網(wǎng)絡(luò)配置信息到達時,轉(zhuǎn)發(fā)信息表在與新的網(wǎng)絡(luò)配置對應(yīng)的匯集樹上的網(wǎng)絡(luò)節(jié)點的祖先節(jié)點已經(jīng)被重新配置的時間周期之后的時間被更新。
[0031]根據(jù)本發(fā)明的另一個方面,公開了一種自動計算轉(zhuǎn)發(fā)信息表中與目的地節(jié)點有關(guān)的主指針和備份指針的方法,其中轉(zhuǎn)發(fā)信息表被存儲在具有在存儲設(shè)備中存儲的網(wǎng)絡(luò)配置的網(wǎng)絡(luò)的第一網(wǎng)絡(luò)節(jié)點中的轉(zhuǎn)發(fā)信息存儲器中,該方法具有以下步驟:使用網(wǎng)絡(luò)的網(wǎng)絡(luò)配置計算以目的地節(jié)點為根的匯集樹;使用網(wǎng)絡(luò)的網(wǎng)絡(luò)配置計算從第一網(wǎng)絡(luò)節(jié)點到目的地節(jié)點的最短路徑;將主指針指向在從網(wǎng)絡(luò)節(jié)點到目的地節(jié)點的最短路徑上的第一下一跳鄰居節(jié)點;將備份指針指向不同于第一下一跳鄰居節(jié)點的第二下一跳鄰居節(jié)點,該第二個下一跳鄰居節(jié)點在候選循環(huán)上,該候選循環(huán)包含第一網(wǎng)絡(luò)節(jié)點和目的地節(jié)點,并與以目的地節(jié)點為根的匯集樹具有最大重疊。
[0032]在某些實施例中,還具有以下步驟:對于網(wǎng)絡(luò)中不同于該網(wǎng)絡(luò)節(jié)點和目的地節(jié)點的所有節(jié)點,重復第二計算步驟和指向步驟。在某些實施例中,還具有以下步驟:接收對網(wǎng)絡(luò)配置的更新;在存儲設(shè)備中存儲該更新;使用網(wǎng)絡(luò)的更新的網(wǎng)絡(luò)配置,計算以目的地節(jié)點為根的新的匯集樹;通過對網(wǎng)絡(luò)中不同于該網(wǎng)絡(luò)節(jié)點的所有節(jié)點重復第二計算步驟和指向步驟,在與新的網(wǎng)絡(luò)配置對應(yīng)的匯集樹上的網(wǎng)絡(luò)節(jié)點的祖先節(jié)點已經(jīng)被重新配置的時間周期之后的時間,更新轉(zhuǎn)發(fā)信息表。在某些實施例中,時間周期根據(jù)新的匯集樹中從最近的祖先節(jié)點到該網(wǎng)絡(luò)節(jié)點的跳數(shù)距離(hop-count distance)來計算,其中,對于該網(wǎng)絡(luò)節(jié)點,新的匯集樹中從最近的祖先節(jié)點到目的地節(jié)點的路徑還未變化。
[0033]根據(jù)本發(fā)明的又一個方面,公開了一種自動計算轉(zhuǎn)發(fā)信息表中與目的地節(jié)點有關(guān)的備份指針的方法,其中轉(zhuǎn)發(fā)信息表被存儲在具有在存儲設(shè)備中存儲的網(wǎng)絡(luò)配置的網(wǎng)絡(luò)的第一網(wǎng)絡(luò)節(jié)點中的轉(zhuǎn)發(fā)信息存儲器中,該方法具有以下步驟:使用網(wǎng)絡(luò)的網(wǎng)絡(luò)配置計算以目的地節(jié)點為根的匯集樹;使用網(wǎng)絡(luò)的網(wǎng)絡(luò)配置計算包含第一網(wǎng)絡(luò)節(jié)點和目的地節(jié)點的最短候選循環(huán),其中,候選循環(huán)的“制勝(tie-breaking) ”準則包括與以目的地節(jié)點為根的匯集樹具有最大重疊;使用網(wǎng)絡(luò)的網(wǎng)絡(luò)配置計算從第一網(wǎng)絡(luò)節(jié)點到目的地節(jié)點的最短路徑;確定位于從網(wǎng)絡(luò)節(jié)點到目的地節(jié)點的最短路徑上的第一下一跳鄰居節(jié)點;以及將備份指針指向不同于第一下一跳鄰居節(jié)點的第二下一跳鄰居節(jié)點。
[0034]在本發(fā)明的這個方面的某些實施例中,還具有以下步驟:對于網(wǎng)絡(luò)中除了網(wǎng)絡(luò)節(jié)點和目的地節(jié)點以外的所有節(jié)點,重復計算步驟、確定步驟和指向步驟。
[0035]應(yīng)當注意:下面說明和附圖僅僅說明本發(fā)明的原理。因此,應(yīng)當理解,本領(lǐng)域的技術(shù)人員將能夠設(shè)計各種裝置,這些裝置盡管在此并沒有明確地描述或示出,但體現(xiàn)本發(fā)明的原理,并被包括在其精神和范圍內(nèi)。此外,在此記載的所有例子主要意在僅表示教學目的,以幫助讀者理解本發(fā)明的原理和發(fā)明人為促進本領(lǐng)域所貢獻的概念,并且應(yīng)當被理解為不限于這些具體記載的例子和條件。此外,在此敘述本發(fā)明的原則、方面和實施例以及具體例子的所有陳述意在包含其等同物。
【專利附圖】
【附圖說明】
[0036]根據(jù)以下對本發(fā)明的實施例的詳細描述并參照附圖,本發(fā)明將得到進一步的理解,其中相同標記用于表示相同的單元:
[0037]圖1A和IB表示根據(jù)現(xiàn)有技術(shù)的具有連接鏈路的節(jié)點網(wǎng)絡(luò);
[0038]圖2A和2B表示運行中的根據(jù)本發(fā)明的實施例的具有連接鏈路的節(jié)點網(wǎng)絡(luò);
[0039]圖3表示根據(jù)本發(fā)明的實施例的計算主轉(zhuǎn)發(fā)節(jié)點和備份轉(zhuǎn)發(fā)節(jié)點的方法的結(jié)構(gòu)圖;
[0040]圖4表示根據(jù)本發(fā)明的實施例的將分組路由到主轉(zhuǎn)發(fā)節(jié)點和備份轉(zhuǎn)發(fā)節(jié)點的方法的結(jié)構(gòu)圖;
[0041]圖5表示根據(jù)本發(fā)明的另一個實施例的將分組路由到主轉(zhuǎn)發(fā)節(jié)點和備份轉(zhuǎn)發(fā)節(jié)點的方法的結(jié)構(gòu)圖;
[0042]圖6A和6B表示根據(jù)本發(fā)明的實施例的具有連接鏈路的節(jié)點網(wǎng)絡(luò)。
【具體實施方式】
[0043]在下面的描述中,闡述了許多具體細節(jié)。然而,應(yīng)當理解,本發(fā)明的實施例可以實施而無需這些具體細節(jié)。在其它實例中,已知的電路、結(jié)構(gòu)和技術(shù)并沒有詳細示出,以免模糊對本說明書的理解。然而,本領(lǐng)域的技術(shù)人員應(yīng)當理解本發(fā)明可以無需這些特定細節(jié)實現(xiàn)。在其它實例中,控制結(jié)構(gòu)、門級電路和全軟件指令序列并沒有被詳細示出,以免模糊本發(fā)明。本領(lǐng)域的技術(shù)人員使用所包括的描述能夠?qū)崿F(xiàn)適當?shù)墓δ芏鵁o需過多的實驗。
[0044]說明書中的“一個實施例”、“實施例”、“示例性實施例”等表示所描述的實施例可以包括特定特征、結(jié)構(gòu)或特性,但并不是每個實施例都必須包括該特定特征、結(jié)構(gòu)或特性。此外,這些短語并不一定指代同一個實施例。此外,當特定特征、結(jié)構(gòu)或特性結(jié)合實施例描述時,應(yīng)當認為結(jié)合其它實施例實現(xiàn)這些特征、結(jié)構(gòu)或特性是在本領(lǐng)域技術(shù)人員的知識范圍內(nèi),無論是否明確地描述。
[0045]在下面的說明書和權(quán)利要求書中,可能使用了術(shù)語“耦合”和“連接”及其派生詞。應(yīng)當理解,這些術(shù)語并不旨在作為彼此的同義詞。“耦合”用于表示兩個或多個元件(可以是或者可以不是彼此直接物理或電接觸)協(xié)作或彼此交互?!斑B接”用于表示彼此耦合的兩個或更多元件之間通信的建立。
[0046]附圖中所示的技術(shù)可以使用在一個或多個電子設(shè)備(例如,網(wǎng)絡(luò)單元)上存儲并執(zhí)行的代碼和數(shù)據(jù)來實現(xiàn)。這些電子設(shè)備使用及其可讀媒體存儲和傳輸(在內(nèi)部以及通過網(wǎng)絡(luò)與其它電子設(shè)備)代碼和數(shù)據(jù),機器可讀媒體諸如機器存儲媒體(例如,磁盤、光盤、隨機存取存儲器、只讀存儲器、閃速存儲器)和機器通信媒體(例如,電、光、聲音或其它形式的傳播信號——諸如載波、紅外信號、數(shù)字信號等)。此外,這些電子設(shè)備通常包括一組一個或多個耦合到諸如存儲設(shè)備的一個或多個其它組件的處理器、一個或多個用戶輸入/輸出設(shè)備(例如,鍵盤和/或顯示器)、以及網(wǎng)絡(luò)連接。該組處理器與其它組件的耦合通常是通過一個或多個總線和橋接器(也稱為總線控制器)。存儲設(shè)備和攜帶網(wǎng)絡(luò)業(yè)務(wù)的信號分別代表一個或多個機器存儲媒體和機器通信媒體。因此,指定電子設(shè)備的存儲設(shè)備通常存儲用于在該電子設(shè)備的該組一個或多個處理器上執(zhí)行的代碼和/數(shù)據(jù)。當然,本發(fā)明的實施例的一個或多個部分可使用軟件、固件和/或硬件的不同組合實現(xiàn)。
[0047]如在此所使用的,網(wǎng)絡(luò)單元(例如,路由器、交換機、橋接器等)是網(wǎng)絡(luò)設(shè)備,其包括硬件和軟件,并通信地與網(wǎng)絡(luò)上其它設(shè)備(例如,其它網(wǎng)絡(luò)單元、計算機終端站等)互連。用戶計算機終端站(例如,工作站、筆記本電腦、掌上計算機、移動電話等)訪問通過因特網(wǎng)提供的內(nèi)容/服務(wù)和/或在諸如因特網(wǎng)的相關(guān)網(wǎng)絡(luò)上提供的內(nèi)容/服務(wù)。內(nèi)容和/或服務(wù)通常由屬于服務(wù)或內(nèi)容提供商的一個或多個服務(wù)器計算終端站提供,并可以包括公共網(wǎng)頁(免費內(nèi)容、店面、搜索服務(wù)等)、私人網(wǎng)頁(例如,提供電子郵件服務(wù)的通過用戶名/密碼訪問的網(wǎng)頁等)、VPN上的企業(yè)網(wǎng)絡(luò)等。通常,用戶計算終端站被耦合(例如,通過耦合到接入網(wǎng)絡(luò)、無線連接到接入網(wǎng)絡(luò)的客戶端設(shè)備)到邊緣網(wǎng)絡(luò)單元,邊緣網(wǎng)絡(luò)單元通過因特網(wǎng)的核心網(wǎng)絡(luò)單元連接到服務(wù)器計算終端站。
[0048]在下面的附圖中,相同的標記用于表示相同的單元。
[0049]網(wǎng)絡(luò)模型
[0050]本發(fā)明的以下實施例將參照IP網(wǎng)絡(luò)進行說明。假定IP網(wǎng)絡(luò)構(gòu)成單一路由區(qū)域。所有路由器維護鏈路狀態(tài)信息,這允許路由器計算網(wǎng)絡(luò)拓撲結(jié)構(gòu),并因此計算去往網(wǎng)絡(luò)中每個其它路由器的最短路徑。路由器使用該信息以傳播它們的轉(zhuǎn)發(fā)信息庫(FIB)表。當IP分組到達路由器時,路由器相對其FIB檢查分組目的地地址,以確定下一跳鄰居,S卩,沿最短路徑到達目的地的下一個路由器,并相應(yīng)地轉(zhuǎn)發(fā)分組。為了簡單起見,假定如果存在多個去往特定目的地的最短路徑,則路由器根據(jù)已知且一致的“制勝”準則選擇唯一的下一跳鄰居節(jié)點。
[0051]當所有路由器具有網(wǎng)絡(luò)拓撲結(jié)構(gòu)的相同視圖時,網(wǎng)絡(luò)被認為是處于穩(wěn)定狀態(tài)。如果拓撲結(jié)構(gòu)發(fā)生變化,則與所添加或刪除的組件(不管是路由器還是鏈路)相鄰的路由器檢測到該變化,并生成鏈路狀態(tài)通告(LSA)消息,以通知其它路由器該變化。該信息在網(wǎng)絡(luò)中通過泛洪(flooding)方式傳播,并被所有路由器用于更新它們的FIB。收斂時間是指從最初檢測到拓撲結(jié)構(gòu)變化到所有路由器都已經(jīng)更新其FIB、然后網(wǎng)絡(luò)再次處于穩(wěn)定狀態(tài)那一點的時間間隔。
[0052]在以下的部分,網(wǎng)絡(luò)被建模為一個無向圖G(V ;E),其中V表示路由器(也稱為節(jié)點)組,E表示鏈路(也稱為邊)組。每個鏈路e e E是雙向的,并且為了路由具有相關(guān)的整數(shù)權(quán)重w(e)。另外,G被假定為雙連通的,意味著在單個鏈路或節(jié)點故障時它維持連通。應(yīng)當注意,以上的一些假設(shè)僅用于使得說明更加清晰。正如所公開的,本發(fā)明機制的方法可以適應(yīng)于非雙連通圖和其鏈路在每個方向具有不同權(quán)重的圖。
[0053]機制概述
[0054]DisPath基于這樣的事實:根據(jù)Menger定理,在雙連通網(wǎng)絡(luò)中,每個節(jié)點V具有去往任何特定目的地t的兩個節(jié)點不相交路徑。因此,如果沿著從V到t的最短路徑出現(xiàn)故障,則仍然有可用的備選路徑。
[0055]假定Pv⑴表示V對于目的地t的主鄰居,S卩,V的沿著最短路徑到達t的下一跳鄰居。在出現(xiàn)故障時,節(jié)點V將分組轉(zhuǎn)移到備選路徑上,假定bv(t)表示備份鄰居,即,V的沿著備選路徑的下一跳鄰居。
[0056]根據(jù)本發(fā)明的實施例,節(jié)點V有兩種方式知道沿著去往t的主路徑是否已經(jīng)發(fā)生故障。標準的方式是如果V與故障相鄰,則直接檢測到故障。另一種方式是如果VWpv(t)接收到目的地是t的分組,這不應(yīng)在穩(wěn)定狀態(tài)下發(fā)生。在兩者任一的情況下,V將分組轉(zhuǎn)發(fā)到備份鄰居bv(t)。應(yīng)當注意,該方法可以實現(xiàn),而無需對分組本身進行任何修改。
[0057]作為例子,考慮圖1B中的網(wǎng)絡(luò),其中到達節(jié)點127的分組具有目的地節(jié)點130,但節(jié)點128已發(fā)生故障。在節(jié)點128出現(xiàn)故障后,節(jié)點127具有經(jīng)由節(jié)點125、123和121到達節(jié)點130的備選路徑。當節(jié)點125從節(jié)點127得到去往節(jié)點130的分組時,它檢測到故障并向其備份鄰居,節(jié)點123,發(fā)送分組。節(jié)點123也檢測到故障,并將分組轉(zhuǎn)發(fā)到它自己的備份鄰居,節(jié)點121,然后,節(jié)點121將分組路由到目的地節(jié)點130。
[0058]DisPath在提供無環(huán)路恢復中的成功取決于每個節(jié)點正確地選擇每個目的地的主鄰居和備份鄰居。為此,每個節(jié)點V計算最短簡單循環(huán)Cv;t,其包含V和目的地t。(;-中V的兩個鄰居節(jié)點成為主鄰居和備份鄰居。由于網(wǎng)絡(luò)是雙連通的,因此,這種循環(huán)總是存在的,但不一定是唯一的。這可能造成嚴重的妨礙,因為沒有任何最短循環(huán)將工作,如下一個例子所示的。
[0059]考慮圖2中的網(wǎng)絡(luò),可以看到有若干最短循環(huán)包含節(jié)點206和目的地節(jié)點212 ;對于節(jié)點201和212等也是一樣。假定節(jié)點206和203選擇左側(cè)由虛線表示的循環(huán),而節(jié)點201和204選擇右側(cè)由虛線表示的循環(huán)。當鏈路(206 ;208)出現(xiàn)故障時,節(jié)點206只能向節(jié)點203轉(zhuǎn)發(fā)去往212的分組,節(jié)點203必須將其發(fā)送到201。然而,203既不是節(jié)點201的主鄰居(如由連接節(jié)點201到節(jié)點204的黑色箭頭所指示的),也不是節(jié)點201的備份鄰居(備份鄰居是節(jié)點202,因為節(jié)點201正使用右側(cè)由虛線所示的循環(huán)),因此,節(jié)點201將分組轉(zhuǎn)發(fā)到節(jié)點204 (其更接近節(jié)點212),節(jié)點204將分組發(fā)送到節(jié)點206,而節(jié)點206是分組由于鏈路(206 ;208)的故障而開始循環(huán)的地方。因此,分組進入轉(zhuǎn)發(fā)環(huán)路,這是不希望的。
[0060]然而,根據(jù)本發(fā)明的實施例,針對選擇合適的循環(huán)的問題提供了簡單優(yōu)美的解決方案,如以下所公開的。假定T(t)表示t的匯集樹,S卩,該樹以t為根,由從所有其它節(jié)點到t的最短路徑的聯(lián)合形成;在文獻中,有時稱為反向最短路徑樹或rSPT。如果網(wǎng)絡(luò)處于穩(wěn)定狀態(tài),則每個節(jié)點可獨立地確定T (t),只要所有節(jié)點都采用相同的“制勝”準則。
[0061]接著,根據(jù)實施本發(fā)明的方法,匯集樹本身被用作最短循環(huán)的計算中的“制勝”準貝U。具體地,當節(jié)點V計算包含V和t的最短循環(huán)時,它贊成與T(t)具有更大重疊的循環(huán)“制勝”。這通過鏈路權(quán)重的適當操作來實現(xiàn)。
[0062]現(xiàn)在,可以示出由節(jié)點V計算的循環(huán)Cv;t具有以下屬性:Cv;t中V的兩個鄰居中的一個是在去往t的最短路徑中的下一個節(jié)點,因此,它自然應(yīng)當成為主鄰居Pv(t)。還可以看出,該屬性具有非常有益的結(jié)果:
[0063].它確保在網(wǎng)絡(luò)處于穩(wěn)定狀態(tài)時分組沿著去往其目的地的最短路徑路由;
[0064].它確保在單個鏈路或節(jié)點出現(xiàn)故障時快速的恢復而沒有轉(zhuǎn)發(fā)環(huán)路。
[0065]本發(fā)明的實施例具有兩個協(xié)調(diào)方面。第一是一系列步驟,它以偽代碼形式在下面示出并結(jié)合圖3說明這些步驟的結(jié)構(gòu)圖來進行進一步描述;這些步驟在網(wǎng)絡(luò)處于穩(wěn)定狀態(tài)時由每個節(jié)點V執(zhí)行以傳播它的FIB表,換句話說,確定每個目的地節(jié)點t的主鄰居和備份鄰居。
[0066]該方法包括三個基本步驟:
[0067]步驟1:計算匯集樹。節(jié)點V計算t的匯集樹T(t),通過對于所有節(jié)點共同的預定標準來制勝。T(t)中V的父親立即被指定為主鄰居pv(t)。
[0068]步驟2:權(quán)重操作。屬于T(t)的鏈路的權(quán)重被稍微降低,以使得在隨后的最短循環(huán)計算中,贊成與T(t)具有最大重疊的循環(huán)“制勝”。對于每個鏈路e e E,如下所示定義一個的臨時的實值權(quán)重wt (e)如下定義:
[0069]
【權(quán)利要求】
1.一種在網(wǎng)絡(luò)節(jié)點處的網(wǎng)絡(luò)單元,用于路由具有目的地節(jié)點的到達分組,其包括: 路由器,其被配置為根據(jù)在轉(zhuǎn)發(fā)信息存儲器中存儲的轉(zhuǎn)發(fā)信息表中與所述目的地節(jié)點有關(guān)的第一指針和第二指針中的一個,將所述到達分組轉(zhuǎn)發(fā)(409,410,415,505,509)到下一跳鄰居節(jié)點; 所述第一指針指向第一下一跳鄰居節(jié)點,其位于從所述網(wǎng)絡(luò)節(jié)點到所述目的地節(jié)點的最短路徑上; 所述第二指針指向不同于所述第一下一跳鄰居節(jié)點的第二下一跳鄰居節(jié)點,所述第二下一跳鄰居節(jié)點在候選循環(huán)上,所述候選循環(huán)包含所述網(wǎng)絡(luò)節(jié)點和所述目的地節(jié)點,并與以所述目的地節(jié)點為根的匯集樹具有最大重疊。
2.如權(quán)利要求1所述的網(wǎng)絡(luò)單元,其中, 所述路由器被配置為在所述到達分組從不同于由所述第一指針指示的下一跳鄰居節(jié)點的鄰居節(jié)點到達時(403,504),根據(jù)所述第一指針轉(zhuǎn)發(fā)(410,505)所述到達分組。
3.如權(quán)利要求1或2所述的網(wǎng)絡(luò)單元,其中, 所述路由器被配置為在所述到達分組從由所述第一指針指示的下一跳鄰居節(jié)點到達時(403,504),根據(jù)所述第二指針轉(zhuǎn)發(fā)(415,509)所述到達分組。
4.如權(quán)利要求1至3任 意一項所述的網(wǎng)絡(luò)單元,其中, 所述路由器被配置為在由所述第一指針指示的下一跳鄰居節(jié)點不能轉(zhuǎn)發(fā)分組時(404,504),根據(jù)所述第二指針轉(zhuǎn)發(fā)(408,509)所述到達分組。
5.如權(quán)利要求1至4任意一項所述的網(wǎng)絡(luò)單元,其中, 所述路由器被配置為在去往由所述第一指針指示的下一跳鄰居節(jié)點的鏈路不能轉(zhuǎn)發(fā)分組時(404,504),根據(jù)所述第二指針轉(zhuǎn)發(fā)(408,509)所述到達分組。
6.如權(quán)利要求1至5任意一項所述的網(wǎng)絡(luò)單元,還包括: 在轉(zhuǎn)發(fā)信息存儲器中存儲的所述轉(zhuǎn)發(fā)信息表中與所述目的地節(jié)點有關(guān)的第一標記和第二標記; 所述第一標記指示從所述網(wǎng)絡(luò)節(jié)點到所述目的地節(jié)點的最短路徑的運行狀態(tài); 所述第二標記指示從所述網(wǎng)絡(luò)節(jié)點到所述第二下一跳節(jié)點的鏈路是否是以所述目的地節(jié)點為根的所述匯集樹的單元; 所述路由器被配置為在所述第一標記指示非運行狀態(tài),所述第二標記指示從所述網(wǎng)絡(luò)節(jié)點到所述第二下一跳節(jié)點的鏈路是以所述目的地節(jié)點為根的所述匯集樹的單元,并且所述到達分組從由所述第一指針指示的下一跳鄰居節(jié)點到達時(503),丟棄(513)所述到達分組。
7.如權(quán)利要求6所述的網(wǎng)絡(luò)單元,其中, 所述路由器被配置為在所述到達分組從不同于由所述第一指針指示的下一跳鄰居節(jié)點的鄰居節(jié)點到達時(504),根據(jù)所述第一指針轉(zhuǎn)發(fā)(505)所述到達分組。
8.如權(quán)利要求6或7所述的網(wǎng)絡(luò)單元,其中, 所述路由器被配置為在所述到達分組從由所述第一指針指示的下一跳鄰居節(jié)點到達時(504),根據(jù)所述第二指針轉(zhuǎn)發(fā)(509)所述到達分組。
9.如權(quán)利要求6至8任意一項所述的網(wǎng)絡(luò)單元,其中, 所述路由器被配置為在由所述第一指針指示的下一跳鄰居節(jié)點不能轉(zhuǎn)發(fā)分組時(504),根據(jù)所述第二指針轉(zhuǎn)發(fā)(509)所述到達分組。
10.如權(quán)利要求6至10任意一項所述的網(wǎng)絡(luò)單元,其中, 所述路由器被配置為在去往由所述第一指針指示的下一跳鄰居節(jié)點的鏈路不能轉(zhuǎn)發(fā)分組時(504),根據(jù)所述第二指針轉(zhuǎn)發(fā)(509)所述到達分組。
11.如權(quán)利要求1至10任意一項所述的網(wǎng)絡(luò)單元,其中, 在網(wǎng)絡(luò)配置信息到達時,其中所述網(wǎng)絡(luò)配置信息指示用于所述網(wǎng)絡(luò)單元是其中的節(jié)點的網(wǎng)絡(luò)的新的網(wǎng)絡(luò)配置; 在與所述新的網(wǎng)絡(luò)配置對應(yīng)的匯集 樹上的所述網(wǎng)絡(luò)節(jié)點的祖先節(jié)點已經(jīng)被重新配置的時間周期之后的時間,所述轉(zhuǎn)發(fā)信息表被更新。
12.一種自動計算轉(zhuǎn)發(fā)信息表中與目的地節(jié)點有關(guān)的主指針和備份指針的方法,所述轉(zhuǎn)發(fā)信息表被存儲在具有存儲在存儲設(shè)備中的網(wǎng)絡(luò)配置的網(wǎng)絡(luò)的第一網(wǎng)絡(luò)節(jié)點中的轉(zhuǎn)發(fā)信息存儲器中,所述方法包括以下步驟: 使用所述網(wǎng)絡(luò)的所述網(wǎng)絡(luò)配置計算(303)以所述目的地節(jié)點為根的匯集樹; 使用所述網(wǎng)絡(luò)的所述網(wǎng)絡(luò)配置計算(309)從所述第一網(wǎng)絡(luò)節(jié)點到所述目的地節(jié)點的最短路徑; 將所述主指針指向(310)位于從所述第一網(wǎng)絡(luò)節(jié)點到所述目的地節(jié)點的所述最短路徑上的第一下一跳鄰居節(jié)點;以及 將所述備份指針指向(310)不同于所述第一下一跳鄰居節(jié)點的第二下一跳鄰居節(jié)點,所述第二下一跳鄰居節(jié)點位于候選循環(huán)上,所述候選循環(huán)包含所述第一網(wǎng)絡(luò)節(jié)點和所述目的地節(jié)點,并與以所述目的地節(jié)點為根的匯集樹具有最大重疊。
13.如權(quán)利要求12所述的方法,還包括: 對于所述網(wǎng)絡(luò)中除了所述網(wǎng)絡(luò)節(jié)點和所述目的地節(jié)點以外的所有節(jié)點,重復(302)所述第二計算步驟和所述指向步驟。
14.如權(quán)利要求12或13所述的方法,還包括: 接收所述網(wǎng)絡(luò)配置的更新; 在所述存儲設(shè)備中存儲所述更新; 使用所述網(wǎng)絡(luò)的所述更新的網(wǎng)絡(luò)配置,計算(303)以所述目的地節(jié)點為根的新的匯集樹;以及 通過對于所述網(wǎng)絡(luò)中除了所述網(wǎng)絡(luò)節(jié)點以外的所有節(jié)點重復所述第二計算步驟和所述指向步驟,在與所述新的網(wǎng)絡(luò)配置對應(yīng)的匯集樹上的所述網(wǎng)絡(luò)節(jié)點的祖先節(jié)點已經(jīng)被重新配置的時間周期之后的時間,更新所述轉(zhuǎn)發(fā)信息表。
15.如權(quán)利要求14所述的方法,其中, 所述時間周期根據(jù)所述新的匯集樹中從最近的祖先節(jié)點到所述網(wǎng)絡(luò)節(jié)點的跳數(shù)距離計算,其中,對于所述網(wǎng)絡(luò)節(jié)點,所述新的匯集樹中從所述最近的祖先節(jié)點到所述目的地節(jié)點的路徑還未變化。
【文檔編號】H04L12/733GK104012051SQ201280053237
【公開日】2014年8月27日 申請日期:2012年11月1日 優(yōu)先權(quán)日:2011年11月1日
【發(fā)明者】Y·貝耶拉諾, S·安東納科波洛斯, P·V·科波爾 申請人:阿爾卡特朗訊公司