相關申請案交叉申請
本發(fā)明要求2016年2月11日遞交的發(fā)明名稱為“中間系統(tǒng)到中間系統(tǒng)拓撲透明區(qū)(intermediate-system-to-intermediate-systemtopology-transparent-zone)”的第15/041,770號美國非臨時專利申請案的在先申請優(yōu)先權,該在先申請又要求2015年2月25日遞交的發(fā)明名稱為“中間系統(tǒng)到中間系統(tǒng)拓撲透明區(qū)(intermediate-system-to-intermediate-systemtopology-transparent-zone)”的第62/120,793號美國臨時專利申請案的在先申請優(yōu)先權,這兩個在先申請的全部內容以引入的方式并入本文本中。
背景技術:
隨著網(wǎng)絡流量持續(xù)增長,網(wǎng)絡中的網(wǎng)絡節(jié)點數(shù)也可能會增加。為了管理網(wǎng)絡流量,可以通過將網(wǎng)絡拆分成多個區(qū)域來擴展網(wǎng)絡。然而,拆分網(wǎng)絡可能存在一定的挑戰(zhàn)性,或者可能會造成資源利用問題和/或服務中斷問題。例如,將網(wǎng)絡由一個區(qū)域拆分成多個區(qū)域或者由多個現(xiàn)有區(qū)域拆分成更多區(qū)域,可能要耗費大量時間,并且還可能涉及重大的網(wǎng)絡架構變更。在網(wǎng)絡被拆分成多個區(qū)域的過程中,網(wǎng)絡攜帶的服務也可能會被中斷。此外,設置跨越多個區(qū)域的多協(xié)議標記交換(multi-protocollabelswitching,mpls)流量工程(trafficengineering,te)標記交換路徑可能很復雜。在傳統(tǒng)系統(tǒng)中,可以使用路徑計算單元(pathcomputationelement,pce)通過pce通信協(xié)議(pcecommunicationprotocol,pcep)計算跨越多個區(qū)域的te路徑。這樣的傳統(tǒng)系統(tǒng)可能需要手動配置順序域,并且網(wǎng)絡運營商可能難以進行配置。此外,該傳統(tǒng)系統(tǒng)可能無法確保提供最優(yōu)路徑,并且還可能需要獲悉鏈路狀態(tài)通告(link-stateadvertisement,lsa)等分布在網(wǎng)絡節(jié)點之間的大量鏈路狀態(tài),這可能造成可擴展性問題。
技術實現(xiàn)要素:
在一項實施例中,提供了一種用于中間系統(tǒng)到中間系統(tǒng)(intermediate-system-to-intermediate-system,isis)拓撲透明區(qū)(topology-transparent-zone,ttz)中的邊緣網(wǎng)絡節(jié)點的方法。所述方法包括:接收isisttz的標識符,所述邊緣網(wǎng)絡節(jié)點被分配到所述isisttz;接收并存儲isisttz拓撲信息;接收將所述isisttz拓撲信息分發(fā)給被分配到所述isisttz的其它網(wǎng)絡節(jié)點的命令;生成ttz相關的類型長度值(type-length-value,tlv)并在所述ttz相關的tlv中設置用于指示與所述isisttz相關的拓撲信息即將被分發(fā)的指示符;將所述ttz相關的tlv添加到即將被所述邊緣網(wǎng)絡節(jié)點傳輸?shù)逆溌窢顟B(tài)協(xié)議數(shù)據(jù)單元(linkstateprotocoldataunit,lsp)中;以及將所述lsp分發(fā)給鄰近所述邊緣網(wǎng)絡節(jié)點的所有ttz節(jié)點。
生成所述ttz相關的tlv可以包括生成包括如下項的所述ttz相關的tlv:所述isisttz的所述標識符;用于指示網(wǎng)絡節(jié)點是邊緣網(wǎng)絡節(jié)點還是內部網(wǎng)絡節(jié)點的第一指示符;用于指示與所述isisttz相關的拓撲信息是否即將被分發(fā)的第二指示符;用于指示遷移到所述isisttz是否即將發(fā)生的第三指示符;用于指示回退的普通拓撲信息是否即將被分發(fā)的第四指示符;用于指示從所述isisttz回退是否正在發(fā)生的第五指示符;以及包含有關鄰近所述邊緣網(wǎng)絡節(jié)點的ttz節(jié)點的信息的子tlv字段。所述子tlv字段可以包括:包含與至少一個鄰近所述邊緣網(wǎng)絡節(jié)點且為中間系統(tǒng)節(jié)點的ttz節(jié)點相關的信息的ttz中間系統(tǒng)網(wǎng)絡(intermediatesystemnetwork,isn)子tlv;以及當所述邊緣網(wǎng)絡節(jié)點有至少一個為終端系統(tǒng)節(jié)點的鄰近ttz節(jié)點時,包含與至少一個為終端系統(tǒng)節(jié)點的鄰近ttz節(jié)點相關的信息的ttz終端系統(tǒng)網(wǎng)絡(endsystemnetwork,esn)子tlv。所述isn子tlv可以包括:所述至少一個鄰近所述邊緣網(wǎng)絡節(jié)點且為中間系統(tǒng)節(jié)點的ttz節(jié)點的標識符;以及至少一個與所述至少一個鄰近所述邊緣網(wǎng)絡節(jié)點且為中間系統(tǒng)節(jié)點的ttz節(jié)點相關的度量。所述esn子tlv可以包括:所述至少一個鄰近所述邊緣網(wǎng)絡節(jié)點且為終端系統(tǒng)節(jié)點的ttz節(jié)點的標識符;以及至少一個與所述至少一個鄰近所述邊緣網(wǎng)絡節(jié)點且為終端系統(tǒng)節(jié)點的ttz節(jié)點相關的度量。所述方法還可以包括:接收遷移到所述isisttz的命令;在所述ttz相關的tlv中設置用于指示遷移到所述isisttz即將發(fā)生的指示符;以及使用所述ttz相關的tlv中被設置用于指示遷移到所述isisttz即將發(fā)生的所述指示符將所述lsp分發(fā)給鄰近所述邊緣網(wǎng)絡節(jié)點的所有ttz節(jié)點。響應接收遷移到所述isisttz的所述命令,所述邊緣網(wǎng)絡節(jié)點可以將被分配到所述isisttz的其它邊緣網(wǎng)絡節(jié)點添加到所述邊緣網(wǎng)絡節(jié)點的lsp中的中間系統(tǒng)鄰居tlv中;從所述中間系統(tǒng)鄰居tlv中刪除包含在所述ttzisn子tlv中的任何鄰近節(jié)點;以及從所述邊緣網(wǎng)絡節(jié)點的lsp中的終端系統(tǒng)鄰居tlv中刪除包含在所述ttzesn子tlv中的任何鄰近節(jié)點。
在另一項實施例中,提供了一種用于isisttz中的內部網(wǎng)絡節(jié)點的方法。所述方法包括:接收isisttz的標識符,所述內部網(wǎng)絡節(jié)點被分配到所述isisttz;從另一個節(jié)點接收具有包含與所述isisttz相關的拓撲信息即將被分發(fā)的指示的第一ttz相關的tlv的第一lsp,其中所述第一ttz相關的tlv還包含與所述另一個節(jié)點相關的拓撲信息;將所述第一lsp分發(fā)給所述內部網(wǎng)絡節(jié)點的鄰近ttz節(jié)點,但發(fā)出所述第一lsp的所述鄰近ttz節(jié)點除外;生成第二lsp并將第二ttz相關的tlv添加到所述第二lsp中,其中所述第二ttz相關的tlv不包含與所述內部網(wǎng)絡節(jié)點相關的拓撲信息;以及將所述第二lsp分發(fā)給鄰近所述內部網(wǎng)絡節(jié)點的所有ttz節(jié)點。
所述第二ttz相關的tlv可以包括:所述isisttz的所述標識符;以及用于指示網(wǎng)絡節(jié)點是邊緣網(wǎng)絡節(jié)點還是內部網(wǎng)絡節(jié)點的第一指示符。響應接收所述第一ttz相關的tlv,所述內部網(wǎng)絡節(jié)點可以在所述第二ttz相關的tlv中設置用于指示所述內部網(wǎng)絡節(jié)點是內部網(wǎng)絡節(jié)點的所述第一指示符。在所述第二ttz相關的tlv中設置用于指示所述內部網(wǎng)絡節(jié)點是內部網(wǎng)絡節(jié)點的所述第一指示符還可以指示,所有連接到所述內部網(wǎng)絡節(jié)點的電路是ttz電路。所述方法還可以包括:從另一個節(jié)點接收包含遷移到所述isisttz即將發(fā)生的指示的第三lsp;以及將所述第三lsp分發(fā)給鄰近所述內部網(wǎng)絡節(jié)點的所有ttz節(jié)點,但發(fā)出所述第三lsp的所述ttz節(jié)點除外。所述方法還可以包括:從另一個節(jié)點接收由包含虛電路的ttz邊緣節(jié)點生成的第四lsp;將所述第四lsp中的信息存儲到所述內部網(wǎng)絡節(jié)點的鏈路狀態(tài)數(shù)據(jù)庫(linkstatedatabase,lsdb)中并為每個所述虛電路設置用于指示每個所述虛電路無法用于計算路由表的標志;以及將所述第四lsp分發(fā)給鄰近所述內部網(wǎng)絡節(jié)點的所有ttz節(jié)點,但發(fā)出所述第四lsp的所述ttz節(jié)點除外。響應接收包含遷移到所述isisttz即將發(fā)生的所述指示的所述第三lsp,所述內部網(wǎng)絡節(jié)點可以采用所述內部網(wǎng)絡節(jié)點的lsdb中的ttz電路和正常電路計算路由表,而未采用具有被設置用于指示所述虛電路無法用于計算所述路由表的所述標志的所述虛電路。
在另一項實施例中,提供了一種包括接收器和處理器的網(wǎng)絡節(jié)點。所述接收器用于:接收isisttz的標識符,所述網(wǎng)絡節(jié)點被分配到所述isisttz;接收并存儲isisttz拓撲信息;以及接收將所述isisttz拓撲信息分發(fā)給被分配到所述isisttz的其它網(wǎng)絡節(jié)點的指示。所述處理器耦合到所述接收器并用于:生成ttz相關的tlv并在所述ttz相關的tlv中設置用于指示與所述isisttz相關的拓撲信息即將被分發(fā)的指示符;將所述ttz相關的tlv添加到與所述網(wǎng)絡節(jié)點關聯(lián)的ttz相關的信息中;以及將所述ttz相關的信息分發(fā)給鄰近所述網(wǎng)絡節(jié)點的所有ttz節(jié)點。所述ttz相關的tlv包括:所述isisttz的所述標識符;用于指示所述網(wǎng)絡節(jié)點是邊緣網(wǎng)絡節(jié)點還是內部網(wǎng)絡節(jié)點的第一指示符;用于指示與所述isisttz相關的拓撲信息即將被分發(fā)的第二指示符;用于指示遷移到所述isisttz是否即將發(fā)生的第三指示符;用于指示回退的普通拓撲信息是否即將被分發(fā)的第四指示符;用于指示從所述isisttz回退是否正在發(fā)生的第五指示符;以及包含有關至少一個鄰近所述網(wǎng)絡節(jié)點的ttz節(jié)點的信息的子tlv字段。
用于分發(fā)與所述isisttz相關的拓撲信息的所述指示可以是如下項中的至少一項:由所述網(wǎng)絡節(jié)點接收的命令;以及由所述網(wǎng)絡節(jié)點從另一個節(jié)點接收lsp中的ttz相關的tlv,其中所述接收的ttz相關的tlv包括被設置用于指示與所述isisttz相關的拓撲信息即將被分發(fā)的所述第二指示符。與所述網(wǎng)絡節(jié)點關聯(lián)的所述ttz相關的信息可以是如下項中的至少一項:與所述網(wǎng)絡節(jié)點關聯(lián)的lsp,以及由所述網(wǎng)絡節(jié)點傳輸?shù)膆ello消息。所述子tlv字段可以包括包含如下項的ttzisn子tlv:至少一個鄰近所述網(wǎng)絡節(jié)點且為中間系統(tǒng)節(jié)點的ttz節(jié)點的標識符;以及至少一個與所述至少一個鄰近所述網(wǎng)絡節(jié)點且為中間系統(tǒng)節(jié)點的ttz節(jié)點相關的度量。當所述網(wǎng)絡節(jié)點具有至少一個為終端系統(tǒng)節(jié)點的鄰近ttz節(jié)點時,所述子tlv字段還可以包括包含如下項的ttzesn子tlv:所述至少一個為終端系統(tǒng)節(jié)點的鄰近ttz節(jié)點的標識符;以及至少一個與所述至少一個為終端系統(tǒng)節(jié)點的鄰近ttz節(jié)點相關的度量。所述處理器還可以用于使用被設置用于指示遷移到所述isisttz即將發(fā)生的所述第三指示符將所述ttz相關的tlv分發(fā)給鄰近所述網(wǎng)絡節(jié)點的所有ttz節(jié)點。
另一項實施例提供了一種存儲用于建立isisttz的計算機指令的非瞬時性計算機可讀介質,所述計算機指令在由一個或多個處理器執(zhí)行時,使所述一個或多個處理器執(zhí)行如下操作的步驟:接收isisttz的標識符,邊緣網(wǎng)絡節(jié)點被分配到所述isisttz;接收并存儲isisttz拓撲信息;接收將所述isisttz拓撲信息分發(fā)給被分配到所述isisttz的其它網(wǎng)絡節(jié)點的命令;生成ttz相關的tlv并在所述ttz相關的tlv中設置用于指示與所述isisttz相關的拓撲信息即將被分發(fā)的指示符;將所述ttz相關的tlv添加到即將被所述邊緣網(wǎng)絡節(jié)點傳輸?shù)膌sp中;以及將所述lsp分發(fā)給鄰近所述邊緣網(wǎng)絡節(jié)點的所有ttz節(jié)點。
另一項實施例提供了一種存儲用于建立isisttz的計算機指令的非瞬時性計算機可讀介質,所述計算機指令在由一個或多個處理器執(zhí)行時,使所述一個或多個處理器執(zhí)行如下操作的步驟:接收isisttz的標識符,內部網(wǎng)絡節(jié)點被分配到所述isisttz;從另一個節(jié)點接收具有包含與所述isisttz相關的拓撲信息即將被分發(fā)的指示的第一ttz相關的tlv的第一lsp,其中所述第一ttz相關的tlv還包含與所述另一個節(jié)點相關的拓撲信息;將所述第一lsp分發(fā)給所述內部網(wǎng)絡的鄰近ttz節(jié)點,但發(fā)出所述第一lsp的所述鄰近ttz節(jié)點除外;生成第二lsp并將第二ttz相關的tlv添加到所述第二lsp中,其中所述第二ttz相關的tlv不包含與所述內部網(wǎng)絡節(jié)點相關的拓撲信息;以及將所述第二lsp分發(fā)給鄰近所述內部網(wǎng)絡節(jié)點的所有ttz節(jié)點。
為清楚起見,可以將前述實施例中的任何一項實施例與前述實施例中的任何一項或多項其它實施例結合,以在本發(fā)明范圍內創(chuàng)建新的實施例。
從下文結合附圖和權利要求的詳細描述中將更清晰地理解這些以及其它特性。
附圖說明
為了更透徹地理解本發(fā)明,現(xiàn)參閱結合附圖和具體實施方式而描述的以下簡要說明,其中的相同參考標號表示相同部分。
圖1為一種實現(xiàn)isisttz的網(wǎng)絡的實施例的方框圖。
圖2為另一種實現(xiàn)isisttz的網(wǎng)絡的實施例的方框圖。
圖3為ttztlv的實施例的示意圖。
圖4為ttz中間系統(tǒng)網(wǎng)絡節(jié)點的子tlv的實施例的示意圖。
圖5為ttz終端系統(tǒng)網(wǎng)絡節(jié)點的子tlv的實施例的示意圖。
圖6為一種實現(xiàn)isisttz的網(wǎng)元的實施例的示意圖。
圖7為一種用于邊緣網(wǎng)絡節(jié)點參與實現(xiàn)isisttz的方法的實施例的流程圖。
圖8為一種用于內部網(wǎng)絡節(jié)點參與實現(xiàn)isisttz的方法的實施例的流程圖。
圖9為一種采用多個電路的isisttz的實施例的示意圖。
圖10為可以執(zhí)行本文中公開的實施例中的步驟的部件的功能方框圖。
具體實施方式
首先應理解,盡管下文提供一項或多項實施例的說明性實施方案,但所公開的系統(tǒng)和/或方法可使用任何數(shù)目的技術來實施,無論該技術是當前已知還是現(xiàn)有的。本發(fā)明決不應限于下文所說明的說明性實施方案、附圖和技術,包括本文所說明并描述的示例性設計和實施方案,而是可在所附權利要求書的范圍以及其等效物的完整范圍內修改。
本文中公開的內容為用于構建和支持中間系統(tǒng)到中間系統(tǒng)(intermediate-system-to-intermediate-system,isis)拓撲透明區(qū)(topology-transparent-zone,ttz)的多項實施例。ttz包括一組路由器和多個連接路由器的電路。該區(qū)域外的任何路由器都感測不到該區(qū)域的存在。該區(qū)域內電路和路由器的有關信息不分發(fā)給該區(qū)域外的任何路由器。該區(qū)域外的任何路由器都感測不到該區(qū)域內的任何鏈路狀態(tài)變更,例如電路故障。
ttz可以部署用于解決一些關鍵問題,例如現(xiàn)有網(wǎng)絡及未來網(wǎng)絡中的服務中斷和可擴展性。ttz最好可以后向兼容。也就是說,當ttz部署在網(wǎng)絡中的一組路由器之上時,網(wǎng)絡中該ttz外的路由器無需感測到該ttz的存在或支持該ttz。除了現(xiàn)有路由協(xié)議支持的分級以外,ttz可以支持至少一個多層網(wǎng)絡分級。用戶可以輕松設置跨越ttz的端到端服務。最好將網(wǎng)絡中ttz的配置以及用于支持ttz的現(xiàn)有協(xié)議的更改保持在最低水平。
ttz由標識符(identifier,id)標識,并包括一組路由器和多個連接路由器的電路。ttz可以位于isis子域(區(qū)域)中。ttzid是用于標識isis子域(區(qū)域)中的節(jié)點等實體的唯一編號。它一般不會是0。除了具有isis層級或區(qū)域的功能以外,isisttz可以對isis層級或區(qū)域進行一些改善,包括將isisttz作為連接的ttz邊緣路由器進行虛擬化。isisttz可以接收ttz外拓撲的相關鏈路狀態(tài)信息,將這些信息存儲在ttz內以及通過ttz將這些信息泛洪到ttz外的路由器。
圖1示出了一個包含ttz10的路由域的示例。該路由域包括路由器r15、r17、r23、r25、r29和r31。該路由域還包含ttz10,ttz10包括路由器r61、r63、r65、r67、r71和r73以及連接它們的電路。ttz中有兩種類型的路由器:ttz內部路由器和ttz邊緣路由器。ttz內部路由器即位于ttz內且其鄰近路由器也位于ttz內的路由器。ttz邊緣路由器即位于ttz內且連接到至少一個位于ttz外的鄰近路由器的路由器。圖1中的ttz10包括四個ttz邊緣路由器r61、r63、r65和r67。每個ttz邊緣路由器連接到至少一個位于ttz10外的路由器。例如,路由器r61是ttz邊緣路由器,因為它連接到位于ttz10外的路由器r15。此外,該ttz包括兩個ttz內部路由器r71和r73。ttz內部路由器未連接到位于ttz10外的任何路由器。例如,路由器r71是ttz內部路由器,因為它僅連接到位于ttz10內的路由器r61、r63、r65、r67和r73而未連接到位于ttz10外的任何路由器。ttz可以對外隱藏ttz內的信息,并且可以不直接將ttz的任何內部信息分發(fā)給位于ttz外的路由器。例如,圖1中位于ttz10內的路由器,如邊緣路由器r61、r63、r65和r67不會將ttz內部路由器r71或r73的有關信息發(fā)送給該路由域內位于ttz10外的任何路由器,也不會將路由器r61和r65、r61和r63、r65和r67以及r63和r67之間的電路的有關信息發(fā)送給位于ttz10外的任何路由器。
為了創(chuàng)建ttz,可能要對ttz邊緣路由器配置同樣的ttzid,并且可能要標識路由器的ttz內部電路。此外,可能還要對每個ttz內部路由器配置ttzid,其指示該路由器的每個電路是ttz內部電路。對于位于ttz外的路由器而言,ttz被視為一組充分連接的路由器。例如,圖1中位于ttz10外的路由器r15將ttz10視為一組ttz邊緣路由器:r61、r63、r65和r67。這四個ttz邊緣路由器充分連接。此外,位于ttz外的路由器發(fā)現(xiàn),ttz邊緣路由器可以正常連接到位于該ttz外的路由器。例如,路由器r15發(fā)現(xiàn),四個ttz邊緣路由器r61、r63、r65和r67分別可以正常連接到r15、r29、r17和r23以及r25和r31。
圖2為另一種實現(xiàn)isisttz的網(wǎng)絡的實施例,該isisttz的ttzid被配置為100。該ttz100類似于圖1中的ttz10,但下文更詳細描述的虛電路僅在該ttz100中示出,而未在ttz10中示出。isisttz100包括大體上類似于圖1中的ttz邊緣路由器r61、r63、r65和r67的ttz邊緣網(wǎng)絡節(jié)點t1、t3和t4。isisttz100還包括大體上類似于圖1中的ttz內部路由器r71和r73的ttz內部網(wǎng)絡節(jié)點t2、t5、t6、t7和t8。圖2中的網(wǎng)絡節(jié)點r2-r8位于isisttz100外,并且大體上類似于圖1中的路由器r15、r17、r23、r25、r29和r31。ttz網(wǎng)絡節(jié)點t1-t8通過電路與彼此進行數(shù)據(jù)通信。兩個ttz邊緣節(jié)點之間的虛電路為點對點電路,該點對點電路的成本為該ttz內這兩個ttz邊緣節(jié)點之間最短路徑的成本。因此,電路201可以是t1和t3之間的虛電路,具有該ttz100內t1和t3之間最短路徑的成本。同樣地,電路202可以是t1和t4之間的虛電路,具有該ttz100內t1和t4之間最短路徑的成本。如下文更詳細的描述,可以在遷移到ttz100完成之后再創(chuàng)建虛電路201和202。未與位于isisttz外的網(wǎng)絡節(jié)點共享虛電路沿線的ttz內部節(jié)點的路由信息。因此,對于位于isisttz外的網(wǎng)絡節(jié)點而言,每個虛電路都是兩個ttz邊緣節(jié)點之間的普通點對點電路。
本文中公開的實施例允許平滑轉移網(wǎng)絡路由區(qū)域中的路由器和將這些路由器連接到isisttz等虛實體的電路,而不會對網(wǎng)絡造成路由中斷,并且只需對網(wǎng)絡進行最少的網(wǎng)絡操作。此外,采用isisttz可以最大程度減少虛擬化現(xiàn)有網(wǎng)絡中部分網(wǎng)絡期間的服務中斷。
尤其是,本文中定義了一個被稱為ttztlv的新的類型長度值(type-length-value,tlv)。這個新的ttztlv促進平滑遷移到新的ttz配置,而不會造成服務中斷。可以將這個新的ttztlv添加到ttz節(jié)點的鏈路狀態(tài)協(xié)議數(shù)據(jù)單元(linkstateprotocoldataunit,lsp)或hello協(xié)議數(shù)據(jù)單元(protocoldataunit,pdu)中。hellopdu也被稱為hello消息。
圖3為可能包括在由isisttz中的ttz節(jié)點生成的lsp中的ttztlv300的實施例,例如圖1中的ttz10或圖2中的ttz100。ttztlv300包括類型字段301、長度字段302、標記字段303、ttzid字段304和子tlv字段305。類型字段301可以指示,ttztlv300與isisttz關聯(lián)。長度字段302可以指示ttztlv300的長度。標記字段303可以包括isisttz所用的多個標記。例如,標記字段303可以包括:指示ttz網(wǎng)絡節(jié)點是ttz邊緣網(wǎng)絡節(jié)點還是ttz內部網(wǎng)絡節(jié)點的第一標記310;指示isisttz的拓撲信息正在被分發(fā)以進行遷移的第二標記320;指示ttz網(wǎng)絡節(jié)點正在遷移到isisttz的第三標記330;指示普通的拓撲信息正在被分發(fā)以進行回退的第四標記340;以及指示ttz網(wǎng)絡節(jié)點正在從isisttz回退的第五標記350。第一標記310可以指下文中的e標記或e位,第二標記320可以指下文中的t標記或t位,第三標記330可以指下文中的m標記或m位,第四標記340可以指下文中的n標記或n位,第五標記350可以指下文中的r標記或r位。ttzid字段304可以指示ttz節(jié)點所隸屬的isisttz的標識符。子tlv字段305可以包括一個或多個與isisttz中的ttz節(jié)點關聯(lián)的子tlv。
圖4為可能包括在圖3中的ttztlv300的子tlv字段305中的子tlv400的實施例。子tlv400可能與生成具有包含子tlv400的ttztlv的lsp的ttz節(jié)點關聯(lián)。子tlv400可以包括連接到ttz節(jié)點的多個ttz中間系統(tǒng)網(wǎng)絡(intermediatesystemnetwork,isn)節(jié)點的有關信息,其中isn節(jié)點可以被定義為連接到至少兩個其它節(jié)點的節(jié)點。也就是說,isn節(jié)點不是僅連接到一個其它節(jié)點的“空端”節(jié)點。在圖1中,位于ttz10內的所有路由器都是isn節(jié)點,但路由器r73除外。術語“isn節(jié)點”和“中間系統(tǒng)網(wǎng)絡節(jié)點”不是圖1中所用的術語“內部路由器”或圖2中所用的術語“內部網(wǎng)絡節(jié)點”的同義詞。ttzisn子tlv400包括類型字段401、長度字段402以及多個度量字段403和多個鄰居id字段404。類型字段401可以指示,ttzisn子tlv400適用于多個為ttz節(jié)點的鄰近ttz鄰居的ttzisn節(jié)點。長度字段402可以指示ttzisn子tlv400的長度。后面帶有鄰居id字段404的每個度量字段403可以指示由鄰居id字段404中的鄰居id標識的鄰居ttzisn節(jié)點的一個或多個度量。
圖5為可能包括在圖3中的ttztlv300的子tlv字段305中的另一個子tlv500的實施例。子tlv500可能與生成具有包含子tlv500的ttztlv的lsp的ttz節(jié)點關聯(lián)。子tlv500可以包括多個ttz終端系統(tǒng)網(wǎng)絡(endsystemnetwork,esn)節(jié)點的有關信息,其中esn節(jié)點可以被定義為僅連接到一個其它節(jié)點的節(jié)點。也就是說,esn節(jié)點可以被視為“空端”節(jié)點。在圖1中,路由器r73是esn節(jié)點。術語“esn節(jié)點”和“終端系統(tǒng)網(wǎng)絡節(jié)點”不是圖1中所用的術語“邊緣路由器”或圖2中所用的術語“邊緣網(wǎng)絡節(jié)點”的同義詞。ttzesn子tlv500包括類型字段501、長度字段502、一個或多個度量字段503和一個或多個鄰居id字段504。類型字段501可以指示,ttzesn子tlv500適用于ttzesn節(jié)點。長度字段502可以指示ttzesn子tlv500的長度。度量字段503可以指示多個終端系統(tǒng)鄰居的一個或多個度量。鄰居id字段504可以標識連接到ttz節(jié)點的一個或多個ttz內部終端系統(tǒng)鄰居。
連接到多個其它節(jié)點的指定節(jié)點的子tlv字段305將包含isn子tlv400,該isn子tlv400包含連接到該指定節(jié)點的每個isn節(jié)點的拓撲信息。如果該指定節(jié)點連接到一個或多個esn節(jié)點,該指定節(jié)點的子tlv字段305將包含ttzesn子tlv500,該ttzesn子tlv500包含連接到該指定節(jié)點的每個esn節(jié)點的拓撲信息。如果該指定節(jié)點未連接到esn節(jié)點,那么子tlv字段305將僅包含ttzisn子tlv400而不包含ttzesn子tlv500。
在一項實施例中,網(wǎng)絡中的一組節(jié)點遷移到ttz涉及至少三個步驟:配置ttz、觸發(fā)ttz信息的分發(fā)以及觸發(fā)遷移。配置ttz是將同一ttzid分配給即將包括在ttz內的所有節(jié)點。例如,圖2中的節(jié)點t1-t8將被分配ttzid100。
觸發(fā)ttz信息的分發(fā)也可以被稱為準備遷移。在這一步,準備遷移的命令由網(wǎng)絡管理員或即將包括在ttz內的一個節(jié)點的類似實體下達。例如,該命令可以下達給圖2中的t1。響應接收該命令,t1將圖3中的ttztlv300等ttztlv添加到其lsp中并設置用于指示拓撲信息正在被分發(fā)以進行遷移的t標記320。例如,t標記320可以設為1。t1還添加指示哪些ttz節(jié)點鄰近t1的ttztlv拓撲信息。t1隨后將包含ttztlv的lsp發(fā)送給鄰近t1的所有ttz節(jié)點。例如,在圖2中,t1會將lsp發(fā)送給t2、t6和t8。t1不會將lsp發(fā)送給r2、r4或r6,因為r2、r4和r6不是ttz節(jié)點。響應接收包含將t標記320設為1的ttztlv的lsp,鄰近t1的每個ttz節(jié)點:將lsp分發(fā)給其所有鄰近ttz節(jié)點,但發(fā)出lsp的t1除外;將圖3中的ttztlv300等ttztlv添加到其lsp中并將其lsp發(fā)送給鄰近它的所有ttz節(jié)點。在一項實施例中,ttz邊緣節(jié)點將第二ttztlv添加到其lsp中,以響應接收包含將t標記320設為1的ttztlv的lsp。該第二ttztlv包括:該ttz邊緣節(jié)點所隸屬的ttz的ttzid;連接到該ttz邊緣節(jié)點的ttz中間系統(tǒng)鄰居的子tlv400;以及連接到該ttz邊緣節(jié)點的ttz終端系統(tǒng)鄰居的子tlv500。在另一項實施例中,ttz內部節(jié)點將第三ttztlv添加到其lsp中,以響應接收包含將t標記320設為1的ttztlv的lsp。該第三ttztlv包括該ttz內部節(jié)點所隸屬的ttz的ttzid,但不包括任何子tlv。在另一項實施例中,ttz內部節(jié)點將第四ttztlv添加到其lsp中,以響應接收包含將t標記320設為1的ttztlv的lsp。該第四ttztlv包括:該ttz內部節(jié)點所隸屬的ttz的ttzid;連接到該ttz內部節(jié)點的ttz中間系統(tǒng)鄰居的子tlv400;以及連接到該ttz內部節(jié)點的ttz終端系統(tǒng)鄰居的子tlv500。此外,每個鄰近節(jié)點將信息存儲在從t1接收的包含ttztlv的lsp中。該步驟繼續(xù)執(zhí)行,直到即將包括在ttz中的所有節(jié)點占據(jù)有關即將包括在ttz中的所有其它節(jié)點的拓撲信息。
在觸發(fā)遷移步驟,網(wǎng)絡管理員或類似實體將遷移命令下達給即將包括在ttz中的一個節(jié)點。被下達遷移命令的節(jié)點可以是被下達準備遷移命令的節(jié)點,也可以不是。接收遷移命令的節(jié)點在其ttztlv中設置m標記330,以指示遷移到ttz即將發(fā)生。例如,m標記330可以設為1。接收遷移命令的節(jié)點隨后將其包含ttztlv的lsp發(fā)送給其所有鄰近ttz節(jié)點。響應接收包含將m標記330設為1的ttztlv的lsp,每個鄰近節(jié)點將信息存儲在lsp中并將lsp分發(fā)給其鄰近ttz節(jié)點,但發(fā)出lsp的節(jié)點除外。該步驟繼續(xù)執(zhí)行,直到即將包括在ttz中的所有節(jié)點獲悉遷移到ttz即將發(fā)生。屆時,t1和t3之間的虛電路201與t1和t4之間的虛電路202等邊緣節(jié)點之間的虛電路可以包括在由ttz邊緣節(jié)點生成的lsp中。這些lsp被分發(fā)給位于ttz外的節(jié)點。隨后可以從t1等邊緣節(jié)點的lsp中刪除連接到ttz邊緣節(jié)點的實際ttz電路的有關信息,例如從t1連接到t2的電路、從t1連接到t8的電路或從t1連接到t6的電路。
現(xiàn)在對上述步驟進行更詳細的描述。在不造成任何服務中斷的情況下,在用作ttz的區(qū)域中轉移一組路由器和多個連接這些路由器的電路可能要涉及多個步驟或階段。首先,用戶可能要給ttz中的每個路由器配置ttz功能。也就是說,被選入ttz中的每個路由器被分配同樣的ttzid,例如圖2中的ttzid100。在這個階段,路由器會發(fā)現(xiàn)其ttz鄰居,但不會更新其lsp。如下文更詳細的描述,發(fā)現(xiàn)ttz鄰居可以通過使用hello消息來執(zhí)行。配置ttz后,用戶可以向ttz中的一個路由器下達命令,從而觸發(fā)ttz中的每個路由器將ttz信息分發(fā)給ttz中的路由器。也就是說,如果一個路由器,如圖2中的t1,收到命令,該路由器會通過添加ttztlv,如圖3中的ttztlv300,來更新其lsp,并將該lsp分發(fā)給其ttz鄰居。該lsp將ttztlv300的標記字段303中的t標記320設為1,以指示用于遷移的ttz信息的生成與分發(fā)。如果ttz中的路由器收到包含設為1的t標記的lsp,接收路由器會通過添加ttztlv來更新其lsp。在這個階段,ttz中的每個路由器都具有雙重作用。一方面用作常規(guī)路由器,另一方面用于生成并分發(fā)ttz信息。然后,用戶可能要檢查ttz中的每個路由器是否已做好轉而用作ttz路由器的準備。ttz中的路由器從ttz中的所有路由器接收所有必要信息后,即已準備就緒。這些信息可以通過命令顯示在路由器上。用戶隨后可以在ttz中的一個路由器上使用“遷移到ttz”等命令來激活ttz。該路由器轉而用作ttz路由器并更新其包含在ttztlv中設為1的m標記330的lsp,以指示在接收命令后遷移到ttz。該路由器隨后將其包含設為1的m標記330的ttztlv分發(fā)給其ttz鄰居。ttz中的任何路由器收到包含設為1的m標記330的lsp后,接收路由器也會轉而用作ttz路由器。因此,在一個ttz路由器上激活ttz會使ttz中的每個路由器轉而用作ttz路由器,從而利用ttz拓撲和位于ttz外的拓撲計算路由。對于ttz的邊緣路由器,轉而用作ttz路由器包括通過將其它ttz邊緣路由器中的每一個添加為中間系統(tǒng)(intermediatesystem,is)鄰居來更新其lsp以虛擬化ttz以及將該lsp泛洪到其所有直接鄰居路由器。隨后,該ttz邊緣路由器從該lsp的中間系統(tǒng)鄰居tlv和終端系統(tǒng)鄰居tlv中刪除對應于ttztlv(即ttzisn子tlv400和ttzesn子tlv500)中的is鄰居的is鄰居。
當準備遷移到isisttz中時,ttz邊緣網(wǎng)絡節(jié)點會將ttztlv添加到其lsp中。ttztlv包括ttzid和連接到ttz邊緣網(wǎng)絡節(jié)點的ttz節(jié)點的子tlv。如果啟動遷移到ttz,ttz邊緣網(wǎng)絡節(jié)點會將連接到其它ttz邊緣網(wǎng)絡節(jié)點的點對點(point-to-point,p2p)電路添加到其lsp中。ttz邊緣網(wǎng)絡節(jié)點不會將ttz內部網(wǎng)絡節(jié)點的lsp分發(fā)給位于isisttz外的網(wǎng)絡節(jié)點。ttz邊緣網(wǎng)絡節(jié)點從其它ttz邊緣網(wǎng)絡節(jié)點接收包含虛電路的lsp后,例如,在預定的一段時間內,該ttz邊緣網(wǎng)絡節(jié)點會刪除其lsp中的ttz電路。
當準備遷移到isisttz中時,ttz內部網(wǎng)絡節(jié)點會將ttztlv添加到其lsp中。內部ttz網(wǎng)絡節(jié)點的ttztlv包括ttzid和指示該ttz網(wǎng)絡節(jié)點為ttz內部網(wǎng)絡節(jié)點的標記。例如,圖3中的ttztlv300中的e標記310可以設為0。ttz邊緣網(wǎng)絡節(jié)點的lsp的ttztlv中的ttz電路存儲在鏈路狀態(tài)數(shù)據(jù)庫(linkstatedatabase,lsdb)中并設有指示它們?yōu)閠tz電路的標記,同時該lsp的中間系統(tǒng)鄰居tlv或終端系統(tǒng)鄰居tlv中的對應電路也存儲在該lsdb中,但未設置指示它們?yōu)槠胀娐返臉擞洝C總€網(wǎng)絡節(jié)點都可以有它自己的lsdb。用于虛擬化isisttz的ttz邊緣網(wǎng)絡節(jié)點的lsp中的p2p電路被標識并存儲在lsdb中,并設有指示這些p2p電路無法用于由ttz網(wǎng)絡節(jié)點來計算路由的標記。如果啟動遷移到isisttz,ttz網(wǎng)絡節(jié)點將利用ttz電路計算路由,例如,當存在ttz電路和普通電路同時連接到相同的ttz網(wǎng)絡節(jié)點時。ttz網(wǎng)絡節(jié)點將利用普通電路計算路由,例如,當只有普通電路連接到ttz網(wǎng)絡節(jié)點時。ttz網(wǎng)絡節(jié)點無法利用用于虛擬化ttz的p2p電路計算路由。
對于現(xiàn)有p2p鄰接關系,ttz網(wǎng)絡節(jié)點可以將ttztlv添加到其ttz電路的hello消息中,并在該ttz電路的ttzid在該ttz網(wǎng)絡節(jié)點上配置或暗示時將該hello消息發(fā)送給遠程網(wǎng)絡節(jié)點。ttztlv可以包括ttzid。ttz網(wǎng)絡節(jié)點在從遠程網(wǎng)絡節(jié)點接收具有與被發(fā)送到該遠程網(wǎng)絡節(jié)點的hello消息相同的ttzid的hello消息后記錄ttz鄰接關系。
對于連接一個指定中間系統(tǒng)(designatedintermediatesystem,dis)ttz網(wǎng)絡節(jié)點和多個非disttz網(wǎng)絡節(jié)點的廣播電路的現(xiàn)有鄰接關系,每個非disttz網(wǎng)絡節(jié)點將ttztlv添加到其電路的hello消息中,并在該電路連接的ttzid在非disttz網(wǎng)絡節(jié)點上配置或暗示時將該hello消息發(fā)送給disttz網(wǎng)絡節(jié)點。disttz網(wǎng)絡節(jié)點將ttztlv添加到其電路的hello消息中,并在該電路連接的ttzid在disttz網(wǎng)絡節(jié)點上配置或暗示后將該hello消息發(fā)送給其它網(wǎng)絡節(jié)點(即非disttz網(wǎng)絡節(jié)點),以及從其它節(jié)點中的每一個接收具有與被發(fā)送到其它網(wǎng)絡節(jié)點的hello消息相同的ttzid的hello消息并記錄與其它網(wǎng)絡節(jié)點中的每一個的ttz鄰接關系。其它網(wǎng)絡節(jié)點中的每一個在從disttz網(wǎng)絡節(jié)點接收具有相同的ttzid的hello消息后記錄ttz鄰接關系。
采用不同的方式描述上述步驟,位于ttz內的每個ttz內部路由器,例如圖2中的路由器t2、t5、t6、t7和t8,將ttztlv添加到其lsp中。ttztlv將ttzid設為ttz的id,例如圖2中的ttzid100,并設有指示該路由器為ttz內部路由器的標記。例如,ttztlv300中的e標記310可以設為0。該路由器將其lsp泛洪到其位于ttz內的鄰居。如果位于ttz內的路由器從位于該ttz內的鄰居路由器接收包含ttztlv的lsp,該路由器會存儲鏈路狀態(tài)并將該鏈路狀態(tài)泛洪到位于該ttz內的其它鄰居路由器。
ttz中的每個邊緣路由器會依次更新其lsp并將其lsp泛洪到其所有鄰居。在一個步驟中,邊緣路由器將ttztlv添加到其lsp中。tlv將ttzid設為ttz的id,設有指示該路由器為ttz邊緣路由器的標記,并具有ttzisn子tlv。例如,如圖2中的ttztlv300中的e標記310可以設為1一樣,ttzid可以設為100,以及圖4中的ttzisn子tlv400可以包括在圖3中的ttztlv300的子tlv字段305中。ttzisn子tlv包含連接到ttz邊緣路由器的ttzis鄰居的有關信息。此外,tlv可以具有包括連接到ttz邊緣路由器的ttz終端系統(tǒng)的有關信息的ttzesn子tlv。在另一個步驟中,邊緣路由器將其它ttz邊緣路由器中的每一個作為is鄰居添加到lsp的中間系統(tǒng)鄰居tlv中。鄰居的度量即為到ttz內邊緣路由器的最短路徑的度量。在另一個步驟中,邊緣路由器從lsp的中間系統(tǒng)鄰居tlv中刪除對應于ttztlv中(即ttzisn子tlv400中)的is鄰居的is鄰居,以及從lsp的終端系統(tǒng)鄰居tlv中刪除對應于ttztlv中(即ttzesn子tlv500中)的終端系統(tǒng)(endsystem,es)鄰居的es鄰居。
由p2p電路連接且具有普通鄰接關系的兩個路由器a和b可以通過在其hello消息中包括包含ttzid的ttztlv來發(fā)現(xiàn)彼此的ttz。如果電路的兩端具有相同的ttzid,a和b是ttz鄰居;否則,它們不是ttz鄰居,而是普通鄰居。通過廣播電路連接且在其中具有普通鄰接關系的多個路由器也可以通過在其hello消息中包括包含ttzid的ttztlv來發(fā)現(xiàn)彼此的ttz。如果連接到電路的所有路由器在電路連接上配置以及在其hello消息中包括相同的ttzid,電路的指定路由器(designatedrouter,dr)(即dis)與其它路由器中的每一個“形成”ttz鄰接關系。否則,它們不是ttz鄰居,而是普通鄰居。
如果一個路由器(如a)通過p2p電路連接到另一個路由器(如b)并且它們之間未通過電路形成任何鄰接關系,用戶可以在電路的兩端配置ttz,以形成ttz鄰接關系。路由器a和b的hello消息中包括包含ttzid的ttztlv。如果兩個路由器的hello消息中包含相同的ttzid,這兩個路由器之間形成鄰接關系。否則,不形成鄰接關系。通過廣播電路連接且在其中不具有鄰接關系的多個路由器,在對電路配置ttz并在其hello消息中包括包含ttzid的ttztlv后,開始形成ttz鄰接關系。如果連接到電路的所有路由器在電路連接上配置以及在hello消息中包括相同的ttzid,電路的dr(即dis)與其它路由器中的每一個形成ttz鄰接關系。否則,dr不與連接到電路的任何路由器形成任何鄰接關系。
位于ttz內的邊緣路由器,除了與該ttz內與該邊緣路由器連接的其它路由器建立鄰接關系以外,還可以與該ttz外以本文描述的方式與該邊緣路由器連接的任何路由器形成鄰接關系。當邊緣路由器與ttz外的路由器同步其鏈路狀態(tài)數(shù)據(jù)庫時,邊緣路由器會向ttz外的路由器發(fā)送有關其lsdb中的所有l(wèi)sp的信息,但對ttz外的任何路由器隱藏的lsp除外。在鏈路狀態(tài)數(shù)據(jù)庫同步結束時,邊緣路由器會生成它自己的lsp并將該lsp發(fā)送給ttz外的路由器。該lsp包含兩組電路。第一組電路包括從該ttz邊緣路由器連接到ttz外的路由器的電路。第二組電路包括從該ttz邊緣路由器連接到其它ttz邊緣路由器的“虛”電路。從ttz外的路由器的角度而言,另一端被視為普通路由器,并以與普通路由器相同的方式形成鄰接關系。ttz外的路由器感測不到其鄰居ttz的任何信息。通過另一端與ttz邊緣路由器相關的lsp,ttz外的路由器獲悉,ttz邊緣路由器連接到其它ttz邊緣路由器中的每一個和ttz外的某些路由器。
換言之,在isisttz中,ttz內部網(wǎng)絡節(jié)點將包含ttzid的ttztlv添加到其lsp中,每個ttz邊緣網(wǎng)絡節(jié)點生成一個lsp,以及遷移到isisttz可以通過采用具有標記的現(xiàn)有l(wèi)sp來實現(xiàn)。
如果在ttz網(wǎng)絡節(jié)點上觸發(fā)ttz信息分發(fā),ttz網(wǎng)絡節(jié)點會將ttztlv相應地添加到它的一個lsp中。例如,ttz網(wǎng)絡節(jié)點在它的一個lsp的ttztlv中設置標記,并將該lsp泛洪到或發(fā)送給其鄰近的ttz網(wǎng)絡節(jié)點。例如,圖3中的ttztlv300中的t標記320可以設為1。如果ttz網(wǎng)絡節(jié)點是ttz內部網(wǎng)絡節(jié)點,ttz網(wǎng)絡節(jié)點會如上文所述為ttz內部節(jié)點添加ttztlv。如果ttz網(wǎng)絡節(jié)點是ttz邊緣網(wǎng)絡節(jié)點,ttz網(wǎng)絡節(jié)點會如上文所述為ttz邊緣網(wǎng)絡節(jié)點添加ttztlv。如果ttz網(wǎng)絡節(jié)點接收包含具有設為1的t標記320的ttztlv的lsp,ttz網(wǎng)絡節(jié)點會泛洪該lsp,將第二ttztlv相應地添加到它自己的一個lsp中,并將其lsp泛洪到其鄰近的ttz網(wǎng)絡節(jié)點。
如果在ttz網(wǎng)絡節(jié)點上激活遷移到isisttz,ttz網(wǎng)絡節(jié)點會在它的一個lsp的ttztlv中設置標記,并將該lsp泛洪到其鄰近的ttz網(wǎng)絡節(jié)點。例如,圖3中的ttztlv300中的m標記330可以設為1。如果ttz網(wǎng)絡節(jié)點是ttz邊緣網(wǎng)絡節(jié)點,ttz網(wǎng)絡節(jié)點會將連接到其它邊緣網(wǎng)絡節(jié)點的p2p電路添加到其lsp中并泛洪這些lsp。ttz邊緣網(wǎng)絡節(jié)點在從其它ttz邊緣網(wǎng)絡節(jié)點接收包含虛電路的所有l(wèi)sp后,例如,在預定時間內,會從其lsp中刪除對應于ttz電路的普通電路。ttz網(wǎng)絡節(jié)點采用ttz電路,如有,和普通電路計算路由,但不采用p2p電路虛擬化ttz。如果ttz網(wǎng)絡節(jié)點接收包含具有設為1的m標記330的ttztlv的lsp,ttz網(wǎng)絡節(jié)點會泛洪該lsp。
在另一項實施例中,如果在ttz網(wǎng)絡節(jié)點上觸發(fā)ttz信息分發(fā),ttz網(wǎng)絡節(jié)點會在發(fā)送給其鄰近的ttz網(wǎng)絡節(jié)點的hello消息的ttztlv中設置標記并發(fā)送該hello消息。例如,圖3中的ttztlv300中的t標記320可以設為1。每個鄰近的ttz網(wǎng)絡節(jié)點將第二ttztlv相應地添加到其lsp中并將該lsp泛洪到其鄰近的ttz網(wǎng)絡節(jié)點。如果ttz網(wǎng)絡節(jié)點是ttz內部網(wǎng)絡節(jié)點,ttz網(wǎng)絡節(jié)點會如上文所述為ttz內部網(wǎng)絡節(jié)點添加ttztlv。如果ttz網(wǎng)絡節(jié)點是ttz邊緣網(wǎng)絡節(jié)點,ttz網(wǎng)絡節(jié)點會如上文所述為ttz邊緣網(wǎng)絡節(jié)點添加ttztlv。每個鄰近的ttz網(wǎng)絡節(jié)點在發(fā)送給其鄰近的ttz網(wǎng)絡節(jié)點的hello消息的ttztlv中設置標記并發(fā)送該hello消息。ttz網(wǎng)絡節(jié)點用于在其接收包含具有設為1的t標記320的ttztlv的hello消息時,類似地響應鄰近的網(wǎng)絡節(jié)點。
lsp根據(jù)其分發(fā)情況可以分為兩類。一類lsp是在ttz內進行分發(fā)的,另一類是通過ttz進行分發(fā)的。
為ttz內的ttz內部路由器生成的任何lsp都是在ttz內進行分發(fā)的。這類lsp不會被分發(fā)給ttz外的任何路由器。為ttz內的廣播網(wǎng)絡生成的任何偽節(jié)點lsp都是在ttz內進行分發(fā)的。這類lsp不會被分發(fā)給ttz外的任何路由器。
被ttz內的邊緣路由器接收的有關ttz外的鏈路狀態(tài)的任何lsp都是通過ttz進行分發(fā)的。由ttz邊緣路由器生成的有關虛擬化ttz的鏈路狀態(tài)的任何lsp都是通過ttz進行分發(fā)的。例如,如果ttz內的邊緣路由器從ttz外的路由器接收有關ttz外的鏈路狀態(tài)的lsp,邊緣路由器會將該lsp泛洪到其ttz內和ttz外的鄰居路由器。該lsp可以是任何lsp,例如在域內進行分發(fā)的路由器lsp。ttz內的路由器繼續(xù)泛洪該lsp。如果ttz內的另一個邊緣路由器接收該lsp,該另一個邊緣路由器會將該lsp泛洪到其ttz內和ttz外的鄰居路由器。
計算ttz外的路由器的路由表的方法可能與現(xiàn)有技術中已知的方法相似。對于ttz內的路由器,計算其路由表的方法可能與現(xiàn)有技術中已知的方法相似,但有一點不同。ttz內的路由器可能會忽視由ttz內用于虛擬化ttz的邊緣路由器生成的路由器lsp中的電路。ttz內的路由器的路由表可以采用包含ttz內拓撲的lsp和ttz外拓撲的lsp的lsdb進行計算。距離ttz內和ttz外的每個目的地的最短路徑通過所有電路進行計算,包括ttz內的電路和ttz外的電路。
如上所述,如果為ttz內的每個電路配置與ttz電路相同的ttzid,則可以確定ttz。具有一些ttz電路和一些普通電路的路由器是ttz邊緣路由器。僅具有ttz電路的路由器是ttz內部路由器?;蛘?,可以為ttz內的每個路由器和每個邊緣路由器連接到ttz內的路由器的電路配置相同的ttzid。配置有與其某些電路相同的ttzid的路由器是ttz邊緣路由器。只配置有ttzid的路由器是ttz內部路由器。ttz內部路由器之上的所有電路都是ttz電路。后者可能比如上所述的前者更簡單。
當圖2中的r2等非ttz路由器通過p2p電路連接到圖2中的t1等ttz路由器時,如果ttz路由器用作ttz并且這兩個路由器通過電路形成普通鄰接關系,用戶可以在電路兩端配置ttz,以將r2添加到t1所屬的ttz。這兩個路由器以如上所述的方式對彼此進行ttz搜索。如果多個非ttz路由器通過廣播電路連接到用作ttz的ttz路由器(如t1)并且它們之間存在普通的鄰接關系,用戶可以在每個路由器的電路連接上配置ttz,以將非ttz路由器添加到t1所屬的ttz。如果所有路由器的電路連接上配置相同的ttzid,電路的dr(即dis)與其它路由器中的每一個“形成”ttz鄰接關系。如果路由器r2通過p2p電路連接到ttz路由器t1并且它們之間未通過電路形成任何鄰接關系,用戶可以在電路兩端配置ttz,以將r2添加到t1所屬的ttz。r2和t1將以如上所述的方式形成鄰接關系。如果路由器r2通過廣播電路連接到電路的一組ttz路由器并且r2與任何ttz路由器之間未通過電路形成任何鄰接關系,用戶可以在r2的電路連接上配置ttz,以將r2添加到ttz路由器所屬的ttz。r2在完成配置后開始與電路的dr形成鄰接關系。
圖6為一種實現(xiàn)isisttz的網(wǎng)元600的示意圖。網(wǎng)元600可適用于實施所公開的實施例。例如,網(wǎng)元600可以實施圖2中所示的isisttz內的ttz網(wǎng)絡節(jié)點t1-t8。網(wǎng)元600包括端口610、收發(fā)器單元(tx/rx)620、處理器630和包括isisttz模塊650的存儲器640。端口610耦合到可以是發(fā)射器、接收器或其組合的tx/rx620。tx/rx620可經(jīng)由端口610傳輸和接收數(shù)據(jù)。處理器630用于處理數(shù)據(jù)。存儲器640用于存儲用于實施本文描述的實施例的數(shù)據(jù)和指令。網(wǎng)元600還可包括耦合到端口610和tx/rx620用于接收和傳輸電信號和光信號的電到光(electrical-to-optical,eo)部件和光到電(optical-to-electrical,oe)部件。
處理器630可由硬件和軟件實施。處理器630可實施為一個或多個中央處理器(centralprocessingunit,cpu)芯片、邏輯單元、內核(例如,為多核處理器)、現(xiàn)場可編程門陣列(field-programmablegatearray,fpga)、專用集成電路(applicationspecificintegratedcircuit,asic)和數(shù)字信號處理器(digitalsignalprocessor,dsp)。處理器630與端口610、tx/rx620和存儲器640通信。
存儲器640包括一個或多個磁盤、磁帶驅動器和固態(tài)驅動器并可用作溢流數(shù)據(jù)存儲設備,以在程序被選擇執(zhí)行時存儲這類程序以及存儲在程序執(zhí)行期間讀取的指令和數(shù)據(jù)。存儲器640可為易失的或非易失的,并可為只讀存儲器(read-onlymemory,rom)、隨機存取存儲器(random-accessmemory,ram)、三重內容尋址存儲器(ternarycontent-addressablememory,tcam)和靜態(tài)隨機存取存儲器(staticrandom-accessmemory,sram)。isisttz模塊650被處理器630用于執(zhí)行用于實施isisttz的多個實施例的指令。
在一項實施例中,tx/rx620用于接收isisttz的id。tx/rx620還用于接收將與isisttz相關的拓撲信息分發(fā)給被分配到isisttz的其它網(wǎng)絡節(jié)點的指示。處理器630用于將ttztlv納入與網(wǎng)絡節(jié)點關聯(lián)的ttz相關的信息中以及將ttz相關的信息分發(fā)給鄰近該網(wǎng)絡節(jié)點的所有節(jié)點。ttztlv可以按照圖3中所示的方式進行配置。如果該網(wǎng)絡節(jié)點是邊緣節(jié)點,分發(fā)與isisttz相關的拓撲信息的指示可以是該邊緣節(jié)點接收的命令。如果該網(wǎng)絡節(jié)點是內部節(jié)點,分發(fā)與isisttz相關的拓撲信息的指示可以是該內部節(jié)點從另一個節(jié)點接收的ttztlv,其中所接收的ttztlv包含被設置用于指示拓撲信息即將被分發(fā)的指示符。與該網(wǎng)絡節(jié)點關聯(lián)的ttz相關的信息可以是與該網(wǎng)絡節(jié)點關聯(lián)的lsp或由該網(wǎng)絡節(jié)點傳輸?shù)膆ello消息。
圖7為一種用于isisttz中的邊緣網(wǎng)絡節(jié)點的方法700的實施例的流程圖。方法700可以在建立或設置isisttz時執(zhí)行。在方框710中,邊緣網(wǎng)絡節(jié)點接收isisttz的標識符,所述邊緣網(wǎng)絡節(jié)點被分配到所述isisttz。在方框720中,邊緣網(wǎng)絡節(jié)點接收并存儲isisttz拓撲信息。在方框730中,邊緣網(wǎng)絡節(jié)點接收將與isisttz相關的拓撲信息分發(fā)給被分配到isisttz的其它網(wǎng)絡節(jié)點的命令。在方框740中,邊緣網(wǎng)絡節(jié)點生成ttz相關的tlv并在該ttz相關的tlv中設置用于指示與isisttz相關的拓撲信息即將被分發(fā)的指示符。在方框750中,邊緣網(wǎng)絡節(jié)點將ttz相關的tlv添加到其lsp中。在方框760中,邊緣網(wǎng)絡節(jié)點將lsp分發(fā)給鄰近它的所有ttz節(jié)點。
圖8為一種用于isisttz中的內部網(wǎng)絡節(jié)點的方法800的實施例的流程圖。方法800可以在建立或設置isisttz時執(zhí)行。在方框810中,內部網(wǎng)絡節(jié)點接收isisttz的標識符,內部網(wǎng)絡節(jié)點被分配到所述isisttz。在方框820中,內部網(wǎng)絡節(jié)點從另一個節(jié)點接收具有包含與isisttz相關的拓撲信息即將被分發(fā)的指示的第一ttz相關的tlv的lsp。該第一ttz相關的tlv還可以包含與其它節(jié)點相關的拓撲信息。在方框830中,內部網(wǎng)絡節(jié)點將lsp分發(fā)給其所有鄰近ttz節(jié)點,但發(fā)出lsp的鄰近ttz節(jié)點除外。在方框840中,內部網(wǎng)絡節(jié)點生成第二lsp并將第二ttz相關的tlv添加到該第二lsp中。該第二ttz相關的tlv可以不包含與內部網(wǎng)絡節(jié)點相關的拓撲信息。在方框850中,內部網(wǎng)絡節(jié)點將其lsp分發(fā)給鄰近它的所有ttz節(jié)點。
圖9為在isisttz的ttz網(wǎng)絡節(jié)點之間采用多個電路的isisttz的實施例。由ttz100內的邊緣節(jié)點t1在t1開始遷移到ttz時生成的lsp包括三組電路。第一組電路包括兩個虛電路:一個虛電路從t1連接到t3,另一個虛電路從t1連接到t4。這兩個虛電路用圖9中的虛線表示。第二組電路包括連接到t1的六個普通電路,即從t1連接到r2的電路、從t1連接到r4的電路、從t1連接到r6的電路、從t1連接到t2的電路、從t1連接到t6的電路和從t1連接到t8的電路。這六個電路用黑色實線表示。第三組電路包括在t1上配置的三個ttz電路,即從t1連接到t2的ttz電路、從t1連接到t6的ttz電路和從t1連接到t8的ttz電路。這三個電路用點線表示。第一組電路和第二組電路包括在lsp的中間系統(tǒng)鄰居tlv中。第三組電路包括在lsp內具有ttzisn子tlv的ttztlv中。第二組電路包括連接到ttz節(jié)點的三個普通電路,即從t1連接到t2的普通電路、從t1連接到t6的普通電路和從t1連接到t8的普通電路。這三個普通電路在t1在指定時間,例如0.1秒內從所有其它ttz邊緣節(jié)點接收包含虛電路的lsp后,被ttz邊緣節(jié)點t1從lsp中刪除。如果ttz節(jié)點接收包含如上所述的三組電路的lsp,該ttz節(jié)點可以將該lsp中的信息存儲到其lsdb中。對于虛電路,與該電路關聯(lián)的標記eu可以設為1,以指示該電路無法供ttz節(jié)點用于計算路由表。對于ttz電路,與該電路關聯(lián)的標記et可以設為1,以指示該電路是ttz電路且在遷移到ttz后可供ttz節(jié)點用于計算路由表。對于普通電路,與該電路關聯(lián)的標記et可以設為0,以指示該電路是普通電路且在遷移到ttz后可供ttz節(jié)點用于計算路由表。
圖10為用于根據(jù)本文所公開的一項或多項實施例進行操作的節(jié)點的功能方框圖。節(jié)點1000包括可用于傳輸和/或接收本文所描述的信息的通信電路1002,包括isisttz的標識符,邊緣網(wǎng)絡節(jié)點被分配到所述isisttz。節(jié)點1000還可用于在拓撲方框1004中接收并存儲isisttz拓撲信息。節(jié)點1000還可用于接收將isisttz拓撲信息分發(fā)給被分配到isisttz的其它網(wǎng)絡節(jié)點的命令。ttz相關的tlv生成器1006可用于生成ttz相關的tlv并在ttz相關的tlv中設置用于指示與isisttz相關的拓撲信息即將被分發(fā)的指示符。ttz相關的tlv可以包括一個或多個存儲在ttz相關的tlv指示符方框1008中的ttz相關的tlv指示符。lsp生成器1010可用于生成即將由邊緣網(wǎng)絡節(jié)點傳輸?shù)膌sp。lsp可以包括存儲在ttzisn子tlv信息方框1012中的ttzisn子tlv信息。ttz相關的tlv添加器1014可用于將ttz相關的tlv添加到lsp中。lsp分發(fā)器1016可用于將lsp分發(fā)給鄰近邊緣網(wǎng)絡節(jié)點的所有ttz節(jié)點。遷移指示分發(fā)器1018可用于分發(fā)遷移指示,其中遷移可能會根據(jù)遷移邏輯1020而發(fā)生。遷移響應邏輯1022可以處理對遷移的響應。
本文所公開的實施例中的一個或多個步驟可以根據(jù)存儲在非瞬時性計算機可讀介質上的指令來執(zhí)行。非瞬時性計算機可讀介質包括磁性存儲介質、光存儲介質和固態(tài)存儲介質等各種類型的計算機可讀介質,但不包括信號存儲介質。應當理解的是,軟件可以安裝在執(zhí)行指令的設備上并可以隨執(zhí)行指令的設備一同出售?;蛘?,軟件可以被獲取并加載到設備中,包括通過磁盤介質或以網(wǎng)絡或分發(fā)系統(tǒng)的任何方式獲取軟件,例如,包括從軟件開發(fā)者所有的服務器或從非軟件開發(fā)者所有但為其所用的服務器獲取軟件。例如,軟件可以存儲在服務器上,以供通過互聯(lián)網(wǎng)分發(fā)。
在一項實施例中,isisttz可以以類似于即將發(fā)布的由chen等人編寫的名稱為“is-is拓撲透明區(qū)”(is-istopology-transparentzone)的互聯(lián)網(wǎng)工程任務組(internetengineeringtaskforce,ietf)draft-chen-isis-ttz-03.txt中所描述的實施方式進行實施,該文件的全部內容以引入的方式并入本文本中。
雖然本發(fā)明中已提供若干實施例,但應理解,在不脫離本發(fā)明的精神或范圍的情況下,本發(fā)明所公開的系統(tǒng)和方法可以以許多其他特定形式來體現(xiàn)。本發(fā)明的示例應被視為說明性而非限制性的,且本發(fā)明并不限于本文本所給出的細節(jié)。例如,各種元件或部件可以在另一系統(tǒng)中組合或合并,或者某些特征可以省略或不實施。
此外,在不脫離本發(fā)明的范圍的情況下,各種實施例中描述和說明為離散或單獨的技術、系統(tǒng)、子系統(tǒng)和方法可以與其它系統(tǒng)、模塊、技術或方法進行組合或合并。展示或論述為彼此耦合或直接耦合或通信的其它項也可以采用電方式、機械方式或其它方式通過某一接口、設備或中間部件間接地耦合或通信。其他變化、替代和改變的示例可以由本領域的技術人員在不脫離本文精神和所公開的范圍的情況下確定。