本申請涉及通信網(wǎng)絡,尤其涉及一種在網(wǎng)絡通信中實現(xiàn)拓撲透明區(qū)的系統(tǒng)和方法。
背景技術:
隨著傳統(tǒng)通信網(wǎng)絡的不斷擴大,例如,包含越來越多的節(jié)點,開始出現(xiàn)了可擴展性問題以及其他問題。在一個包括單自治系統(tǒng)(autonomoussystem,as)域(例如,如以下圖1所示)的網(wǎng)絡中,每個節(jié)點都需要了解所有其他節(jié)點的位置關系(即,鄰接),如此一來,所有節(jié)點都會創(chuàng)建網(wǎng)絡拓撲圖。一個節(jié)點要可以通過鏈路狀態(tài)信息在整個網(wǎng)絡洪泛來了解另一個節(jié)點的鄰接。洪泛是基于一個或多個內部網(wǎng)關協(xié)議(interiorgatewayprotocol,igp)的,例如,開放式最短路徑優(yōu)先(openshortestpathfirst,ospf)、中間系統(tǒng)(intermediatesystem,is)到中間系統(tǒng)(is-is)協(xié)議等。具體地,涉及igp的節(jié)點可以將描述其自身相關鄰接的鏈路狀態(tài)通告(linkstateadvertisement,lsa)發(fā)送給所有與其相鄰的節(jié)點,這些相鄰節(jié)點又將收到的lsa轉發(fā)給所有與它們相鄰的節(jié)點(除了發(fā)送lsa的那個節(jié)點)。通過這種方法可以將lsa擴散到整個網(wǎng)絡,如此一來,所有網(wǎng)絡節(jié)點都能了解另一個節(jié)點的鄰接,從而使得各種節(jié)點能夠創(chuàng)建拓撲表(例如,鏈路狀態(tài)數(shù)據(jù)庫(linkstatedatabase,lsdb))。lsa洪泛可以在網(wǎng)絡初始化,或當網(wǎng)絡鄰接發(fā)生變化時(例如,一個節(jié)點被添加/刪除,節(jié)點/鏈路故障等)進行。因此,隨著添加到網(wǎng)絡的節(jié)點增多,鏈路狀態(tài)擴散開始消耗越來越多網(wǎng)絡資源(例如,帶寬、處理能力等),結果導致效率越來越低,耗時越來越多。
現(xiàn)有主流技術中,為解決大型網(wǎng)絡中的可擴展性以及性能問題,定義了igp的小型本地區(qū)域(例如,開放式最短路徑優(yōu)先(openshortestpathfirst,ospf)區(qū)域、中間系統(tǒng)(intermediatesystem,is)到中間系統(tǒng)(is-is)區(qū)域等),試圖降低整個網(wǎng)絡中l(wèi)sa洪泛的數(shù)量。這一技術(例如,如圖2所示)已經(jīng)在各種刊物中進行了描述,例如,internet工程任務組(internetengineeringtaskforce,ietf)發(fā)布的請求注解(requestforcomments,rfc)2328,題目為“ospf版本2”(描述了as域中的ospf區(qū)域),和ietf發(fā)布的rfc1142,題目為“開放系統(tǒng)互連(opensystemsinterconnection,osi)is-is域內路由協(xié)議”(描述了as域內的is-is區(qū)域),等等。具體地,每個ospf/is-is區(qū)域都包括一些互相連接的路由器,包括區(qū)域邊界路由器(areaborderrouter,abr)以及內部路由器。abr和內部路由器的區(qū)別在于,abr可以連接外部路由器(例如,連接其他ospf/is-is區(qū)域中的路由器或abr),而內部路由器只能連接該ospf/is-is區(qū)域內的其他節(jié)點(例如,不連接該ospf/is-is區(qū)域范圍之外的任一路由器)。在大多數(shù)應用中,abr和內部路由器會在各自的本地ospf/is-is區(qū)域范圍內執(zhí)行正常的鏈路狀態(tài)擴散(例如,根據(jù)igp),從而使得abr能夠收集匯總那些描述其本地ospf/is-is區(qū)域的拓撲信息(例如,構建匯總lsa)。之后,abr可以將這些匯總lsa擴散給骨干區(qū)域的其他abr(例如,擴散給與之相連的所有其他abr),從而使得外部的abr能夠完全了解或部分了解圍繞骨干區(qū)域的各ospf/is-is區(qū)域的拓撲。而可否將這些匯總lsa擴散給其他ospf/is-is區(qū)域范圍內的內部節(jié)點取決于網(wǎng)絡配置。
因此,雖然現(xiàn)有技術方法降低了整個網(wǎng)絡中l(wèi)sa洪泛的數(shù)量,但依然存在一個事實,即,在一個ospf/is-is區(qū)域內,將鏈路狀態(tài)擴散本地化(例如,描述ospf/is-is區(qū)域范圍內的內部鄰接變化)會導致鏈路狀態(tài)擴散到其他區(qū)域,從而觸發(fā)這些區(qū)域的路由器重新計算其ospf或is-is路由,更新其路由信息庫(routinginformationbase,rib)以及轉發(fā)信息庫(forwardinginformationbase,fib)表,或采取其他消耗網(wǎng)絡資源(例如,帶寬和中央處理器(centralprocessunit,cpu)資源)的行為。
在多區(qū)域或多域的環(huán)境下,要求使用中間的路徑計算單元來幫助域間標簽交換路徑的計算。然而,pce增加了網(wǎng)絡管理的復雜度。如上所說,需要一種簡單而有效的方法來解決大型網(wǎng)絡中的可擴展性/收斂問題。
技術實現(xiàn)要素:
本申請公開了一種自治系統(tǒng)域,包含拓撲透明區(qū),擁有多個拓撲透明區(qū)節(jié)點,其中,至少包含幾個拓撲透明區(qū)邊緣節(jié)點,其中,該拓撲透明區(qū)節(jié)點通過多條內部鏈路互相連接,而拓撲透明區(qū)邊緣節(jié)點通過多條外部鏈路和多個相鄰的外部節(jié)點連接,其中,描述內部鏈路的鏈路狀態(tài)通告(linkstateadvertisement,lsa)并不擴散到相鄰的外部節(jié)點。
本申請還公開了一種在自治系統(tǒng)域中配置拓撲透明區(qū)的方法,包括,給連接不同拓撲透明區(qū)節(jié)點的多條內部鏈路配置拓撲透明區(qū)標識(id),其中,拓撲透明區(qū)節(jié)點位于拓撲透明區(qū),且每條內部鏈路連接一對拓撲透明區(qū)節(jié)點;通過多條外部鏈路發(fā)送一般的路由器通告給自治系統(tǒng)域中的各相鄰外部節(jié)點,其中,各相鄰外部節(jié)點通過至少一條外部鏈路連接至少一個拓撲透明區(qū)節(jié)點;基于一般的路由器通告,創(chuàng)建或更新相鄰外部節(jié)點中的拓撲表,其中,拓撲表將拓撲透明區(qū)描述為關聯(lián)一個路由器id的單路由器,該路由器id相當于拓撲透明區(qū)id。
本申請還公開了一種自治系統(tǒng)域中的拓撲透明區(qū),包括多個互相連接的拓撲透明區(qū)節(jié)點,其中,至少包含幾個拓撲透明區(qū)邊緣節(jié)點,而拓撲透明區(qū)邊緣節(jié)點通過多條外部鏈路連接到自治系統(tǒng)域范圍內的多個相鄰外部節(jié)點;多條內部鏈路,其中,每條鏈路和一對拓撲透明區(qū)節(jié)點互相連接,而拓撲透明區(qū)節(jié)點可以互相交換多個描述內部鏈路狀態(tài)的lsa,且無需將任一關于拓撲透明區(qū)內部拓撲的鏈路狀態(tài)信息擴散到任一外部節(jié)點,其中,一般的路由器通告被構建并擴散到相鄰的外部節(jié)點。
本申請還公開了一種自治系統(tǒng)域,包括第一拓撲透明區(qū),其中,包括第一組互相連接的拓撲透明區(qū)節(jié)點,從而形成第一拓撲透明區(qū)的內部拓撲;第二拓撲透明區(qū),其中,包括第二組拓撲透明區(qū)內互相連接的拓撲透明區(qū)節(jié)點,從而形成第二拓撲透明區(qū)的內部拓撲;多個和第一拓撲透明區(qū)以及第二拓撲透明區(qū)互相連接的網(wǎng)絡節(jié)點,從而形成自治系統(tǒng)域的拓撲,其中,第一組拓撲透明區(qū)中的每個節(jié)點都包括第一鏈路狀態(tài)數(shù)據(jù)庫(linkstatedatabase,lsdb),描述了自治系統(tǒng)域的拓撲以及第一拓撲透明區(qū)的拓撲,而非第二拓撲透明區(qū)的拓撲。
結合下文的詳細描述、附圖以及權利要求,能夠更清楚地了解上述以及其他特征。
附圖說明
結合以下附圖的簡要描述以及詳細描述,能夠對本發(fā)明所公開的內容進行更加全面的理解,其中,類似的附圖標記表示類似的部件。
圖1展示了本發(fā)明實施例提供的一種網(wǎng)絡,包含一個未劃分的as域。
圖2展示了本發(fā)明實施例提供的一種網(wǎng)絡,包含一個被劃分為多個ospf/is-is區(qū)域的as域。
圖3展示了本發(fā)明實施例提供的一種網(wǎng)絡,包含一個as域,其中,部分被劃分為拓撲透明區(qū)(topologytransparentzone,ttz)。
圖4展示了,從位于ttz實例中ttz節(jié)點的角度出發(fā)得出的網(wǎng)絡全景。
圖5展示了本發(fā)明實施例提供的一種ttz路由器,包含六個接口。
圖6展示了本發(fā)明實施例提供的一種ttz路由器,包含128個接口。
圖7展示了本發(fā)明實施例提供的一種igp數(shù)據(jù)包報頭。
圖8展示了本發(fā)明實施例提供的一種鏈路狀態(tài)通告(linkstateadvertisement,lsa)報頭。
圖9展示了本發(fā)明實施例提供的一種路由器lsa。
圖10展示了本發(fā)明實施例提供的一種路由器鏈路字段。
圖11展示了本發(fā)明實施例提供的一種鏈路類型字段。
圖12展示了本發(fā)明實施例提供的一種包含新字段ttzid的路由器鏈路。
圖13展示了本發(fā)明實施例提供的一種在as域中創(chuàng)建ttz的方法。
圖14是本發(fā)明實施例提供的一種在網(wǎng)絡中傳輸數(shù)據(jù)的網(wǎng)絡單元的示意圖。
圖15是本發(fā)明實施例提供的一種通用網(wǎng)絡器件的示意圖。
具體實施方式
首先要注意的是,雖然下文詳細說明了一個或多個實施例的實現(xiàn)方式,其公開的系統(tǒng)和/或方法可以通過許多其他已知或現(xiàn)存的技術來實現(xiàn)。本發(fā)明并未局限于下文描述的具體實現(xiàn)方式、附圖以及技術,包括本文描述說明的較佳設計以及實現(xiàn)方式,但是可以在以下權利要求的范圍內結合其對應內容的全部范圍進行修改。
本發(fā)明公開了一種在網(wǎng)絡中創(chuàng)建一個或多個拓撲透明區(qū)(topologytransparentzone,ttz)的方法和架構,來更好地解決大型網(wǎng)絡中的可擴展性和收斂問題。具體地,相較于在網(wǎng)絡中實現(xiàn)ospf/is-is區(qū)域,實現(xiàn)ttz能夠更有效地降低鏈路狀態(tài)擴散,雖然(同時),相較于在網(wǎng)絡中實現(xiàn)pce通信協(xié)議(pcecommunicationprotocol,pcep),其中,該協(xié)議用于計算跨域的多協(xié)議標簽交換流量工程lsp(multi-protocollabelswitchingtrafficengineeringlsp,mplstelsp)的路徑,實現(xiàn)ttz降低了復雜度。和本地ospf/is-is區(qū)域類似,ttz可以包括多個互相連接的節(jié)點(例如,ttz節(jié)點),包括連接外部節(jié)點的節(jié)點(例如ttz邊緣節(jié)點)以及只連接ttz內部節(jié)點的節(jié)點(例如,ttz內部節(jié)點)。然而,和本地ospf/is-is區(qū)域不一樣的是,ttz邊緣節(jié)點不會將描述ttz內部拓撲(例如,一對ttz節(jié)點間的鄰接)的lsa擴散到ttz之外,從而降低了整個網(wǎng)絡中的鏈路狀態(tài)擴散。進一步地,從整體來看,ttz中的節(jié)點了解as域的拓撲。因此,lsp的路徑計算能夠不依賴于任何媒介(例如,pce)。如上所說,雖然本文描述的ttz技術允許簡單計算lsp路徑(即,不使用媒介),但仍然可以增強網(wǎng)絡的可擴展性(例如,重新收斂更快、性能更高、處理消耗更低)。
圖1展示了網(wǎng)絡100,包含單as域101,其中,該as域包括多個節(jié)點110到158,這些節(jié)點共同參與到一般的鏈路狀態(tài)擴散。具體地,節(jié)點110到158包括源節(jié)點110,多個中間節(jié)點112到156,以及目的節(jié)點158,各節(jié)點互相連接,從而形成as域101的內部架構(此處稱作網(wǎng)絡拓撲)。節(jié)點110到158可以是任意設備,能夠在整個as域101中以一種確定的方式進行數(shù)據(jù)交換;且可以包括一個或多個表(例如,lsdb、rib以及fib表),其中包含描述as域101拓撲的鏈路狀態(tài)信息。在本實施例中,可以建立橫跨as域101的lsp(實線箭頭),從而允許將數(shù)據(jù)以一種確定的方式從網(wǎng)絡100的一端傳輸?shù)搅硪欢?。如圖所示,lsp可以通過一個或多個中間節(jié)點112到156,從源節(jié)點110擴展到目的節(jié)點158。
隨著網(wǎng)絡100的擴大(例如,包含越來越多的節(jié)點),可擴展性問題隨之出現(xiàn)。具體地,可擴展性問題涉及各種網(wǎng)絡問題,都是因為無法有效地在大型網(wǎng)絡中管理/擴散網(wǎng)絡拓撲信息。例如,各節(jié)點(例如,節(jié)點132)的處理和存儲能力/容量會限制網(wǎng)絡100的實際規(guī)模。此外,及時擴散鏈路狀態(tài)信息的能力(例如,收斂)與必須進行l(wèi)sa交換/洪泛的節(jié)點的數(shù)量直接相關,因此,越是大型的網(wǎng)絡,收斂(例如,用來創(chuàng)建/更新拓撲表的時間段)的時間則越長。正如此處所應用的,拓撲表可以對應lsdb,或其他表,用來描述相應網(wǎng)絡、as域、本地區(qū)域或ttz的拓撲。在大型網(wǎng)絡中,重新收斂也是一個問題,如無法及時從一個節(jié)點/鏈路的故障中恢復(或某些其他條件,改變了初始化之后的網(wǎng)絡鄰接)會中斷網(wǎng)絡業(yè)務(例如,網(wǎng)絡中建立的多個lsp)。具體地(當網(wǎng)絡存在故障時),需要在整個網(wǎng)絡100中進行l(wèi)sa洪泛,從而通知每個網(wǎng)絡節(jié)點110到158關于網(wǎng)絡拓撲的改變。正如此處所應用的,在網(wǎng)絡中擴散拓撲信息(以及更新相關的節(jié)點中相應的rib/fib)需要的時長可以稱作重新收斂期(如果發(fā)生在網(wǎng)絡初始化期間,則稱作收斂期)。
重新收斂期會顯著影響lsp(例如,ldplsp)在網(wǎng)絡故障時及時恢復的能力,因此,嚴重影響了網(wǎng)絡支持的最高服務質量(qualityofservice,qos)等級。具體地,網(wǎng)絡故障會影響一條或多條lsp,其中,在恢復過程能夠完成前,lsp都會一直處于故障狀態(tài)。例如,節(jié)點134(或節(jié)點132和134之間的鏈路)故障會導致lsp(實線箭頭)暫時故障。在檢測到故障后,一個或多個節(jié)點110到158會在整個網(wǎng)絡中進行l(wèi)sa洪泛,從而通知其他節(jié)點關于拓撲的變化(即,節(jié)點132和134之間的鄰接不再存在,或暫時不可用)。接著,會重新計算一個或多個節(jié)點110到158,否則,根據(jù)各種已知的恢復機制來修復lsp(如虛線所示)。只有在恢復了lsp之后,網(wǎng)絡流量傳輸才能恢復。因此,重新收斂期直接影響lsp在網(wǎng)絡故障時及時恢復的能力,因此,嚴重影響網(wǎng)絡滿足其各種業(yè)務協(xié)定對qos要求的能力。
如上所述,現(xiàn)有技術在處理大型網(wǎng)絡中的可擴展性/收斂問題時,涉及對網(wǎng)絡as域內ospf/is-is區(qū)域的定義。圖2展示了網(wǎng)絡200,包含as域201,其中,201被劃分為多個本地區(qū)域(例如,ospf/is-is區(qū)域)。具體地,as域201可以包括多個本地區(qū)域210、230和250。雖然圖中只展示了三個本地區(qū)域210、230和250,本領域普通技術人員都會知道,as域201中可以包括的本地區(qū)域數(shù)量不限(例如,數(shù)十個甚至上百個ospf/is-is區(qū)域)。本地區(qū)域210可以包括多個邊界節(jié)點214和215,以及多個內部節(jié)點213。邊界節(jié)點214和215連接外部節(jié)點(即,位于本地區(qū)域210之外的節(jié)點),而內部節(jié)點213只連接內部節(jié)點(即,位于本地區(qū)域210之內的節(jié)點)。本地區(qū)域230可以包括多個邊界節(jié)點214、215、234和235,以及多個內部節(jié)點233,可以參照本地區(qū)域210中的相應節(jié)點214和215進行配置。本地區(qū)域250可以包括多個邊界節(jié)點234和235,以及多個內部路由器253,可以參照本地區(qū)域210中的相應節(jié)點214和215進行配置。
lsa包括關于本地區(qū)域210的本地鏈路狀態(tài)信息,且被擴散(例如,洪泛)到本地區(qū)域210中的所有節(jié)點213到215(但不包括節(jié)點233、234和235)。相應地,邊界節(jié)點214和215會將本地鏈路狀態(tài)信息收集匯總到匯總lsa,接著,將匯總lsa轉發(fā)給相關的外部節(jié)點(即,外部節(jié)點233以及邊界節(jié)點234和235)。匯總lsa在本地區(qū)域230中洪泛。然后,邊界節(jié)點234和235會將匯總lsa在本地區(qū)域250中洪泛。因此,將as域201劃分為本地區(qū)域210、230和250可以降低在as域201中的鏈路狀態(tài)擴散,相較于網(wǎng)絡100,節(jié)省了網(wǎng)絡資源(例如,帶寬等)。然而,在本地區(qū)域210中的鏈路狀態(tài)擴散依然會引起在as域201范圍內至少一些鏈路狀態(tài)的擴散,從而導致其他節(jié)點(例如,233到235,以及253)重新計算其ospf或is-is路由,更新其rib以及fib表,或采取其他消耗網(wǎng)絡資源(例如,帶寬和cpu資源)的行為。因此,雖然現(xiàn)有技術將as域劃分為多個ospf/is-is區(qū)域,部分解決了可擴展性/收斂問題,它依然無法將相關ospf/is-is區(qū)域中的本地鏈路狀態(tài)信息擴散充分本地化。
相對地,本文公開的ttz方案能夠將相關ttz中的本地鏈路狀態(tài)信息擴散充分本地化。圖3展示了本發(fā)明實施例提供的一種網(wǎng)絡300,包含as域301,其中,采用了示例的ttz方案。具體地,as域301可以包括多個節(jié)點311到335,以及拓撲透明區(qū)(topologytransparentzone,ttz)360。節(jié)點311到335可以參照節(jié)點110到158進行配置,互相之間(以及和ttz360之間)可以通過相應的igp(例如,ospf、is-is等)來共享鏈路狀態(tài)信息。
ttz360可以包括多個ttz節(jié)點361到373,其中(更確切地說)包括ttz邊緣節(jié)點361、363、365和367,以及多個ttz內部節(jié)點371和373。正如此處所應用的,ttz邊緣節(jié)點和ttz內部節(jié)點都可以稱作ttz節(jié)點。每個ttz邊緣節(jié)點361、363、365和367都可以連接至少一個位于ttz360之外的節(jié)點,例如,ttz邊緣節(jié)點361可以連接節(jié)點315。ttz內部節(jié)點371和373不可以連接任何一個位于ttz360之外的節(jié)點,例如ttz內部節(jié)點371只能連接ttz節(jié)點361、363、365、367和373,但是不能連接位于ttz360之外的節(jié)點。
只和ttz360的內部拓撲(例如,涉及內部鏈路或一對ttz節(jié)點之間的鄰接)相關的鏈路狀態(tài)信息可以只在ttz360中洪泛(即,不擴散到ttz360之外的節(jié)點)。因此,節(jié)點311到335不會收到描述ttz360的內部拓撲的lsa,因此,無法“看”到(例如,視)ttz360的內部拓撲。相反,節(jié)點311到335會將ttz視作一臺單路由器/節(jié)點。此處節(jié)點和路由器兩個詞可以互換。
可以給ttz360分配一個單路由器標識(id)。分配給ttz(例如ttz360)的路由器id在文中也稱作ttzid,且可以配置在相關ttz的每條鏈路上,如此一來,互相連接的ttz節(jié)點(即,鏈路兩端的節(jié)點)知道該鏈路位于ttz之內。換言之,給鏈路配置ttzid表示/說明鏈路是ttz鏈路。在本實施例中,若要給鏈路配置ttzid,可以將每個互相連接的節(jié)點中的ttzid關聯(lián)給該鏈路。例如,可以將對應ttz360的ttzid配置給一條ttz內部節(jié)點371和373之間的鏈路,從而觸發(fā)更新每個ttz內部節(jié)點371和373中相應的表(例如,鏈路表)來關聯(lián)包含ttzid的鏈路(或對應該鏈路的端口)。此流程可以從各ttz內部節(jié)點371和373的角度出發(fā),表明所配置的鏈路位于ttz360內。
通過使用相同的ttzid配置每條ttz360內的鏈路(例如,每條內部鏈路的兩端節(jié)點使用ttzid關聯(lián)這條鏈路),就形成了ttz360。例如,要形成一個ttz360,可以給ttz360內每條鏈路配置相同的ttzid,包括ttz節(jié)點361和365之間的鏈路、ttz節(jié)點365和367之間的鏈路、ttz節(jié)點367和363之間的鏈路、ttz節(jié)點363和361之間的鏈路、ttz節(jié)點371和361之間的鏈路、ttz節(jié)點371和363之間的鏈路、ttz節(jié)點371和365之間的鏈路、ttz節(jié)點371和367之間的鏈路以及ttz節(jié)點371和373之間的鏈路。一旦給鏈路配置了對應ttz360的ttzid,ttz360的內部拓撲可以由六個ttz節(jié)點361、363、365、367、371和373,及其鏈路來定義。
從外部節(jié)點311到335的角度出發(fā),ttz360可以被“看”(例如,視,或識別)作單個節(jié)點,擁有單臺路由器id。在某些實施例中,路由器id可以是全局的ttzid,雖然,它還可以是分配給ttz節(jié)點的最小或最大的路由器id。進一步地,外部節(jié)點311到335可以將多個連接ttz360的鏈路“看”(例如,查看,或識別)作從屬于單節(jié)點的入/出接口。例如,節(jié)點315可以將ttz360“看”作單節(jié)點,包含六個接口,連接節(jié)點315、317、323、325、331和329。
圖4展示了,從位于ttz實例中ttz節(jié)點的角度出發(fā)得出的網(wǎng)絡全景400。網(wǎng)絡400包含一個as域401,包括多個外部節(jié)點405和465,多個非ttz實例410、420、440、450和460,以及一個ttz實例430??梢詫γ總€ttz410、420、430、440、450和460進行相似的配置,如此一來,只關聯(lián)ttz內部拓撲的鏈路狀態(tài)信息就不會擴散到各個ttz之外。ttz實例包括多個節(jié)點431到439,每個節(jié)點都可以“看”到ttz實例430的內部拓撲,以及as域401的拓撲。然而,節(jié)點431到439不能“看”到任一非ttz實例410、420、440、450和460的內部拓撲。相反地,從位于ttz430的節(jié)點431到439的角度出發(fā),非ttz實例410、420、440、450和460是作為單路由器/節(jié)點出現(xiàn)的。
此處描述的一種關于ttz技術的應用,可以將訪問點(pointofpresence,pop)(例如,一層樓或一個房間的路由器)配置為ttz,其中,整個pop作為單臺路由器(即,pop中的內部路由器/鏈路對外部節(jié)點不可見)。在其他實現(xiàn)方式中,此處描述的ttz方法允許在pop應用中達到更高的可擴展性、更簡潔的lsp計算/建立、更快的路由收斂(例如,在故障之后)、更好的性能以及更高的可用性。
可擴展性涉及在網(wǎng)絡或域范圍內快速有效地將鏈路狀態(tài)信息擴散給相關節(jié)點的能力。例如,一個包括1000臺路由器的標準as域(即,沒有ttz),需要執(zhí)行至少1000次lsa擴散,從而在每個節(jié)點內建立一個鏈路狀態(tài)數(shù)據(jù)庫(linkstatedatabase,lsdb)。相反,將網(wǎng)絡劃分為多個ttz能夠極大地降低lsa的數(shù)量。例如,如果將網(wǎng)絡劃分為200個ttz(每個ttz包括大約五臺路由器),僅利用約205個lsa(例如,200個ttz路由器lsa以及5個位于各ttz范圍內的lsa(同時出現(xiàn),且在相當小的范圍內洪泛))來創(chuàng)建lsdb,而可擴展性提升可以達到約79.5%(可以通過以下公式計算得出:(1000-205)/1000)。將網(wǎng)絡劃分為更少的(例如,更大的)ttz能夠提升更多。例如,如果將包含1000個節(jié)點的網(wǎng)絡劃分為100個ttz(每個ttz包括大約10臺路由器),可擴展性提升可以達到約89%(可以通過以下公式計算得出:(1000-110)/1000),(例如,約一個數(shù)量級)。在更大型的網(wǎng)絡中,可擴展性提升效果會更加顯著。例如,將包括大約200,000臺路由器的網(wǎng)絡劃分為約1000個ttz(每個ttz包括約200臺路由器),可擴展性提升可以達到約99.4%(可以通過以下公式計算得出:(200,000–1,200)/200,000),(例如,大約兩個數(shù)量級)。
本文公開的ttz方法中,計算和/或建立端到端(end-to-end,e2e)lsp(例如,將lsp從as域的一端擴展到另一端)可以更快/更簡潔。在傳統(tǒng)的本地ospf/is-is區(qū)域網(wǎng)絡中,e2elsp計算能夠非常復雜,經(jīng)常要用到中間的路徑計算單元(pathcomputationentity,pce)。相反,本文公開的ttz方案中,e2elsp計算和建立相對簡潔。如圖4所示,建立外部路由器405和外部路由器465之間的lsp(實線箭頭)。具體地,針對位于ttz410、430和450之外的lsp部分,可以通過傳統(tǒng)的手段計算(例如,可以由外部路由器405計算)并建立(例如,用path消息等)。例如,lsp可以先在外部節(jié)點405和ttz410之間建立,然后在ttz410和ttz節(jié)點431之間,接著在ttz節(jié)點431和ttz節(jié)點437之間,之后在ttz節(jié)點437和ttz450之間,最后在ttz450和外部節(jié)點465之間。接下來(或結合以上內容),可以計算/建立位于ttz410、430和450之內的lsp部分。例如(在ttz實例430中),lsp可以先在ttz節(jié)點431和ttz節(jié)點435之間建立,然后在ttz節(jié)點435和ttz437之間。在ttz410和450中,可以通過相似的步驟來建立lsp在ttz410和450中的部分。因此,不使用pce(或其他外部數(shù)據(jù)庫/cpu)也能夠建立e2elsp。在某些實施例中,lsp各部分可以獨立計算,同時建立,通過一般的機制(例如,單條path消息或一串path消息)。例如,位于ttz410、430和450之外的lsp部分可以由外部路由器405來進行計算,而相應的跨越各ttz的lsp部分可以由位于各ttz410、430和450之中相應的路由器(例如,ttz節(jié)點431等)來進行計算。
此外,本文公開的ttz方法可以極大地減少重新收斂的時間,從而允許更快的故障恢復(例如,重新收斂時間更短)。例如,如果ttz節(jié)點431和ttz節(jié)點435之間的lsp部分發(fā)生故障,能夠快速計算并建立ttz節(jié)點431、433和437之間相應的lsp備份部分(虛線箭頭),且無需在ttz430之外進行任何鏈路狀態(tài)擴散。因此,ttz430之外的路由器不會關注拓撲變化,(作為添加的益處)并不會重新計算其路由表(即,節(jié)約cpu資源,從而增加上述關于其他任務的資源的“可用性”)。當對pop(例如,配置為ttz)進行重建或改造時,ttz外部的路由器并不會受到影響。如上所說,將只關聯(lián)ttz430內部拓撲的鏈路狀態(tài)擴散本地化不僅極大地縮減了重新收斂的時間,而且將lsp恢復透明化(即,不通知外部節(jié)點405、465以及ttz410和450)。
此外,本文公開的ttz方法允許在ttz區(qū)域外部實現(xiàn)更高的可用性,且無需消耗cpu資源。具體地,傳統(tǒng)的ospf/is-is區(qū)域網(wǎng)絡將匯總lsa在整個網(wǎng)絡中洪泛(例如,先在ospf/is-isabr之間,然后,在外部ospf/is-is網(wǎng)絡范圍內),從而消耗了ospf/is-is區(qū)域外部的處理資源。相反,本文公開的ttz方法在ttz430中將lsa完全本地化,從而避免了不必要的外部處理資源消耗。
本文公開的ttz方法還提升了網(wǎng)絡性能。在某些實施例中,ttz采用一種ttz邊緣路由器,包含至少兩個接口(例如,4個、6個、8個等等)。圖5展示了網(wǎng)絡500,其中,ttz路由器包括8個接口。具體地,網(wǎng)絡500包括多個ttz510、515、520、540、545、550以及一個ttz實例530,配置和上述討論的ttz410到460類似。ttz實例530可以包括4個ttz邊緣節(jié)點531到539,每個節(jié)點包括4個接口。因此,ttz實例530可以有8個接口,從而將單一的四接口路由器的吞吐率提高大約兩倍(例如,8/4)。例如,如果ttz邊緣路由器531到539是40千兆赫(g)的路由器(例如,4個10g的接口),則ttz530提供的吞吐率能達到約80g。
在其他實施例中,ttz可以采用一種包含更多接口的ttz邊緣路由器,和/或采用更多ttz邊緣路由器。圖6展示了網(wǎng)絡600,其中,ttz路由器包含128個接口。具體地,網(wǎng)絡600包括一個ttz實例630(為了表述清晰,此處忽略了非ttz實例),和上述ttz430配置相似,可以包括16個ttz邊緣路由器601到616。其中,每個ttz路由器601到616都可以包括約16個100g的接口(例如,ttz邊緣路由器包括16個接口,其中,8個接口是從接口6011到6018,8個接口是從接口6091到6098,8個接口是從接口6081到6088,8個接口是從接口6161到6168),總吞吐率為每ttz邊緣路由器601到616,約1.6兆兆字節(jié)(1.6t),因此ttz630能達到的吞吐率約為12.8t(或者,約為單臺1.6t的路由器的8倍)。本領域的普通技術人員都知道,雖然圖6所示的實現(xiàn)方式中,ttz630包括了16個ttz邊緣路由器以及128個接口,在其他實施例中,包括的接口和/或路由器(例如,路由器吞吐率更高/更低,等)可以更多或更少。
圖7展示了本發(fā)明實施例提供的一種內部網(wǎng)關協(xié)議(interiorgatewayprotocol,igp)數(shù)據(jù)包報頭700,和ospf數(shù)據(jù)包報頭類似。數(shù)據(jù)包報頭700包括版本號(no.)字段701、類型字段703、數(shù)據(jù)包長字段705、路由器id字段707、區(qū)域id字段709、檢查和字段711、認證類型(autype)字段713以及認證字段717。版本號(no.)字段701可以包括ospf協(xié)議的版本號,(在本實施例中)可以設為大約2,表示其兼容ospf協(xié)議的第二個版本。類型字段703可以表示ospf數(shù)據(jù)包的類型,可以設為大約1、2、3、4或5,從而表示,相應的ospf數(shù)據(jù)包(分別是)是hello包、數(shù)據(jù)庫描述包、鏈路狀態(tài)請求包、鏈路狀態(tài)更新包或鏈路狀態(tài)確認包。數(shù)據(jù)包長字段705的值可以表示ospf協(xié)議數(shù)據(jù)包(包括標準ospf報頭)的長度,單位為字節(jié)。路由器id字段707的值可以表示源路由器(即,首先進行對應數(shù)據(jù)包報頭700的數(shù)據(jù)包傳輸?shù)穆酚善?的路由器id。區(qū)域id字段709的值可以包括32比特的數(shù)字,用來標識不同的區(qū)域(例如,ospf區(qū)域),該區(qū)域由相應的數(shù)據(jù)包描述或與其相關聯(lián)。檢查和字段711的值可以表示數(shù)據(jù)包整體內容的標準ip檢查和,始于ospf數(shù)據(jù)包報頭(但不包括64比特的認證字段717)。autype字段713的值可以標識針對數(shù)據(jù)包進行的認證流程,可以是大約0、1或2,從而(分別)表示null認證、simple密碼或cryptographic認證。認證字段717可以是一個64比特的字段,用來進行認證。
在本實施例中,當ttz(邊緣)節(jié)點向其他節(jié)點(例如,在ttz之外)發(fā)送一個包括報頭700的數(shù)據(jù)包時,路由器id字段707的值可以包括適當?shù)膖tzid。例如,在構建并發(fā)送igp數(shù)據(jù)包給節(jié)點315時(即,ttz360之外的一個節(jié)點),ttz邊緣節(jié)點361(見圖3)可以將路由器id字段707的值設為ttzid,對應ttz360。在另一個實施例中,當ttz邊緣節(jié)點向另一個節(jié)點(例如,在ttz之外)發(fā)送一個包括報頭700的數(shù)據(jù)包時,路由器id字段707的值可以包括ttz之內路由器id中最大的路由器id或最小的路由器id。例如,假設ttz節(jié)點361、363、365、367、371和373的路由器id(分別)是10.1.1.161、10.1.1.163、10.1.1.165、10.1.1.167、10.1.1.171和10.1.1.173。向節(jié)點315(即,ttz360之外的節(jié)點)發(fā)送數(shù)據(jù)包時,ttz邊緣節(jié)點361可以將路由器id字段707的值設為ttz360中最大的路由器id(即,10.1.1.173)或最小的路由器id(即,10.1.1.161)。
圖8展示了本發(fā)明實施例提供的一種lsa報頭800,包括鏈路狀態(tài)年齡(lsage)字段801、選項字段803、鏈路狀態(tài)類型(lstype)字段805、鏈路狀態(tài)id字段807、發(fā)布路由器字段809、鏈路狀態(tài)序列號字段811、鏈路狀態(tài)檢查和字段813以及長度字段815。在本實施例中,所有l(wèi)sa都從lsa報頭800開始,而鏈路狀態(tài)類型(lstype)字段805、鏈路狀態(tài)id字段807和發(fā)布路由器字段809可以用來對lsa進行唯一標識。lsage字段801的值可以表示自從lsa生成到目前的時間(單位是秒)。選項字段803的值可以表示一個或多個由路由域的相應部分支持的可選能力。在本實施例中,鏈路狀態(tài)類型字段805可以表示lsa的類型,可以設為大約1、2、3、4或5,從而(分別)表示,路由器lsa、網(wǎng)絡lsa、ip網(wǎng)絡匯總lsa、as邊界路由器(asborder/boundaryrouter,asbr)匯總lsa或as外部lsa。在同樣或其他的實施例中,ls類型字段805可以設為大約6、9、10或11,從而(分別)表示,組成員lsa、不透明lsa(本地鏈路范圍)、不透明lsa(本地區(qū)域范圍)或不透明lsa(as范圍)。鏈路狀態(tài)id字段807的值可以標識由lsa描述的互聯(lián)網(wǎng)環(huán)境的一部分。發(fā)布路由器字段809可以包括源路由器(即,創(chuàng)建lsa的路由器)的路由器id。鏈路狀態(tài)序列號字段811的值可以是32比特的數(shù)字,用來表示lsa的實例。鏈路狀態(tài)檢查和字段813的值可以包括lsa整體內容的檢查和(例如,fletcher檢查和),包括lsa報頭800(但不包括lsage字段801)。長度字段815的值可以表示lsa的長度(包括lsa報頭800的長度,單位是字節(jié))。
當給ttz外部的路由器發(fā)送lsa時,ttz(邊緣)節(jié)點可以將鏈路狀態(tài)類型字段805設為大約1,從而表示該lsa為路由器lsa;將鏈路狀態(tài)id字段807以及發(fā)布路由器字段809設為相應的ttzid,從而表示該lsa對應ttz。另外的選擇是,ttz(邊緣)節(jié)點可以將鏈路狀態(tài)id字段807以及發(fā)布路由器字段809都設為ttz360中最大的路由器id或最小的路由器id。
圖9展示了本發(fā)明實施例提供的一種路由器lsa900,包括lsa報頭字段920、標識位字段930、鏈路數(shù)量字段940以及多個路由器鏈路字段951。路由器lsa900的lsa報頭字段920可以包括和上述lsa報頭字段800類似的格式,可以包括鏈路狀態(tài)年齡字段901、選項字段903、鏈路狀態(tài)類型字段905、鏈路狀態(tài)id字段907、發(fā)布路由器字段909、鏈路狀態(tài)序列號字段911、鏈路狀態(tài)檢查和字段913以及長度字段915。在本實施例中,鏈路狀態(tài)類型字段905可以設為大約1,從而表示lsa900是一個路由器lsa。
標識位字段930可以表示生成lsa900的路由器的特征,包括一個虛擬鏈路(v)比特931、外部(e)比特932、邊界(b)比特933。v比特931可以設為大約1,從而表示,源路由器是一個或多個全連接的虛擬鏈路的端點。e比特932可以設為大約1,從而表示,源路由器是一個as邊界路由器。b比特933可以設為大約1,從而表示,源路由器是一個abr。鏈路數(shù)量字段940可以是16比特的數(shù)字,表示在路由器鏈路字段950中所描述的路由器鏈路的數(shù)量。路由器鏈路字段950可以包括路由器鏈路951,針對源路由器區(qū)域(例如,ttz)中的每條路由器鏈路。每個路由器鏈路951可以描述ttz中一個單獨的路由器鏈路。
圖10展示了本發(fā)明實施例提供的一種路由器鏈路1000,類似上述的路由器鏈路951。路由器鏈路1000可以包括鏈路id字段1001、鏈路數(shù)據(jù)字段1003、類型字段1011、服務類型數(shù)量(notos)字段1013、度量字段1015和多個具體服務類型(tos)鏈路度量字段1020到1040。類型字段1011可以表示路由器鏈路1000中描述的鏈路的種類,會影響路由器鏈路1000中所有其他字段1001、1003、1013到1040(即,字段1001、1003、1013到1040的值會變化和/或表達不同的意義,這些都取決于類型字段1011的值)。類型字段1011可以設為大約1、2、3、或4,從而(分別)表示,路由器鏈路1000描述了和其他路由器的點到點(p2p)連接、和傳輸網(wǎng)絡的連接、和末梢網(wǎng)絡的連接或虛擬鏈路。
鏈路id字段1001可以標識特定的路由器鏈路所連接的對象,取決于類型字段1011的值。若類型字段1011的值設為大約1(即,表示所描述的鏈路是一條p2p鏈路),則鏈路id字段1001可以表示相鄰路由器的路由器id。若類型字段1011的值設為大約2(即,表示所描述的鏈路是一條傳輸網(wǎng)絡鏈路),則鏈路id字段1001可以表示指定路由器的ip地址。若類型字段1011的值設為大約3(即,表示所描述的鏈路是一條末梢網(wǎng)絡鏈路),則鏈路id字段1001可以表示末梢網(wǎng)絡的ip號。若類型字段1011的值設為大約4(即,表示所描述的鏈路是一條虛擬鏈路),則鏈路id字段1001可以表示相鄰路由器的路由器id。
在本實施例中,當通過p2p鏈路連接到外部路由器(即,ttz之外的路由器)時,ttz(邊緣)路由器可以通過p2p鏈路發(fā)送一個lsa,該lsa包括描述p2p鏈路的路由器鏈路1000。鏈路id字段1001可以表示外部路由器的路由器id。另外的選擇是(若接收lsa的外部路由器是另一個ttz中的ttz邊緣路由器),源ttz邊緣路由器可以(在某些實例中)通過設置鏈路id字段1001,從而表示外部路由器的ttzid(或者,ttz的最大/最小路由器id),可以從所有外部路由器的角度出發(fā),將其看做ttz的路由器id。
鏈路數(shù)據(jù)字段1003還依賴于類型字段1011的值。若類型字段1011設為大約1、2或4(即,表示所描述的鏈路是一條p2p鏈路、傳輸網(wǎng)絡鏈路或虛擬鏈路),則鏈路數(shù)據(jù)字段1003可以表示路由器鏈路的ip地址。類型字段1011設為大約3(即,表示所描述的鏈路是一條末梢網(wǎng)絡鏈路),則鏈路數(shù)據(jù)字段1003表示末梢網(wǎng)絡的ip地址掩碼。
notos字段1013表示具體tos度量字段1020到1040的數(shù)量,該字段包含在路由器鏈路1000中。如果沒有給所描述的鏈路指配任何具體tos度量,則可以將notos字段1013設為大約0,從而表示路由器鏈路1000不包含任何具體tos度量。否則,notos字段1013可以包括一個整數(shù),對應具體tos度量字段1020到1040的數(shù)量,該字段包含在路由器鏈路1000中。度量字段1015表示所描述鏈路的成本。度量字段1015并不屬于任一具體tos度量字段1020到1040,如此一來,notos字段1013內并不包括metric1015。
每個具體tos度量1020-1040都可以采用相同的格式。例如,具體tos度量1040可以包括tos字段1041、字段1043(例如,設為大約0)以及tos度量字段1045。tos字段1041可以表示所描述的具體tos度量的業(yè)務類型(例如,iptos)。tos字段1041可以設為大約0、2、4、8或16,從而(分別)表示,iptos是一種一般的業(yè)務、最小費用、最大可靠性、最大速率或最小延遲。tos度量字段1045的值可以表示鏈路的成本,該鏈路用于由tos字段1041字段標識的iptos。
圖11展示了本發(fā)明實施例提供的一種鏈路類型字段1100,可以包括ttz(t)比特標識位1111以及類型-1字段1115。鏈路類型字段1100可以是對圖10中鏈路類型字段1011的擴展。t比特標識位1111可以表示鏈路為內部鏈路(即,ttz之內的鏈路)或外部鏈路(即,ttz之外的鏈路),而類型-1字段1115可以設為大約1、2、3或4,從而(分別)表示,所描述的鏈路是和其他路由器的p2p連接、和傳輸鏈路的連接、和末梢網(wǎng)絡的連接或虛擬鏈路。
在本實施例中,t比特標識位1111設為大約1,從而表示該鏈路為ttz的內部鏈路,或設為大約0,從而表示該鏈路是外部鏈路。因此(在此實施例中),若該鏈路為外部鏈路(即,ttz之外的鏈路),則鏈路類型字段1100的值可以和鏈路類型字段1011的一樣(例如,因為t比特標識位1111為0),或者,若該鏈路為內部鏈路(即,ttz之內的鏈路),則該值與鏈路類型字段1011僅一個比特不同(例如,因為t比特標識位1111為1)。
在某個可替代的實施例中,t比特標識位可以設為大約0,從而表示該鏈路是ttz的內部鏈路,或設為大約1,從而表示該鏈路是外部鏈路。因此(在此實施例中),若該鏈路為內部鏈路,則鏈路類型字段1100的值可以和鏈路類型字段1011的一樣(例如,因為t比特標識位1111為0),或者,若該鏈路為外部鏈路,則該值可與鏈路類型字段1011僅一個比特不同(例如,因為t比特標識位1111為1)。
作為進一步的替換,可以給路由器鏈路添加一個關于ttzid的新字段,表示該鏈路屬于哪個ttz。新字段可以設為大約0,從而表示相應的鏈路是連接ttz之外節(jié)點的鏈路,或設為非0值(例如,一個ttzid對應一個ttz),從而表示該鏈路屬于哪個ttz。
圖12展示了本發(fā)明實施例提供的一種路由器鏈路1200,包含一個新字段ttzid1250。路由器鏈路1200和上述路由器鏈路900相似。路由器鏈路1200可以包括鏈路id字段1201、鏈路數(shù)據(jù)字段1203、類型字段1211、服務類型數(shù)量(notos)字段1213、度量字段1215以及多個具體tos鏈路度量字段1220到1240。路由器鏈路1200還可以包括tos字段1241,字段1243和tos度量字段1245。這些字段和上述路由器鏈路900中的相似或一致。路由器鏈路1200中的字段ttzid1250是一個新字段,表示路由器鏈路1200中描述的鏈路屬于哪個ttz。
在本實施例中,若新字段ttzid1250的值為大約0,則表示路由器鏈路1200中描述的相應鏈路是連接ttz外部路由器的鏈路。在另一個實施例中,若新字段的值非0或為ttzid,則表示路由器鏈路1200中描述的相應鏈路屬于由新字段中的ttzid標識的ttz。
圖13展示了在as域中配置ttz的方法1300。方法1300從框1310開始,其中,可以給每條ttz的內部鏈路配置ttzid。在某些實施例中,ttz邊緣節(jié)點和/或ttz內部節(jié)點可以在框1310之前,執(zhí)行一個中間步驟,即,交換hello包從而了解各自的鄰接。接下來,方法1300輪到框1320,即,執(zhí)行ttz內部鏈路狀態(tài)擴散。具體地,ttz內部鏈路狀態(tài)擴散可以包括lsa的構建和洪泛,其中,lsa描述每個ttz節(jié)點的鄰接,包括所有ttz節(jié)點以及所有相鄰的外部節(jié)點。重要的是,ttz邊緣節(jié)點可以在其構建的lsa中描述其外部鏈路(即,一個ttz邊緣節(jié)點和一個外部節(jié)點之間的鏈路),從而允許其他ttz邊緣節(jié)點(以及ttz內部節(jié)點)了解其外部鏈路的拓撲。通過ttz內部鏈路狀態(tài)擴散,每個ttz節(jié)點都能了解ttz的內部拓撲(即,ttz節(jié)點之間的位置關系,包括內部鏈路)以及ttz的鄰接(即,ttz邊緣節(jié)點和其相鄰的外部節(jié)點之間的位置關系,包括外部鏈路的標識)。
接下來,方法1300輪到框1330,其中,每個ttz邊緣節(jié)點都可以獨立構建一個一般的路由器lsa,描述了各外部鏈路,并將該路由器lsa擴散到與其相連接的相鄰外部節(jié)點。該路由器lsa可以指定一個ttzid(或者,指配給ttz節(jié)點的最大/最小路由器id)作為ttz的路由器id,從而將ttz作為一臺單路由器,這臺單路由器包括多個接口,對應多條外部鏈路。另一個選擇是,可以指定ttz中的一臺路由器作為主ttz路由器,可以是ttz中路由器id最小或最大的那臺路由器。主ttz路由器可以構建一個一般的路由器lsa,描述了各外部鏈路,還可以通過ttz節(jié)點將該路由器lsa擴散到與其相鄰的外部節(jié)點。
接下來,方法1300輪到框1340,其中,ttz邊緣節(jié)點可以在整個ttz中將接收自相鄰外部節(jié)點的lsa洪泛,從而允許ttz節(jié)點了解as域的拓撲。在某些實施例中,ttz邊緣節(jié)點還可以將接收自相鄰外部節(jié)點的lsa擴散到其他相鄰的外部節(jié)點,可以和as域中實現(xiàn)的igp保持一致。雖然圖13將ttz邊緣節(jié)點描述為接收lsa,根據(jù)該lsa的描述,as域的拓撲發(fā)生在框1310到1360之后。本領域的普通技術人員都認可,在方法1300執(zhí)行的過程中可以間歇性地接收此類lsa。
接下來,方法1300輪到框1350,其中,可以在每個ttz節(jié)點中創(chuàng)建描述ttz內部拓撲以及as域拓撲的lsdb,從而允許ttz節(jié)點了解ttz內部拓撲以及as域的拓撲。最后,該方法輪到框1360,其中,各ttz節(jié)點計算各自通往每個目的地的最短路徑,該目的地包括在ttz之內的目的地和在ttz之外的目的地。
以下實施例描述了網(wǎng)絡300中的鏈路狀態(tài)擴散。在本實施例中,ttz360中連接ttz節(jié)點371的各鏈路可以是p2p鏈路。如上所說,ttz節(jié)點371可以構建一個路由器lsa并將其洪泛,該路由器lsa包含5條路由器鏈路,連接ttz節(jié)點361、363、365、367以及373。第一路由器鏈路可以描述ttz節(jié)點371和361之間的p2p連接,其中,第一路由器鏈路的鏈路id字段1001指定了ttz節(jié)點361的路由器id。第二路由器鏈路可以描述ttz節(jié)點371和363之間的p2p連接,其中,第二路由器鏈路的鏈路id字段1001指定了ttz節(jié)點363的路由器id。第三路由器鏈路可以描述ttz節(jié)點371和365之間的p2p連接,其中,第三路由器鏈路的鏈路id字段1001指定了ttz節(jié)點365的路由器id。第四路由器鏈路可以描述ttz節(jié)點371和367之間的p2p連接,其中,第四路由器鏈路的鏈路id字段1001指定了ttz節(jié)點367的路由器id。第五路由器鏈路可以描述ttz節(jié)點371和373之間的p2p連接,其中,第五路由器鏈路的鏈路id字段1001指定了ttz節(jié)點373的路由器id。這五條鏈路中,每條鏈路都可以包括鏈路類型字段1011,其中t比特標識位1111設為大約1(表示該鏈路是內部鏈路,完全位于ttz之內),還包括類型-1字段1115,設為大約1(表示所述鏈路是p2p鏈路)。
在同一個或其他的實施例中,所有連接ttz節(jié)點361的鏈路都可以是p2p鏈路。如上所說,ttz節(jié)點361可以構建一個路由器lsa并將其洪泛,該路由器lsa包含4條路由器鏈路,其中之一連接外部節(jié)點315,其余3條連接ttz節(jié)點363、365和371。在接收到lsa后,ttz節(jié)點363、365和371可以將該路由器lsa在ttz360中洪泛擴散到其他節(jié)點。第一路由器鏈路可以描述ttz節(jié)點361和315之間的p2p連接,其中,第一路由器鏈路的鏈路id字段1001指定了節(jié)點315的路由器id。第二路由器鏈路可以描述ttz節(jié)點361和363之間的p2p連接,其中,第二路由器鏈路的鏈路id字段1001指定了ttz節(jié)點363的路由器id。第三路由器鏈路可以描述ttz節(jié)點361和365之間的p2p連接,其中,第三路由器鏈路的鏈路id字段1001指定了ttz節(jié)點365的路由器id。第四路由器鏈路可以描述ttz節(jié)點361和371之間的p2p連接,其中,第四路由器鏈路的鏈路id字段1001指定了ttz節(jié)點371的路由器id。第一路由器鏈路可以包括t比特標識位1111,設為大約0(即,表示該鏈路在ttz360的外部),而第二、第三和第四路由器鏈路可以包括t比特標識位1111,設為大約1(即,表示該鏈路在ttz360的內部)。這四條鏈路都可以包括類型-1字段1115,設為大約1(即,表示所述鏈路為p2p鏈路)。
在同一個或其他的實施例中,ttz邊緣節(jié)點361、363、367、365(在ttz360之內)和外部節(jié)點315、317、323、325、331、329(在ttz360之外)之間的所有鏈路都可以是p2p鏈路。在此實施例中,ttz邊緣節(jié)點361可以構建一個一般的路由器lsa,和由其他ttz邊緣節(jié)點發(fā)送給外部節(jié)點的一般路由器lsa基本或完全一致,但是和ttz360之內洪泛的路由器lsa不同。該一般路由器lsa可以包括鏈路狀態(tài)id字段907和發(fā)布路由器字段909,指定了路由器id,相當于關聯(lián)ttz360的ttzid(或者,指配給ttz路由器361到373的最大/最小路由器id),還包括6條路由器鏈路,描述了6條外部鏈路,從ttz邊緣節(jié)點361、363、365和367擴展到外部節(jié)點315、317、323、325、331和329(即,從ttz邊緣節(jié)點361、363、365和367向外擴展到外部節(jié)點315、317、323、325、331和329的鏈路),可以將其發(fā)送給相鄰節(jié)點315。從外部節(jié)點315的角度出發(fā),該一般路由器lsa可以是一個正常的路由器lsa,例如,和外部節(jié)點315從相鄰的外部節(jié)點(例如,外部節(jié)點317)收到的路由器lsa相似。
第一路由器鏈路可以描述ttz邊緣節(jié)點361和外部節(jié)點315之間的p2p連接,其中,第一路由器鏈路的鏈路id字段1001指定了外部節(jié)點315的路由器id。第二路由器鏈路可以描述ttz邊緣節(jié)點363和外部節(jié)點329之間的p2p連接,其中,第二路由器鏈路的鏈路id字段1001指定了外部節(jié)點329的路由器id。第三路由器鏈路可以描述ttz邊緣節(jié)點365和外部節(jié)點317之間的p2p連接,其中,第三路由器鏈路的鏈路id字段1001指定了外部節(jié)點317的路由器id。第四路由器鏈路可以描述ttz邊緣節(jié)點365和外部節(jié)點323之間的p2p連接,其中,第四路由器鏈路的鏈路id字段1001指定了外部節(jié)點323的路由器id。第五路由器鏈路可以描述ttz邊緣節(jié)點367和外部節(jié)點325之間的p2p連接,其中,第五路由器鏈路的鏈路id字段1001指定了外部節(jié)點325的路由器id。第六路由器鏈路可以描述ttz邊緣節(jié)點367和外部節(jié)點331之間的p2p連接,其中,第六路由器鏈路的鏈路id字段1001指定了外部節(jié)點331的路由器id。這六條路由器鏈路都可以包括類型字段1011,設為大約1,表示該鏈路是p2p鏈路。
下面的偽代碼描述了路由器lsarl中所有路由器鏈路的創(chuàng)建,該路由器lsarl被發(fā)送到外部節(jié)點,其中,n是一個變量,用來計算從ttz向外擴展的外部鏈路的數(shù)量。
將路由器lsarl中鏈路數(shù)量字段933的值設置為n;
圖11中的鏈路類型字段1100可以作為對圖10中鏈路類型字段1011的擴展。在本實施例中,t比特標識位1111可以設為大約1,從而表示該鏈路為內部鏈路(即,在同一個ttz之內的兩個節(jié)點之間的鏈路),或設為大約0,從而表示該鏈路為外部鏈路(即,在ttz之內的一個節(jié)點同ttz之外的一個外部節(jié)點之間的鏈路)。在此實施例中,若t比特標識位1111設為大約0,以上“if條件”可以為真;若t比特標識位1111設為大約1,則為假。在其他實施例中,t比特標識位1111可以設為大約0,從而表示該鏈路為內部鏈路(即,在同一個ttz中的兩個節(jié)點之間的鏈路),或設為大約1,從而表示該鏈路為外部鏈路(即,在ttz之內的一個節(jié)點同ttz之外的一個外部節(jié)點之間的鏈路)。在此實施例中,若t比特標識位1111設為大約1,以上“if條件”可以為真;若t比特標識位1111設為大約0,則為假。無論哪種情況,若“if條件”為真,則將外部鏈路的路由器鏈路添加到路由器lsarl作為一條一般的鏈路。
關于ttz外部路由器的路由表計算,和rfc2328中描述的一致。關于ttz的內部路由器,其流程和rfc2328中描述的一致,但是擴展了鏈路的含義以及兩端之間的關聯(lián)。兩端之間的鏈路能夠是ttz鏈路,也能夠是一般的鏈路。
在ttz之內的路由器側,當檢查和頂點v相關聯(lián)的lsa時,針對該lsa中描述的每條鏈路,假設頂點w是鏈路的另一端,如果該鏈路是一般的鏈路,則能夠將頂點w能看做頂點v的相鄰頂點;如果該鏈路為ttz的內部鏈路,且lsa由ttz之內的路由器生成,則可以將頂點w看作頂點v的相鄰頂點;如果該鏈路為ttz的外部鏈路,且lsa由ttz的邊緣路由器生成,則能夠將頂點w看作頂點v的相鄰頂點,且頂點w是ttz外部鏈路的另一端,位于ttz之外。
關于ttz之內的路由器側的路由表,可以通過以下方式來計算。將ttz之外的鏈路(包括ttz的外部鏈路)的成本/度量,看作一種特別的度量類型。該度量類型比ttz之內的鏈路的度量高一個數(shù)量級。即,關于這一特別的類型,其中任一這種特別度量類型的成本,都大于任一ttz內部路徑的成本。通過構建ttz之內路由器到各目的地的最短路徑樹,從而計算通往各目的地的路徑,包括ttz之內的目的地和ttz之外的目的地。
另一個選擇是,ttz之內的路由器的路由表計算,可分兩個階段完成。在第一個階段,計算通往ttz內所有目的地的路徑。接下來,在第二個階段,在把通往ttz之內的所有目的地的路徑的成本設為最低成本之后,例如大約1或0,從第一個階段中創(chuàng)建的最短路徑樹中計算通往ttz之外的所有目的地的路徑。在另一個實施例中,在把通往所有ttz邊緣路由器的路徑的成本設為最低成本之后,例如大約1或0,從第一個階段中創(chuàng)建的最短路徑樹,可以計算通往ttz之外的所有目的地的路徑。
雖然本申請描述的新方面涉及ospf協(xié)議,但是本領域的普通技術人員都了解,這些新方面也能應用于其他igp協(xié)議(例如,is-is協(xié)議等)。
上述網(wǎng)絡元件可以在任意一個通用的網(wǎng)絡元件中實現(xiàn),例如計算機或網(wǎng)絡元件,擁有充足的處理能力、內存資源以及網(wǎng)絡通過能力來處理其負責的相關工作。圖14展示了本發(fā)明實施例提供的一種典型的、通用的網(wǎng)絡元件1400,適用于實現(xiàn)一個或多個由本文公開的、元件的實施例。網(wǎng)絡元件1400包括一個處理器1402(可以稱作中央處理器或cpu),用來和內存設備進行通信,其中,內存設備包括第二存儲器1404、只讀存儲器(read-onlymemory,rom)1406、隨機存取存儲器(randomaccessmemory,ram)1408、輸入/輸出(input/output,i/o)設備1410、以及網(wǎng)絡連接設備1412。處理器1402可以作為一個或多個cpu芯片,也可以作為一個或多個專用集成電路(applicationspecificintegratedcircuit,asic)的一部分。
第二存儲器1404一般包括一個或多個磁盤驅動器或可擦除可編程只讀存儲器(erasableprogrammablerom,eprom),用來處理數(shù)據(jù)的非易失性存儲。第二存儲器1404可以用來存儲加載到ram1408的程序,這些程序被選中執(zhí)行。rom1406可以用來存儲指令,也可能是數(shù)據(jù),即在程序執(zhí)行過程中被讀取的。rom1406屬于非易失性存儲設備,相對于第二存儲器1404的大存儲容量而言,rom1406的存儲容量較小。ram1408用來存儲易失性數(shù)據(jù),也可能是指令。訪問rom1406和ram1408的的速度一般快于訪問第二存儲器1404。
本文描述的特征/方法,至少有一些可以在網(wǎng)絡裝置或元件中實現(xiàn),例如網(wǎng)絡節(jié)點。例如,本文公開的特征/方法可以利用硬件、固件和/或在硬件上安裝運行的軟件來實現(xiàn)。網(wǎng)絡裝飾/元件或節(jié)點可以是任意通過網(wǎng)絡傳輸數(shù)據(jù)幀的設備,網(wǎng)絡包括,開關、路由器、橋、服務器等等。如圖15所示,網(wǎng)絡裝置/元件1500可以包括多個如端口或單元,用來接收來自其他節(jié)點和邏輯電路的數(shù)據(jù)幀,從而確定將數(shù)據(jù)幀發(fā)送給哪個節(jié)點,還包括多個出端口或單元,用來向其他節(jié)點傳輸數(shù)據(jù)幀。如和/或出端口可以包括電氣的和/或光學的、傳輸和/或接收元件。
本文公開了至少一個實施例,并且,由本領域普通技術人員對實施例和/或實施例的特征做出的變化、合并和/或修改都在本發(fā)明公開的范圍內。通過合并、融合和/或忽略實施例的某些特征從而生成的實施例也在本發(fā)明公開的范圍內。其中,對于數(shù)字的范圍或限制都進行了明確的表述,這些范圍或限制可以理解為包含反復的范圍或相同數(shù)量的限制,都是明確表述的范圍或限制即,從大約1到大約10包括2、3、4等,大于0.10包括0.11、0.12、0.13等)。例如,當公開了數(shù)字范圍的一個下限rl和一個上限ru,則在該范圍內指定任意數(shù)字。尤其,本文公開了范圍內的以下數(shù)字:r=rl+k*(ru-rl),其中,k是一個變量,從1%到100%不定,有1%的增長,即,k是1%、2%、3%、4%、5%,……,70%、71%、72%,……,95%、96%、97%、98%、99%、或100%。此外,具體還公開了由上述定義的兩個r數(shù)字得出的數(shù)字范圍。文中“(大)約”表示對接下來的數(shù)字進行±10%,除非有明確表示。權利要求的任一要素中所使用的詞匯“可選地”,表示該要素是必須的,或者,不是必須的,二者都屬于權利要求的范圍內。使用廣義詞匯,例如“包括/包含/有……等”,可以理解為對狹義詞匯,例如“由……組成”、“基本由……組成”以及“基本由……構成”的支持補充。相應地,保護范圍并不局限于以上描述,而是由下文的權利要求進行限定,該范圍包括所有對應權利要求主題的內容。下文進一步公開了權利要求,每一項權利要求的內容都結合在說明書中,且權利要求部分屬于本發(fā)明公開的實施例。對于文中引用的討論并非認可它是現(xiàn)有技術,尤其是對那些發(fā)布日期在本申請的優(yōu)先日期之后的引用。本文中引用的所有專利、專利申請以及發(fā)表物的內容都是通過引用進行結合,從而給本文提供較佳的、程序上的、以及其他細節(jié)的補充。
雖然本發(fā)明提供了一些實施例,但需要了解的是,其公開的系統(tǒng)和方法還是會以許多其他特定的形式實現(xiàn),并不脫離本發(fā)明的精神和范圍。本文的實施例只是用來進行說明,而并非限制,并不應將意圖局限于文中所給出的細節(jié)。例如,在另一個系統(tǒng)中,可以將各種元素或器件進行合并或融合,也可以忽略或不實現(xiàn)某些特征。
此外,關于各種實施例中分別或單獨描述說明的技術、系統(tǒng)、子系統(tǒng)、方法,可以和其他系統(tǒng)、技術或方法進行合并或融合,且并不脫離本發(fā)明的范圍。其他展示或討論的項,例如耦合、直接耦合、互相通信,都可以是利用一些接口、設備或中間器件,通過電力、機械或其他手段,進行間接耦合或通信。本領域技術人員可以對這些實施例進行修改、替換以及變更,且并不脫離本發(fā)明的精神和范圍。