專利名稱:在atm平臺上的mpls實現的制作方法
技術領域:
本發明涉及數字通訊系統技術,尤其涉及在異步傳遞方式(ATM)平臺上使用多協議標記交換的網絡節點的實現。
背景技術:
MPLS作為一種傳送互聯網協議(IP)包的增強方式很快在業界獲得支持。這主要是因為MPLS不需要在包路徑的每個路由器或網絡節點檢驗包的目的地IP地址。這樣,MPLS在許多網絡的高速中心特別有用。應該認識到ATM交換的基礎結構可以在高速中心存在,為了在ATM基礎結構上使用MPLS,業界當前正在制定標準的過程中。
隨著標準化努力結果,重點已經放在規定所需的功能特性上,以便使得不同參與者制作的設備之間能夠相互操作。然而,在實現MPLS功能中產生許多問題。這些問題包括(1)在ATM基礎結構上信號標記交換路徑(SLSP)的全面管理和維護;(2)在沒有建立SLSP時的過程;(3)信號鏈路的管理;(4)當信號鏈路或物理鏈路失效時的過程;以及(5)在網絡拓撲結構各種變化下的過程,如創建新的信號鏈路。本發明尋求對這些不同問題提供解決方案。
發明內容
本發明的一個方面對具有若干個互聯節點的通訊網絡提供管理的方法,其中經過若干個中間節點,建立從入口節點到出口節點的連接路徑。這些方法包括將連接路徑與全網絡唯一的標識相關;將路徑標識存儲在入口節點上,以便表示路徑從那里開始;將路徑標識存儲在每個中間節點上,以便表示該路徑經過每個這樣的中間節點變換;以及將路徑標識存儲在出口節點,以便表示路徑在那里結束。
最好,通過從入口節點經過中間節點到出口節點發出連接建立請求,在建立連接路徑的處理中產生將連接標識符存儲的步驟。
本發明的另一個方面涉及嘗試建立連接路徑如SLSP的定時方法,該連接一開始是失敗的。通過在一個時間段過去之后,啟動建立連接路徑的另一個嘗試來完成這一點,其中所述時間段大于為了建立所述連接的兩個先前嘗試,如果存在,之間經過的那個時間段。
本發明的另一個方面涉及對于通訊網絡中若干個連接請求如SLSPS,嘗試建立連接的定時方法。該方法包括提供定時器裝置,用于跟蹤通過的有規律的時間間隔;提供與若干個連接請求相關的記錄列表;從列表中選擇一個記錄;嘗試建立與一個記錄相關的連接;以及如果建立與一個記錄相關的連接,則標記該記錄是成功的;否則,以逐次增大有規律間隔的間隔,重新嘗試建立連接。
在其它的方面,本發明提供上述各方面的不同組合和子集。
通過下面本發明原理的特定實施例的描述以及附圖的說明,本發明的前面和其他方面將變得更加明顯。在附圖中,相同的參考標號表示相同的部件,它們可以具有唯一的字母后綴,以便識別相同部件的特定的實例。
圖1是處理ATM信元和IP包的網絡節點的系統方框圖;圖2是IP包如何在圖1節點中處理的流程圖;圖3是由與圖1節點的輸入/輸出控制器相關的IP轉發器使用的轉發表;圖4是表示與如圖1所示節點相關的“服務接口”的數據結構圖;圖5是與圖1節點上控制卡相關的硬件處理器和軟件處理的結構方框圖;圖6是與IP網絡相關的主IP路由選擇表;圖7是說明IP網絡內MPLS范圍的參考網絡圖;圖8是為了管理信號標記交換路徑(SLSP),由圖1節點使用的數據庫的示意圖;圖8A和8B更詳細地示出圖8數據庫的某些字段;圖9和圖10示出在建立SLSP時圖1節點執行步驟的邏輯流程圖;以及圖11示出在建立新的SLSP信號鏈路的情況下節點執行步驟的邏輯流程圖。
具體實施例方式
下面根據本發明原理的特定實施例或例子進行描述和說明。這些例子僅用于解釋,而不是對這些原理的限制。在下面的描述中,相同的部件在整個說明書和附圖中用同樣相應的參考標號表示。1.ATM交換概述圖1是示范的雙功能ATM交換器和IP路由器10(以后稱為“節點”)的結構方框圖。節點10包括若干個輸入/輸出控制器,如具有物理接口輸入/輸出端口14的線路卡12。一般來說,線路卡12接收端口14上的輸入ATM信元。根據標準的ATM通信協議,每個ATM信元具有固定的大小并且集成了虛擬通道標識符(VPI)和虛擬信道標識符(VCI),使得該信元能夠與特定的虛擬電路(VC)相關。對于每個這樣接收的信元,線路卡12接通VC以查詢查詢表或內容可尋址存儲器(CAM)15。CAM 15對于每個信元根據輸出端口和出口線路卡,提供預先配置的尋址信息。通過“出口連接索引”的方法完成這一點,“出口連接索引”是到出口線路卡上預先配置存儲器位置的指針,它存儲屬于該信元的新的VC標識符,用于它向下一個網絡鏈路上前進。入口線路卡連接尋址信息和出口連接索引到每個信元并且發送它到交換結構20,該結構物理地重新引導或拷貝信元到適當的出口線路卡。出口線路卡接著完成預先配置的VPI/VCI字段替代并且傳送信元到出口端口以外。這種類型ATM交換裝置更詳細的內容可以在PCT公開專利No.WO95/30318中找到,它們都在此作為參考。
如下面更詳細描述的,節點10的特點還有采用控制卡24控制和配置不同的節點功能,包括路由選擇和信號功能。線路卡12可以經過交換結構20將在端口14接收的數據發送到控制卡24。
每個線路卡支持雙向業務流(即能夠處理輸入和輸出包)。然而,為了描述起見,下面的討論假定對于圖1中從左到右的數據業務流,線路卡12A以及端口14A1和14A2提供入口處理,而線路卡12B、12C和端口14B1、14B2、14C1、14C2提供出口處理。2.IP路由選擇概述說明實施例的節點還能夠使數字數據的可變長度包與分層的較高通訊層如互聯網協議(IP)相關,在ATM傳輸層基礎結構上傳遞。通過將每個可變長度包分段為若干個ATM信元用于傳輸,使上述成為可能。這樣,某些VC可以專用于傳遞IP包,而其它VC可以專門與本地ATM通訊相關。
如上所述,當一個信元到達入口端口14A1時,線路卡12A訪問CAM15A以獲得上下文信息用于到達信元的VC。上下文信息可能將VC與“服務接口”相關。這是經過網絡到鏈路層(即“第2層”)路徑如AAL5 ATM路徑的端點。每個I/O端口14上可以存在許多服務接口(SI)。這些服務接口“終接”在同一個線路卡的IP轉發器22上,其意義如隨后描述的,構成IP包的ATM信元被重新組合成包,接著IP轉發過程(與ATM交換過程不同)如下。
IP轉發的實質是在一個SI接收的IP包被在另一個SI重新發送。另外參照圖2示出的處理流程圖,IP包的轉發處理可以邏輯上分為三個傳輸階段,通過節點由兩個處理階段分開。
由箭頭16A示意表示的第一個傳輸階段將與入口SI相關的ATM信元從入口端口14A1傳遞到入口IP轉發器22A。
第二個傳輸階段將來自入口IP轉發器22A的IP包,經過交換結構20傳遞到出口IP轉發器例如轉發器22B。這第二個傳輸階段經過“連接網孔”21實現。在連接網孔內,在每對IP轉發器22之間建立八個內部連接或傳輸接口(TI)18(僅示出三個TI)。提供TI以便使不同級別或等級的服務(COS)用于IP包。
由箭頭16B示意表示的第三個傳輸階段將來自出口IP轉發器22B的IP包傳遞到出口端口如端口14B1和出口SI。
第一個處理階段在入口IP轉發器22A中產生,這里與入口SI相關的ATM信元重新集成到IP包。這如圖2的步驟“A”所示。在步驟“B”,IP轉發器22A隨后檢驗該包的目的地IP地址,以便確定經過網絡用于“下一個跳躍”的適當的出口SI。這種判定基于圖3示意地示出的IP轉發表30(如下面更詳細討論的,由IP協議獲得)。表30的每個記錄包括IP地址字段32和“出口接口索引”字段36。在IP地址字段32查詢包的IP目的地地址,以找出最長匹配于它的地址(即盡可能找到包IP地址目的地的表格項目)。相應的出口接口索引實質上規定了出口線路卡12B、出口IP轉發器22B、用于包的出口SI(更具體的描述可以參見圖8A)。出口接口索引連接到IP包。
另外,在步驟“C”,IP轉發器22A檢驗被該包封裝的服務等級(COS)。部分地根據封裝的COS和內部配置,IP轉發器22A選擇第二個階段TI 18中的一個,這些TI 18將以所需的服務等級到達出口轉發器22B。為了通過交換結構20,入口IP轉發器22A將IP包重新分段為ATM信元(如步驟“D”示意地示出),并且將尋址信息連接到每個信元,表示它的目的地是出口IP轉發器22B。
第二個、較小的處理階段發生在出口IP轉發器22B,這里從包中提取出口接口索引并且在步驟“E”它被修改,以匹配于與出口SI相關的封裝。這樣,與出口SI相關的VPI/VCI連接到包。隨后使用相應于它的第三階段傳送16B,將該包提供到出口SI(標記“G”)。在這個處理中,包被再次分段為ATM信元,這些信元被緩存在與出口SI和/或輸出端口14B1相關的信元隊列中。排隊和可能的阻塞點(標記“F”)也發生在第二個處理和第三個傳輸階段之間-即在出口IP轉發模塊22B和出口SI(標記“G”)之間。
從前面可以看出在ATM平臺上有效的IP轉發功能是一個相當復雜的處理,要求IP包是(a)在入口IP轉發器22A重新集成,(b)接著被分段以經過交換結構傳輸,(c)在出口轉發器22B重新集成,以及(d)接著被重新分段以傳輸到輸出端口以外。另外,有效的IP地址查詢必須在入口轉發器22A完成。這些步驟必須在每個網絡節點完成并且因此增加了端到端通訊的等待時間。3.MPLS介紹為了避免必須在每個包上完成上面的過程,節點10提供了多協議標記交換(MPLS)性能。在常規的IP轉發中,如果在最長匹配于每個包目的地地址的路由器表格中存在某些地址前綴,路由器通常考慮兩個包是同一個“轉發等價類”(FEC)。每個路由器獨立地重新檢驗包并且將它分配給FEC。相反,在MPLS中,當包進入MPLS范圍時,包被分配給FEC僅僅一次,并且表示FEC的“標記”連接到該包。當MPLS布置在ATM基礎結構上時,標記是特定的VC標識符。在MPLS范圍內隨后的跳躍中,不再檢驗IP包。代之以,該標記將索引提供到規定下一個跳躍的表格和新的標記。這樣,在MPLS范圍的隨后跳躍中,包的構成ATM信元可以使用常規的ATM交換技術來交換。這種路徑在本領域中稱為標記交換路徑(LSP),LSP可以由網絡操作員手工設置為永久的標記交換路徑(PLSP)。另一方面,可以使用標記分配協議(LDP),其中根據來自網絡操作員的命令,網絡自動地建立路徑。這種路徑在本領域通常稱為軟永久的或信令LSP(SLSP)。關于MPLS更詳細的內容可以從下面的草案(即正在進行中的工作)MPLS標準或建議中找到,它們每一個在此作為參考[1]E.Rosen,A.Viswanathan,R.Callon,Multiprotocol LabelSwitching Architecture,draft ietf-mpls-arch-06.txt。[2]L.Andersson,P.Doolan,N.Feldman,A.Fredette,B.Thomas,LDPSpecification,draft-ietf-mpls-ldp-06.txt。這個LDP以后稱為“LDP協議”。[3]B.Davie,J.Lawrence,K.McCloghrie,Y.Rekhter,E.Rosen,G.Swallow,P.Doolan,MPLS Using LDP and ATM VC Switching,draft-ietf-mpls-atm-02.txt。[4]B.Jamoussi,Constraint-Based LSP Setup using LDP,draft-ietf-mpls-cr-ldp-01.txt。這個LDP以后稱為“CRLDP”。[5]E.Braden et al.,Resource Reservation Protocol,RFC 2205。這個LDP以后稱為“RSVP”。
節點10經過SI連接實現MPLS功能,如參照圖4更好理解的,該圖示出管理實體或記錄上下文中的SI。SI具有與之相關的內部ID號碼。除了表示ATM鏈路層端點以外,SI還表示用于第3層功能的IP地址,以及表示哪種類型的封裝用于IP。每個SI也可以與許多其他屬性和方法相關。特別地,SI可以與下面的方法或應用相關(1)IP轉發,(2)MPLS轉發,(3)IP路由選擇,以及(4)MPLS信號。換句話說,節點10可以被配置以(1)經過上面討論的IP轉發過程,轉發IP數據包到下一個跳躍路由器;(2)經過如下面討論的MPLS轉發過程,轉發IP數據包;(3)對傳遞用于IP路由選擇協議的消息的包進行處理;以及(4)對傳遞用于MPLS信號協議的消息的包進行處理。4.MPLS結構的概述圖5更詳細地示出控制卡24的硬件和軟件結構。通過硬件視圖可以看出,卡24使用的分布式計算機結構包括若干個分開的物理處理器(它們由圖中矩形方框表示)。
處理器50控制第2層(“L2”)ATM適配層包分段和重新集成功能用于信號消息。如提到的,某些SI將與不同類型的路由選擇協議相關,并且一旦接收到與這些SI中一個相關的包,入口IP轉發器22A將發送包(它被重新分段以通過交換結構20)到L2處理器50。在重新集成之后,L2處理器50發送與IP路由選擇協議相關的信號消息到稱為“IP路由選擇”68的軟件任務,該任務在路由選擇處理器58上執行(沒有示出L2處理器50和IP路由選擇68之間的連接)。與MPLS LDP協議相關的信號消息發送到在第3層(L3)處理器54上執行的標記管理系統任務(LMS)64。來自LMS 64和IP路由選擇68的輸出消息發送到L2處理器50用于隨后提供到適當的出口線路卡和出口SI。
IP路由選擇68運行IP內部網關或路由選擇協議如IBGP、ISIS、PIM、RIP或OSPF(讀者從http//www.ietf.org./html.charters/wg-dir.html可以得到關于這些協議更詳細的信息)。由于這些動作,IP路由選擇68保持了圖6示意示出的主IP路由選擇表75。主表格75的每個記錄包括用于IP地址字段的字段75a,用于相應于它的目的地IP地址或前綴的下一個跳躍路由器ID(它是本身的IP地址)的字段75b,以及與下一個跳躍路由器ID相關的出口接口索引的列表75c。當網絡拓撲結構改變時,IP路由選擇將通過發送適當的出口接口索引到它來更新IP轉發器22的轉發表格30(注意表格30僅具有一個與每個IP目的地地址項目相關的出口接口索引)。
如圖5所示,節點10使用若干個L3處理器54,每個處理器包括一個LMS 64。每個LMS 64終接TCP和UDP對話用于LDP信號鏈路(LDP對話)并且對于每個LSP運行一個狀態機。如下面進一步詳細討論的,LMS 64接收建立和去除LDP對話的請求,并且建立和去除SLSP。
LMS 64可以通過商業渠道從Harris & Jeffries of Dedham,MA獲得。為了能夠相互兼容,節點10包括“轉移(translation)”軟件、MPLS上下文應用管理器(MPLS CAM)65,該管理器在控制卡24的LMS和剩余的軟件實體之間轉移和轉發輸入或輸出請求/響應。
每個L3處理器54還包括一個訪問處理任務72。這個任務保持已經請求連接的有關狀態信息。
另一個處理器56提供用戶接口功能,包括對經過中心網絡管理系統(NMS)(如Newbridge Networks Corporation 46020TM產品)或者經過網絡終端接口(NTI)直接提供到節點的命令指令產生的管理請求,進行解釋和應答。對于MPLS功能提供用戶接口66,用于對程序PLSP、SLSP和LDP對話,接收和應答管理請求。
當在節點建立連接時,提供資源控制處理器52用于分配資源和將資源去除。對于MPLS功能,處理器52包括標記管理器任務62,該任務對于LSP分配唯一的標記值。
在路由選擇處理器58上,稱為“MPLS路由選擇”70的軟件任務連接在UI66、IP路由選擇68和運行在L3處理器54上的LMS 64之間。一般地說,MPLS路由選擇70管理SLSP。例如,在路徑建立期間,MPLS路由選擇70接收來自用戶接口66的SLSP建立請求,檢索來自IP路由選擇68的下一個跳躍路由選擇信息,選擇到下一個跳躍的LDP對話,訪問LMS 64適當的實例以使用選擇的LDP對話建立SLSP路徑。當接收用于路徑的標記映射時,LMS 64通知MPLS路由選擇70。MPLS路由選擇70隨后觸發和更新IP轉發器22的轉發表格30用于新的路徑。類似地,當網絡拓撲結構變化時,MPLS路由選擇70將這些變化反映到MPLS路由選擇范圍。MPLS路由選擇的功能是這個描述其余部分的重點。5.參考網絡圖7示出參考IP網絡80,其中MPLS路由選擇范圍存在于路由器/節點A、B和C之中,網絡80的其余部分使用IP特定的路由選擇協議如OSPF。假定網絡操作員希望建立SLSP,從節點A開始,到網絡某處的IP目的地地址1.2.3.4(以后稱為“FEC Z”)(注意,根據草案MPLS標準,FEC包括目的地IP地址和它的前綴)。網絡操作員可以對于FEC Z,經過請求建立SLSP的它的NMTI或NMS(未示出),在節點A輸入管理命令。根據使用的標記分配協議的類型(例如,LDP協議,CRLDP或RSVP),網絡操作員可以規定SLSP的目的地節點,或者甚至明顯地規定SLSP直到某些目的地節點所需的路由(即源路由選擇的SLSP)。在另一種情況下,標記分配協議可以使用最好效果的策略(例如,LDP協議),以識別盡可能接近FEC Z目的地地址的節點(在MPLS路由選擇范圍內)。在說明的參考網絡中,假定節點C是FEC Z的MPLS路由選擇范圍內“最接近”的節點。
在網絡80中,信號鏈路82(它與特定的SI相關)被提供用于在節點之間傳遞IP路由選擇消息。另外,信號鏈路84被提供用于在它們之間傳遞MPLS標記分配協議消息。每個信號鏈路84具有與它相關的LDP對話。
就術語來說,除非上下文另外的表示,術語“入口SLSP”用于識別在始發節點(例如節點A)的SLSP,術語“轉接(transit)SLSP”用于識別在轉接節點(例如節點B)的SLSP,術語“出口SLSP”用于識別在目的地節點(例如節點C)的SLSP。
圖7示出的參考IP網絡用于為讀者提供典型的應用,這種應用有助于幫助解釋本發明。因此,本發明不限于這里描述的特定應用。6.SLSP的數據庫管理如圖8的數據庫示意圖所示,為了創建、監控和跟蹤入口、轉接和出口SLSP,MPLS路由選擇70保留了許多表格或數據存儲器。因為每個SLSP由一個LDP對話管理,每個節點上的MPLS路由選擇70跟蹤不同的LDP對話,使用LDP信號數據庫(LSLT)100在節點和它的LDP對等路由選擇實體之間建立這些對話。LSLT 100包括每個LDP路由選擇對等的具有一個項目或記錄104的散列表格102。記錄104包含用作散列表格102索引的路由器id字段104a和指向LDP對話列表106的指針104b(即*ldp_session_list)。路由器id字段104a存儲LDP對等路由器的IP地址,一個或多個LDP對話已經配置到該路由器。每個LDP對話由指向LDP對話列表106的一個項目或記錄108表示。注意,可以在節點和給定的MPLS對等路由器之間配置多個LDP對話,這樣,對話列表106能夠具有多個項目或記錄108。在圖8中,相對于通過說明的路由器id字段104a識別的LDP對等路由器,已經配置了兩個LDP對話,這樣,在相應的LDP對話列表106中存在兩個記錄108。
LDP對話列表106的每個記錄108包括下面的字段●ifIndex(108a)-節點10內識別特定接口索引的唯一號碼和對于LDP應用已經配置的SI。圖8A更詳細地示出ifIndex字段的結構。它包括響應于SI的線路卡/IP模塊的節點內部裝置地址、出口端口、SI ID號碼(它在每個線路卡是唯一的)和標識代碼或用于控制LDP信號鏈路的控制卡24上L3處理器54的內部裝置地址。●*fit_list_entry(108b)-指向FEC信息表(FIT)110的指針。如下面更詳細描述的,FIT跟蹤來自節點的所有入口SLSP。fit_list_entry指針108b指向與這個LDP對話相關的入口SLSP的FIT 110內的列表。●ldp_status(108c)-狀態表示。該狀態包括一個表示是否正在使用LDP對話的位標記(未示出),以及一個表示是否資源可以用于LDP對話的位標記(未示出)。當不存在可用于分配的標記或當相關的SI不操作時,認為LDP對話不具有可利用的資源。●*next_ldp_session-指向與同一個LDP對等路由器相關的另一個LDP對話記錄108的指針。
FIT 110跟蹤入口SLSP,即已經從節點開始的SLP。(注意FIT 110不跟蹤轉接或出口SLSP)。當配置SLSP時由MPLS路由選擇70創建FIT項目或記錄112,當刪除SLSP時從FIT 100去除記錄112。
每個FIT項目或記錄112包括下面的元素●**prev_fitEntry(112a)-指向參照當前項目指針的指針。這便于從列表中增加和刪除。●FEC-用于LSP的IP目的地。根據草稿標準,FEC包括用于預定LSP的IP目的地地址112b和前綴112c。●Srt_index(112d)-一個到源-路由選擇表格或列表(SRT)114的索引。如果LSP不是源-路由選擇的,采用0值,如果LSP是源-路由選擇的,則采用大于0的值。如所示,在SLSP建立命令包括源路由選擇路徑的情況下,路由器ID IP地址以順序次序存儲在SRT 114中。●ifIndex(112e)-為了FEC,規定用于到達下一個跳躍路由器的出口線路卡和出口SI。這個字段的結構與圖8A所示的相同。然而應該注意,這個字段112e的FIT 110規定了用于FEC的出口數據路徑(與信號信道不同)的SI。●fecStatus(112f)-這個FIT項目的狀態由一個tt1值、一個ingressSetup標記、一個retrySeq計數器以及一個retrySec計數器表示(見圖8B)。ttl值表示應該從輸入包減少激活值的時間。ingresSetup標記表示SLSP被成功地建立。如下面更詳細描述的,retrySeq計數器跟蹤MPLS路由選擇嘗試建立這個SLSP的次數。retrySec計數器跟蹤在嘗試下一個重試之前還剩下多少秒鐘。●lsp_id(112g)-用于識別MPLS范圍內SLSP的唯一標識符。在當前的實施例中,該標識符包括節點的IP路由器ID加上UI 66選擇的唯一的號碼的連接,以唯一地識別節點內的LSP。lsp_id還用作FIT 110的散列鍵。●*RWTptr(112h)-指向下面更詳細描述的路由選擇監視數據庫(RWT)120的指針。●Next.RTLPtr(112i),prev.RTLPtr(112j)-用于跟蹤FIT項目112的雙向指針,其中fecStatus字段112f的ingressSetup標記表示沒有成功地建立相應的SLSP。這些指針基本上用于實現包括在FIT 110中的重試列表(RTL)116。例如,標記為“A”和“B”的FIT項目112形成RTL 116的部分。這樣,RTL使節點能夠快速經過FIT 110以找出所有對等路由器的還沒有決定的SLSP。●*next_fitEntry(112k)-指向下一個FEC/FIT項目的指針,該項目如當前FEC/FIT項目使用相同的LDP對話建立。
RWT 120跟蹤由節點控制的所有SLSP,即入口、轉接和出口SLSP。RWT 120包括散列表格122,該表格包括IP指示地址字段122a、IP前綴字段122b、指向下面更詳細描述的LSP列表124的*rwt-entry 122C。
根據使用的特定標記分配協議,IP目的地地址和前綴字段122a、122b用于存儲不同類型的管理實體。這些實體可以是(a)用于LDP協議的FEC;(b)用于非-源路由選擇RSVP的目的地節點的路由器ID;(c)用于嚴格的源-路由選擇的CR-LDP和RSVP的下一個節點的路由器ID;以及(d)用于釋放源-路由選擇的CR-LDP和RSVP的配置的源-路由選擇的下一個跳躍。這些都可以概述為SLSP經過網絡進行的下一個跳躍。
注意表格122是基于IP前綴字段122b散列的。這些可以是在轉接節點或出口節點都參照相同IP前綴的一些請求的SLSP。每個單獨的SLSP由LSP列表124中分開的項目或記錄126識別。然而,可能僅有一個入口SLSP與節點10上任何給定的IP前綴相關。(換句話說,對于從LMS64接收的每個下一個跳躍請求存在項目126,以及對于在節點創建的入口SLSP存在一個項目。注意出口SLSP還請求下一個跳躍信息并且因此包括在這個表格中。)每個LSP列表項目126包括下面的元素●prev_RwtPtr(126a),next_RwtPtr(126f)-用于對特定的IP前綴跟蹤另外的項目126的雙向指針。使用指針126a和126f,將與相同的IP前綴122b相關的所有LSP連接在一起。●next_EgressPtr(126b),prev_EgressPtr(126c)-如下面更詳細討論的,當配置新的LDP對話時,用于跟蹤可以擴展的出口SLSP的雙向指針。這些指針基本上用于實現嵌入在RWT 120中的LSP出口表格或列表(LET)130。例如,在圖8中,標記“X”和“Y”的RWT項目126屬于LET 130。只要在建立SLSP中使用最佳設計的路由選擇策略(例如,LDP協議),并且節點10找不到更“接近于”相應FEC的目的地地址的LDP信號鏈路,項目126就加到LET 130。例如在參考網絡建立FEC Z的SLSP中,節點C(它位于MPLS路由選擇范圍的邊界)找不到任何更多的朝向FEC Z目的地地址的LDP信號鏈路,這樣當節點C創建這個SLSP的RWT項目126時,將該項目加到LET上。●fitEntryPtr(126d)-指向相應于這個RWT項目126的FIT項目112的指針。除了在這個節點創建的入口SLSP以外,這個字段值對于所有的項目將是空的。●L3_id(126e)-初始要求對LSP下一個跳躍請求的L3處理器的地址或標識,或者用于建立入口SLSP的L3處理器的地址或標識。●lsp_id(126g)-除了這些LSP可以在其它節點啟動以外,與FIT 110中的lsp_id 112g相同。7.建立LDP對話經過管理請求配置LDP對話,該請求經過UI 66接收并且轉發到MPLS路由選擇70。由UI 66獲得的數據包括LDP信號鏈路SI的ATM鏈路層端點(即-線路卡地址、端口、VPI/VCI)、分配到SI的IP地址、以及LDP特定的參數如標記范圍、標記空間ID和激勵超時。
MPLS路由選擇70使用循環算法以選擇LMS 64的一個實例(即L3處理器54中的一個),并且請求相關的MPLS CAM 65以建立一個新的LDP對話。MPLS CAM使能網絡操作員選擇的SI上LDP信號應用并且配置節點,包括與L2處理器50相關的濾波裝置(未示出),以允許與特定的LDP信號SI相關的所有LDP包在線路卡12和選擇的LMS/L3處理器54之間傳播(在入口和出口方向)。根據可應用的標記分配協議(即LDP協議,CRLDP,RSVP),一旦實現這一點,LMS 64將LDP對話建立消息發送到LDP對等路由器。這些消息包括“hello”和其它的對話建立消息。
一旦建立與LDP對等路由器的LDP對話,LMS 64通知協商標記范圍的標記管理器62有關LDP對話(它是根據草稿標準,建立LDP對話的功能)。LMS 64還傳遞LDP對等路由器的IP地址到MPLS路由選擇70,該路由選擇70將這個地址存儲在LSLT 100的路由器ID字段104a中。另外,LMS 64將識別LDP信號SI的接口索引傳遞到MPLS路由選擇70,該路由選擇70將它存儲在LSLT 100的ifIndex字段108a中。8.建立一個SLSP8.1在入口節點的過程參照參考網絡,必須經過節點A的NMTI或者經過與節點A通訊的NMS,通過網絡操作員在節點A對于FEC Z明顯地建立一個SLSP。配置SLSP的指令包括它的參數Z中的一個,即FEC Z的目的地IP地址和它的前綴。該命令由UI 66接收和解釋。
如前所述,UI 66選擇唯一的LSP ID,它最好包括節點的IP路由器ID和唯一號碼的連接。UI 66隨后請求MPLS路由選擇70以創建FEC Z的SLSP并且將它與選擇的LSP ID相關。
MPLS路由選擇70從IP路由選擇68請求FEC Z的下一個跳躍信息。這將發生在無源-路由選擇的LSP,以便獲得下一個跳躍信息以及在源-路由選擇的LSP,以便檢驗源-路由選擇的信息(它將由網絡操作員提供)。更準確地說,MPLS路由選擇70執行下面的過程以啟動這個新的FEC的SLSP的建立。
另外參照圖9,在第一個步驟150,對于具有如FEC Z相同的IP目的地地址和前綴的現有實體112,MPLS路由選擇70搜索FIT 110。如果在FIT 110中存在這樣一個項目,則在步驟152,MPLS路由選擇70返回一個失敗代碼,表示FEC Z已經在這個節點建立。在步驟158,MPLS路由選擇70創建新的FIT項目112并且將它附加到FIT 110。相應的項目126也插入到LSP列表124用于RWT散列表格122的FEC Z。如果需要,MPLS路由選擇70將新的項目122加到RWT 120,該RWT 120包括FEC Z的IP前綴和地址,或者在明顯路由選擇的第一個跳躍的IP前綴和地址。
在步驟160,MPLS路由選擇70請求IP路由選擇68以提供對等IP地址用于到達FEC Z的下一個跳躍(或用于非-源路由選擇的RSVP的目的地節點的路由器id,或用于釋放源-路由選擇CR-LDP和RSVP的配置的源-路由選擇中的下一個跳躍)。一旦獲得,在步驟162,MPLS路由選擇70搜索匹配于下一個跳躍路由器ID的LSLT項目102。如果匹配的LSLT項目存在,則在步驟164,MPLS路由選擇70從相應的LDP對話列表106中選擇可利用的LDP對話。這是一個環形連接的列表,管理它使得LSLT項目102的*ldp_session_list指針104b指向下一個SLSP建立使用的LDP對話,該下一個SLSP建立由MPLS路由選擇70來選擇。一旦選擇了LDP對話,使用相同的LDP對話,將對于FEC Z最近創建的FIT項目112(經過**prev_fitEntry和*next-FitEntry指針112a和112i)連接到另外的FIT項目。
*next_ldp_session指針108d指向LDP對話列表的下一個對話。(如果在列表中只有一個LDP對話,則*next_ldp_session指向它自己)。一旦FIT 110和LDP對話列表106之間的連接被創建,MPLS路由選擇70將更新*ldp_session_list指針104b以指向具有資源的LDP對話列表的下一個對話。對于給定的FEC,這導致循環接近選擇的LDP對話。如果到對等LDP路由器的對話不具有資源,則ldp_session_list指針104b將不更新。在這種情況下,在MPLS路由選擇70停止搜索對話之前建立路徑時,再次通過該列表。
還要注意如果MPLS路由選擇70沒有找到匹配于下一個跳躍路由器ID的LSLT項目102,則那里不存在LDP信號鏈路。在這種情況下,在步驟166,MPLS路由選擇70將最近創建的用于FEC Z的FIT項目加到RTL,并且在步驟168,返回適當的失敗代碼。
一旦選擇了LDP對話來信號建立SLSP,則在步驟170,MPLS路由選擇70請求LMS 64信號建立SLSP。根據草稿LDP標準,節點A的LMS 64發送標記請求消息到它的下端LDP對等路由器,即節點B,表示希望建立FEC Z的LSP。根據路由選擇協議(逐段或源路由選擇),標記請求消息經過MPLS路由選擇范圍向下傳播到出口節點C,標記映射消息向上傳播回入口節點A。最后,如圖10所示,標記消息應該在對于FEC Z的MPLS路由選擇70選擇的LDP信號鏈路上的入站接收。這個標記消息識別應該用于轉發IP包和它的ATM信元到節點B的標記即VPI/VCI值。該標記被傳送到MPLS路由選擇70和標記管理器62。另外,在步驟174,LMS 64信號給訪問處理器72以配置用于SI的出口接口索引,用在出口線路卡和端口以控制數據業務量。(注意,出口線路卡將是同一個線路卡以及端口與FEC Z的LDP信號SI相關)。這將FEC Z與ATM VPI/VCI標記“相聯系”。這種聯系被報告給MPLS路由選擇70,該路由選擇70在步驟176搜索FIT 110以找出匹配于FEC Z的項目112,于是ifIndex字段112e被從訪問處理器72獲得的出口接口索引更新。
另外,MPLS路由選擇70通過設置retrySeq和retrySec計數器為零來更新fecStatus字段112f(圖8B),并且設置ingressSetup標記為“1”,這樣表示成功地建立。在步驟178,MPLS路由選擇70通知IP路由選擇68關于新建立的SLSP和它的出口接口索引,于是后一個任務更新它的IP轉發表格75(圖6)以將新建立的出口接口索引(由參考標號76示出)加到適當的列表75c中。接著,IP路由選擇68可以在列表75c中具有許多可能的出口接口索引,該表可以用于轉發包。為了在這些情況中進行判定,IP路由選擇68使用優先級方案,該方案給予MPLS使出口接口索引(每個FEC僅可能有一個)的優先級高于非MPLS出口接口。經過與出口接口索引列表75c的每個項目相關的位圖75d的裝置(只示出一個)實現優先級方案。位圖75c表示哪種類型的應用例如SLSP或IP與出口接口索引項目相關。在這個優先級方案以后,在步驟180,IP路由選擇下載新創建的出口接口索引76到每個IP轉發模塊的轉發表格30。(表格30僅列出對于每個IP地址或它的前綴的單個出口接口索引)。MPLS路由選擇70還在步驟182異步地通知UI 66,對于FEC Z的入口SLSP已經成功地創建。
在步驟184,在預定的時間段內沒有接收到標記映射消息,或者從節點B接收的信號消息否認FEC Z的SLSP建立的情況下,LMS 64通知MPLS路由選擇70有故障。因此,MPLS路由選擇將FEC Z的FIT項目112放在RTL 116上,設置fecStatus ingressSetup字段(圖8B)為零并且對retrySeq字段的值加1(最大值為6)。在步驟186,MPLS路由選擇通知UI 66有故障。
用于FIT項目的重試裝置是線性補償裝置,它使得在10、20、30、40、50和60秒鐘重新嘗試建立SLSP路徑。這是與每10秒鐘就停止的MPLS路由選擇70相關的一個重試計數器。這時,MPLS路由選擇經過RTL116,將RTL 116中每個FIT項目112剩下的時間量(retrySec-圖8B)減1。如果retrySec值是零,從RTL 116中去除FIT項目112,重試序列號加1并且進行建立入口SLSP的另一次嘗試。如果重試成功,retrySeq設置為零而ingressSetup標記設置為1。如果重試不成功,則FIT項目被加回到RTL,retrySeq加1(最大的序列號最好是6)。當retrySeq計數器增加時,MPLS路由選擇70重試建立SLSP的時間段也增加到下一個最高的間隔。例如,當retrySeq從2增加到3時,重試之間的時間間隔從20增加到30秒鐘,即retrySeq設置為30。當retrySeq等于6時,重試被分開60秒鐘。
8.2在轉接節點的過程在轉接節點B,用于FEC Z的標記請求消息在MPLS信號鏈路84上接收并且由L2處理器50轉發到負責的LMS 64。如前面討論的,LMS 64請求來自MPLS路由選擇70的下一個跳躍信息,它接著從IP路由選擇68檢索用于FEC Z的下一個跳躍路由器ID,將下一個跳躍路由器ID存儲在RWT 120,選擇下行LDP對話到下一個跳躍LDP對等路由器即節點C,并且將這個數據提供到LMS 64。LMS 64隨后請求標記管理器62保留(當上行節點A的LDP對話建立時確定的)協商的標記范圍內的VPI/VCI標記。當標記映射消息發送到那里時,這個標記被上行轉發到節點A。然后,如果需要,接收上行標記請求消息的LMS 64將信號給負責下行LDS對話的(不同的L3處理器54上)另一個LMS實例,以便將標記請求消息送到節點C。
當從下行發消息鏈路接收到標記映射消息時,LMS 64信號給訪問處理器72以在與上行節點A相關的標記即VPI/VCI和與下行節點C相關的標記即VPI/VCI之間建立交叉連接,因此建立了下行數據流。如上所述,在轉接節點上,這導致ATM類型交叉連接。另外,負責到節點A的上行LDP對話的LMS 64,采用由標記管理器62先前保留的標記,將一個標記映射消息轉發給它。
注意對于源-路由選擇SLSP,轉接節點B不必獲得來自IP路由選擇70的下一個跳躍信息。然而,優選特性使得轉接節點經過它的內部路由選擇表格來確認,在源路由選擇列表中提供的下一個跳躍是正確的(例如,通過檢查下一個跳躍列表在請求的IP目的地地址下還是在前綴下)。如果不能確認明顯路由選擇的下一個跳躍,則可以宣布產生一個錯誤。
8.3在出口節點上的過程在出口節點C上,標記請求消息在具有B節點的上行信號鏈路接收并且由L2處理器50轉發到負責的LMS 64。LMS 64請求來自MPLS路由選擇70的下一個跳躍信息,接著,它請求來自IP路由選擇68的下一個跳躍信息。然而,在這種情況下,產生下面情況中的一種(1)由IP路由選擇68返回的下一個跳躍路由器ID是當前的節點;或者(2)下一個跳躍被找到,但不存在到下一個跳躍的LDP對話(即,到達MPLS范圍的邊沿)。在這兩種中任何一種情況下,MPLS路由選擇70通知LMS64,FEC Z的SLSP必須在這個節點出口,因此如前所述,LMS 64發送標記映射消息到上行節點B,但不能將FEC Z的標記請求消息轉發。如上所述,在這種情況下,MPLS路由選擇70在RWT 120中加上項目126,還將新創建的RWT項目126加到LET 130。
在這種情況下,LMS 64命令訪問處理器72建立用于IP轉發配置的SI。這個SI具有ATM端點(即VPI/VCI),該端點等于對SLSP用作節點B和C之間MPLS標記的VPI/VCI。
9.交換/路由活動性描述FEC Z的SLSP建立之后,現在簡單描述與FEC Z相關的IP包處理的方式。在入口節點A,采用IP轉發器22A重新集成到構成IP包的多個ATM信元的形式,IP包到達端口14A1。一旦知道接收的包的目的地IP地址,IP轉發器22A檢驗它的轉發表格30中“最近的”項目。這將是結合FEC Z的SLSP的建立,通過IP路由選擇68下載的FEC Z的項目。這樣,轉發表格30提供出口接口索引76,包括出口線路卡12B的識別或地址、出口端口14B1和出口SI號碼。出口接口索引連接到包。部分地根據封裝在包中的COS字段,入口IP轉發器22A還選擇一個TI 18以經過交換結構20傳送包到出口IP轉發器22B。該包隨后根據選擇的TI 18經過交換結構20被重新分段用于傳送,并且由出口IP轉發器22B接收。接著,出口IP轉發器22B提取連接到包的出口SI和COS信息,并且修改它以匹配于由出口接口索引(即出口SI)表示的封裝。這包括將VPI/VCI標記連接到包。包隨后分段為構成的ATM信元,并且采用由出口SI表示的VPI/VCI值,傳送到出口端口14B1以外。
在轉接節點B,相應于IP包的ATM信元由入口端口接收。CAM 15返回ATM出口連接索引,因此信元作為ATM信元來處理。入口線路卡12A還將從CAM 15A檢索的內部尋址信息連接到每個信元,因此使信元能夠路由選擇到代替信元的VPI/VCI值的出口線路卡。出口線路卡隨后使用新的VPI/VCI值傳送信元。注意在這種情況下,IP轉發模塊22不涉及交換活動,并且不需要重新集成和重新分段IP包,或完成IP路由選擇查閱。
在出口節點C,相應于IP包的ATM信元通過入口端口接收并且根據信元傳遞的VPI/VCI配置的SI來處理。配置這個SI使得這些信元被發送到IP轉發模塊22A,用于重新集成到較高層IP包,并且以后作為有規律的IP包處理。10.網絡拓撲結構變化10.1新的LDP對話當在節點10建立新的LDP對話時,LMS 64發信號給MPLS路由選擇70關于這個事件,并且通知它關于新的LDP對話的接口索引。該節點是新的LDP對話的啟動或應答時,該信號產生。另外參照圖11的流程圖,在步驟190,MPLS路由選擇搜索LSLT 100的對等路由器ID IP地址。如果找到這個路由器的LSLT項目194,則在步驟192,MPLS路由選擇70檢驗相應的LDP對話列表106,以確保對于具有如新的LDP對話相同的接口索引的LDP對話,不存在項目108。如果沒有找到這樣的項目,在步驟195創建新的項目108。如果找到這樣的項目,就返回一個錯誤。如果沒有找到匹配于新配置的LDP對話的對等路由器ID的LSLT項目104,則在步驟194,MPLS路由選擇創建和插入新的LSLT項目104,接著在步驟195,創建LDP對話列表項目106。
在步驟196,MPLS路由選擇70經過LET 130。對于屬于LET的每個RWT項目126,從散列表格122確定相應的FEC,并且在步驟200,從IP路由選擇68請求該FEC的下一個跳躍路由器ID。在步驟201,下一個跳躍路由器ID與新配置的LDP對話的對等路由器ID相比較。如果沒有找到匹配的,控制返回到步驟198,而如果找到匹配的,控制轉到步驟202。在步驟202,MPLS路由選擇70命令LMS 64發送一個標記請求消息到新的可到達的對等路由器用于識別的FEC。
10.2信令鏈路故障當LDP對話在一個節點失敗時,它停止轉發所有使用相關的VPI/VCI范圍(存儲在標記管理器62中)的SLSP,并且從節點中去除交叉連接。對于與失敗的LDP對話相關的每個SLSP,該節點還發送標記提取消息到上行對等的一個。例如,如果MPLS鏈路84BC(圖7)失敗,節點B發送關于FEC Z的標記提取到入口節點A。在入口節點A接收標記提取消息時,它停止使用路徑(使用IP逐段轉發來代替),并且立刻重新啟動前面描述的步驟,以重新建立FEC Z的路徑。如果這不成功,則FECZ的SLSP放在RTL 116上,接著完成如前面所述的重試過程。
另外,無論什么原因,當LDP對話變得在入口節點A不起作用時,LMS 64通知MPLS路由選擇70。作為這個訪問的一部分,LMS 64將對等路由器ID IP地址提供給MPLS路由選擇70。MPLS路由選擇70隨后搜索LSLT 100的字段ID路由器104a的對等IP地址。如果沒有對等的IP地址項目,則返回一個錯誤。如果對于對等的IP地址存在項目104a,則對于失敗的LDP對話,搜索相應的對話列表106。如果存在匹配的LDP對話項目108,則它從對話列表106中去除。
使用失敗的LDP對話,去除的對話列表項目106的*fit_list_entry指針108b指向表示所有入口SLSP的所有FIT項目112的列表。對于這些項目的每一個,MPLS路由選擇70如上所述立刻嘗試重新建立入口SLSP,看看是否有另一個LDP對話可以用于建立入口SLSP。如果該嘗試不成功,入口SLSP依靠RTL 116,并且重試過程在下面描述。
10.3 IP路由選擇變化隨著時間的進行,IP路由選擇68可以發現FEC Z新的下一個跳躍。例如,在節點B的參考網絡IP路由選擇可以發現FEC Z的下一個跳躍應該是節點D(未示出)。根據這個發現,節點B上的IP路由選擇68通知MPLS路由選擇70關于FEC Z的新的下一個跳躍路由器ID。MPLS路由選擇70使用下面的處理以重新確定FEC Z的SLSP線路首先,它搜索匹配于IP前綴地址的RWT項目122,例如FEC Z,它在IP路由選擇表格75中已經變化。在沒有找到項目122的情況下,MPLS路由選擇返回,否則它繼續下一個搜索匹配于新的下一個跳躍D的路由器ID的LSLT項目104。如果存在LSLT項目104和因此對于新的路由器D的LDP對話,MPLS路由選擇使用到路由器D的LDP對話,請求LMS 64在由匹配的RWT項目122指向的RWT列表124中進行每個轉發SLSP。這樣,轉發SLSP被重新確定到新的下一個跳躍路由器ID的線路。然而,如果不存在用于新的下一個跳躍的路由器ID的LSLT項目102并且因此不存在LDP對話,則MPLS路由選擇70將每個轉發SLSP放在相應于LET 130上舊的跳躍路由器的RWT列表124中,并且通知LMS 64,應該將這些SLSP看作出口SLP。接著,LMS 64命令訪問處理器72建立出口SLSP的出口SI。
MPLS路由選擇70還搜索匹配于受影響的FEC的FIT項目112。如果存在匹配于FEC的FIT項目112,并且fec-status字段112f的ingress_setup標記不是零(即建立了路徑),MPLS路由選擇70請求LMS 64通過發送標記釋放消息給下端路由器來關閉入口SLSP。MPLS路由選擇70隨后搜索匹配于新的下一個跳躍的路由器ID IP地址的LSLT項目104a。如果存在這樣一個LSLT項目,則從相應的LDP對話列表106中選擇LDP對話,建立入口SLSP的過程如上所述。
10.4物理鏈路故障當兩個節點之間的物理鏈路出現故障時,MPLS信號和IP路由選擇的信號鏈路82和84(見圖7)失敗。在當前的實施例中,IP路由選擇68認識到鏈路是變弱的并且在LMS 64認識到那里的任何LDP對話是變弱的之前,更新它的路由選擇表格75。通過適當地設置IP路由選擇中LDP對話和信號對話的“超時”周期來完成這一點,使得接口故障比MPLS路由選擇70更快地反映到IP路由選擇68。因此,IP路由選擇68通知MPLS路由選擇70關于被影響的SLSP的新的下一個跳躍路由器ID,并且如上所述,MPLS路由器70將使用通過IP路由選擇68識別的新的下一個跳躍路由器,重新確定來自當前節點的這些SLSP路徑。當MPLS路由選擇70認識到信號鏈路變弱情況發生時,這將比去除受影響的SLSP回到入口節點并且重新信號給它們更有效。
前面的實施例在某種程度上只是用于特定的描述目的。本領域的技術人員應該理解,可以對這里公開的實施例進行各種修改和改變而不背離本發明的精神和范圍。
權利要求
1.一種嘗試在通訊網絡的第一個和第二個節點之間建立連接路徑的定時的方法,所述方法包括在一個時間段過去之后啟動建立連接路徑的所述嘗試,其中所述時間段大于另一個時間段,這另一個時間段是為了建立所述連接的兩個先前嘗試,如果存在,之間已經過去的時間段。
2.如權利要求1所述的方法,其中所述時間段大于所述另一個時間段一個固定的時間值。
3.如權利要求1所述的方法,其中所述時間段不超過最大的時間值。
4.如權利要求1所述的方法,其中所述連接路徑是軟永久標記交換路徑。
5.如權利要求2所述的方法,其中所述固定的時間值是10秒鐘。
6.一種嘗試對通訊網絡的若干個連接請求建立連接的定時方法,所述方法包括具有一個計數器裝置以跟蹤有規律的時間間隔的經過;具有一個與所述若干個連接請求相關的記錄列表;從所述列表中選擇一個記錄;嘗試建立與所述一個記錄相關的連接;以及如果與所述一個記錄相關的所述連接被建立,則標記所述這個記錄是成功的,否則,以所述有規律的間隔連續增加間隔,重試建立所述連接。
7.如權利要求6所述的方法,其中從所述列表中選擇一個記錄包括在所述記錄列表中具有一個時間字段;在用于所述記錄列表的每個項目的每個所述有規律的時間間隔上將所述時間字段中的時間值減量;以及如果對于一個項目是零,所述時間值是零,則選擇所述項目作為所述一個記錄。
8.如權利要求6所述的方法,其中當重新嘗試以連續時間間隔建立所述連接時,所述連續時間間隔不超過最大的時間值。
9.如權利要求8所述的方法,其中所述最大的時間值是60秒。
10.在包括兩個節點、所述兩個節點之間具有至少兩個相關的通訊鏈路的通訊網絡中,一種利用循環算法在所述至少兩個中選擇一個通訊鏈路用于在所述兩個節點之間發信令的方法。
11.如權利要求10所述的方法,其中所述方法還包括對于所述兩個節點之間的通訊不具有足夠的資源或者在那里具有故障的情況下,不選擇所述至少兩個通訊鏈路中任何通訊鏈路。
全文摘要
本發明提供一種嘗試在通訊網絡的第一個和第二個節點之間建立連接路徑的方法。該方法在時間段過去之后啟動建立連接路徑的嘗試,其中該時間段大于另一個時間段,這另一個時間段是為了建立所述連接的兩個先前嘗試,如果存在,之間已經過去的時間段。
文檔編號H04L12/723GK1357999SQ0114311
公開日2002年7月10日 申請日期2001年12月7日 優先權日2000年12月8日
發明者邁克·里夫斯, 紐特安·貝格基, 戴維·托斯卡諾, 肯·達布克 申請人:阿爾卡塔爾加拿大公司