欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

使用路由軌跡生成無回路路由拓撲的制作方法

文檔序號:7989639閱讀:301來源:國知局
使用路由軌跡生成無回路路由拓撲的制作方法
【專利摘要】在一個實施例中,一種方法包括:在計算網(wǎng)絡(luò)中創(chuàng)建無回路路由拓撲,所述無回路路由拓撲包括用于到達目的地設(shè)備的多個路由軌跡,每一個路由軌跡包括作為所述路由軌跡的第一末端的第一網(wǎng)絡(luò)設(shè)備、作為所述路由軌跡的第二末端的第二網(wǎng)絡(luò)設(shè)備、以及至少第三網(wǎng)絡(luò)設(shè)備,所述至少第三網(wǎng)絡(luò)設(shè)備被配置用于沿著所述路由軌跡經(jīng)由所述路由軌跡的第一末端或第二末端中的任意一個向目的地設(shè)備路由任意網(wǎng)絡(luò)流量;以及使得網(wǎng)絡(luò)流量沿著所述路由軌跡中的至少一個被轉(zhuǎn)發(fā)到目的地設(shè)備。
【專利說明】使用路由軌跡生成無回路路由拓撲
【技術(shù)領(lǐng)域】
[0001]本公開總地涉及在諸如因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)之類的計算網(wǎng)絡(luò)中生成無回路路由拓撲。
【背景技術(shù)】
[0002]本部分描述可以被采用、但不一定是先前被構(gòu)思出或采用的方法。因此,除非另有明確說明,否則在本部分中描述的任何方法并不是相對于本申請中的權(quán)利要求的現(xiàn)有技術(shù),并且不應(yīng)因為在本部分中包括了任何方法就認為在本部分中描述的這樣的任何方法是現(xiàn)有技術(shù)。
[0003]現(xiàn)有的路由協(xié)議假定可以響應(yīng)于檢測到的故障(例如,鏈路或連接網(wǎng)絡(luò)節(jié)點的丟失)而進行路由的重新計算;然而,路由的重新計算需要計算時間,這有可能會導(dǎo)致數(shù)據(jù)流量的損失。加速響應(yīng)檢測到的故障的一種嘗試包括“無回路替代路徑”(Loop FreeAlternates, LFA),其中路由器可以通過識別用于到達目的地節(jié)點的可行后繼者來響應(yīng)于在去往目的地節(jié)點的路徑中丟失下一跳路由器(只要該可行后繼者不會通過將分組發(fā)送回路由器來創(chuàng)建回路)。Atlas 的題為 “U-turn Alternates for IP / LDP Local Protection (draft-atlas-1p-local-protect-uturn-00.txt) ” 的 IETF 草案在圖 3 中圖不出了一種網(wǎng)絡(luò)拓撲,其中在鏈路故障的情況下,可以為網(wǎng)絡(luò)節(jié)點N2、N4、和R3提供LFA方案以將數(shù)據(jù)分組轉(zhuǎn)發(fā)給目的地節(jié)點D,但LFA無法為網(wǎng)絡(luò)節(jié)點N3、S、P、R1、或R2中的任何一個提供任何方案。Atlas的IETF草案提出了“U形轉(zhuǎn)彎協(xié)議(U-turn protocol) ”以對鏈路進行反轉(zhuǎn),但在鏈路故障的情況下,U形轉(zhuǎn)彎協(xié)議無法為圖3的節(jié)點P、R1、或R2提供任何方案。
[0004]另一個提出的被稱為“用于處理瞬態(tài)鏈路故障的快速本地重路由”(FIR)的路由協(xié)議需要響應(yīng)于鏈路故障而完全重新計算路由,因此路由的重新計算需要計算時間,這有可能會導(dǎo)致數(shù)據(jù)流量的損失。
【專利附圖】

【附圖說明】
[0005]參照附圖,其中在各個附圖中具有相同附圖標(biāo)記的元件表示相似的元件,并且在附圖中:
[0006]圖1示出了根據(jù)示例性實施例的包括用于到達目的地設(shè)備的多個路由軌跡(routing arc,也稱為路由弧)的示例性無回路路由拓撲。
[0007]圖2示出了根據(jù)示例性實施例的用于創(chuàng)建通過數(shù)據(jù)鏈路耦合的網(wǎng)絡(luò)設(shè)備的鏈路層網(wǎng)絡(luò)中的無回路路由拓撲的示例性裝置。
[0008]圖3A、3B、3C、和3D示出了根據(jù)示例性實施例的用于創(chuàng)建無回路路由拓撲的示例性方法。
[0009]圖4(包括圖4A、4B、4C、和4D)示出了根據(jù)示例性實施例的圖2中的用于創(chuàng)建無回路路由拓撲的裝置的存儲器電路中的示例性數(shù)據(jù)結(jié)構(gòu)。
[0010]圖5示出了根據(jù)示例性實施例的圖2中的用于創(chuàng)建無回路路由拓撲的裝置的存儲器電路中的另一個示例性數(shù)據(jù)結(jié)構(gòu)。
[0011]圖6A-6I示出了根據(jù)示例性實施例的從圖2的鏈路層網(wǎng)絡(luò)構(gòu)造具有多個路由軌跡的無回路路由拓撲的不例序列。
【具體實施方式】[0012]概述
[0013]在一個實施例中,一種方法包括:在計算網(wǎng)絡(luò)中創(chuàng)建無回路路由拓撲,所述無回路路由拓撲包括用于到達目的地設(shè)備的多個路由軌跡,每一個路由軌跡包括作為所述路由軌跡的第一末端的第一網(wǎng)絡(luò)設(shè)備、作為所述路由軌跡的第二末端的第二網(wǎng)絡(luò)設(shè)備、以及至少第三網(wǎng)絡(luò)設(shè)備,所述至少第三網(wǎng)絡(luò)設(shè)備被配置用于沿著所述路由軌跡經(jīng)由所述路由軌跡的第一末端或第二末端中的任意一個向所述目的地設(shè)備路由任意網(wǎng)絡(luò)流量;以及使得所述網(wǎng)絡(luò)流量沿著所述路由軌跡中的至少一個被轉(zhuǎn)發(fā)到所述目的地設(shè)備。
[0014]在另一個實施例中,一種裝置包括處理器電路、存儲器電路、和設(shè)備接口電路。所述處理器電路被配置用于為計算網(wǎng)絡(luò)創(chuàng)建無回路路由拓撲,所述無回路路由拓撲包括用于到達目的地設(shè)備的多個路由軌跡,每一個路由軌跡包括作為所述路由軌跡的第一末端的第一網(wǎng)絡(luò)設(shè)備、作為所述路由軌跡的第二末端的第二網(wǎng)絡(luò)設(shè)備、以及至少第三網(wǎng)絡(luò)設(shè)備,所述至少第三網(wǎng)絡(luò)設(shè)備被配置用于沿著所述路由軌跡經(jīng)由所述路由軌跡的第一末端或第二末端中的任意一個向所述目的地設(shè)備路由任意網(wǎng)絡(luò)流量。所述存儲器電路被配置用于存儲與所述路由軌跡相關(guān)聯(lián)的參數(shù)。所述設(shè)備接口電路被配置用于將與所述路由軌跡相關(guān)聯(lián)的至少所選擇的參數(shù)輸出到第二裝置,用于所述無回路路由拓撲的部署。
[0015]詳細描述
[0016]特定的實施例使得能夠基于創(chuàng)建具有路由軌跡的無回路路由拓撲,響應(yīng)于檢測到的數(shù)據(jù)鏈路的故障而將網(wǎng)絡(luò)流量立即重路由到目的地設(shè)備,所述路由軌跡使得網(wǎng)絡(luò)流量能夠沿著任意路由軌跡的兩個末端中的任意一個被路由。無回路路由拓撲中的路由軌跡確保具有至少兩個數(shù)據(jù)鏈路的任意網(wǎng)絡(luò)設(shè)備能夠經(jīng)由路由軌跡中的至少一個到達目的地設(shè)備:基于對路由軌跡中的所識別出的可反轉(zhuǎn)鏈路進行反轉(zhuǎn),能夠響應(yīng)于所檢測到的數(shù)據(jù)鏈路故障(或網(wǎng)絡(luò)節(jié)點故障)立即向路由軌跡的另一末端重路由網(wǎng)絡(luò)流量。還確保路由軌跡中的所識別出的可反轉(zhuǎn)鏈路的反轉(zhuǎn),以不將任何回路引入到無回路路由拓撲中。
[0017]接合節(jié)點被定義為這樣的網(wǎng)絡(luò)節(jié)點(即,基于其在網(wǎng)絡(luò)拓撲中的相對位置被識別出的網(wǎng)絡(luò)設(shè)備),所述網(wǎng)絡(luò)節(jié)點具有至少兩個數(shù)據(jù)鏈路,所述至少兩個數(shù)據(jù)鏈路提供用于到達目的地設(shè)備的各非疊合路徑:本說明書和所附權(quán)利要求中的詞語“非疊合”要求來自接合節(jié)點的路徑不共享用于到達目的地設(shè)備的任何公共數(shù)據(jù)鏈路,取而代之的是,屬于一個路徑(從接合節(jié)點到目的地設(shè)備)的每一個鏈路都是不同的,并且獨立于屬于第二非疊合路徑(從接合節(jié)點到目的地設(shè)備)的任何鏈路。
[0018]如果接合節(jié)點的數(shù)據(jù)鏈路使得該數(shù)據(jù)鏈路的端點(即,經(jīng)由數(shù)據(jù)鏈路直接耦接到接合節(jié)點的網(wǎng)絡(luò)節(jié)點)變?yōu)榫哂衅渥陨淼挠糜诘竭_目的地設(shè)備的非疊合路徑的接合節(jié)點,則也可以將接合節(jié)點的數(shù)據(jù)鏈路視為“可反轉(zhuǎn)鏈路”。
[0019]在一個實施例中,可以在邏輯上順次連接通過可反轉(zhuǎn)鏈路耦接的一個或多個接合節(jié)點,以創(chuàng)建路由軌跡作為具有其在目的地設(shè)備處終結(jié)的兩個對應(yīng)末端的第一基礎(chǔ)結(jié)構(gòu)軌跡。可以創(chuàng)建具有在先前創(chuàng)建的基礎(chǔ)結(jié)構(gòu)軌跡(例如,第一基礎(chǔ)結(jié)構(gòu)軌跡)中終結(jié)的至少一個末端、以及在先前創(chuàng)建的基礎(chǔ)結(jié)構(gòu)軌跡或目的地設(shè)備中終結(jié)的另一個末端的額外的路由軌跡,其中每一個新的路由軌跡包括與先前生成的路由軌跡中的任何網(wǎng)絡(luò)設(shè)備不同的網(wǎng)絡(luò)設(shè)備。換言之,被分配給一個現(xiàn)有的路由軌跡的網(wǎng)絡(luò)設(shè)備無法在之后被分配給另一個路由軌跡(除非該網(wǎng)絡(luò)設(shè)備是現(xiàn)有的路由軌跡和更新的路由軌跡的末端之間的接合點)。
[0020]在另一個實施例中,可以基于在用于到達目的地設(shè)備的第一有向無環(huán)圖中識別具有用于經(jīng)由非疊合路徑到達目的地設(shè)備的可反轉(zhuǎn)鏈路的一個或多個接合節(jié)點,來創(chuàng)建作為基礎(chǔ)結(jié)構(gòu)軌跡的路由軌跡;可以基于在第一有向無環(huán)圖中識別用于到達第一有向無環(huán)圖的接合節(jié)點之一(作為第二路由軌跡的一個末端)的第二有向無環(huán)圖、并且在第二有向無環(huán)圖中識別與所述一個接合節(jié)點不同的具有用于到達目的地設(shè)備的新的非疊合路徑的新的接合節(jié)點,來創(chuàng)建第二路由軌跡,所述新的接合節(jié)點經(jīng)由在目的地設(shè)備或先前創(chuàng)建的基礎(chǔ)結(jié)構(gòu)路由軌跡處終結(jié)的第二路由軌跡的第二末端提供新的非疊合路徑。
[0021]因此,示例性實施例使得即使在無回路路由拓撲中的任意一個數(shù)據(jù)鏈路遇到故障的情況下,也能夠基于反轉(zhuǎn)所識別出的可反轉(zhuǎn)鏈路來確保無回路路由拓撲中的具有兩個數(shù)據(jù)鏈路的任意網(wǎng)絡(luò)設(shè)備都能夠到達目的地設(shè)備。
[0022]圖1示出了根據(jù)示例性實施例的包括用于到達目的地設(shè)備14的多個路由軌跡12的示例性無回路路由拓撲10。每一個路由軌跡12包括多個網(wǎng)絡(luò)設(shè)備16,每一個網(wǎng)絡(luò)設(shè)備16均具有用于到達相鄰的網(wǎng)絡(luò)節(jié)點的至少兩個數(shù)據(jù)鏈路。從圖1中可以看出,無回路路由拓撲10確保沿著任意軌跡12的任意點的任意網(wǎng)絡(luò)設(shè)備16(圖1中通過“X”示出)都具有用于到達目的地設(shè)備14的至少兩個非疊合路徑,從而確保即使在無回路路由拓撲10中遇至IJ鏈路故障的情況下,也能夠到達目的地設(shè)備14。本說明書和權(quán)利要求中的詞語“節(jié)點”是指在路由拓撲10中被分配有可識別位置的網(wǎng)絡(luò)設(shè)備(即,裝置、機器等)。因此,目的地設(shè)備14也可以被稱為“目的地節(jié)點”、“目的地網(wǎng)絡(luò)節(jié)點”、或“根節(jié)點”,并且任意網(wǎng)絡(luò)設(shè)備(例如,圖2、6A、6B、或61中的16)16也可以被稱為“網(wǎng)絡(luò)節(jié)點”。
[0023]如在下文中參照圖6A-6I所進一步具體描述的,每一個路由軌跡(例如,圖61中的“ARC1”)12包括至少三個網(wǎng)絡(luò)節(jié)點16,即被指定為路由軌跡的第一末端的第一網(wǎng)絡(luò)設(shè)備(例如,圖61中的網(wǎng)絡(luò)節(jié)點“K”) 16、被指定為路由軌跡的第二末端的第二網(wǎng)路設(shè)備(例如,圖61中的網(wǎng)路節(jié)點“J”)16、以及至少第三網(wǎng)絡(luò)設(shè)備(例如,圖61中的網(wǎng)絡(luò)節(jié)點“M”)16,所述至少第三網(wǎng)絡(luò)設(shè)備被識別為接合節(jié)點并且被配置用于沿著所述路由軌跡經(jīng)由由所述路由軌跡的第一或第二末端提供的兩個可用的非疊合路徑中的任意一個向目的地設(shè)備14路由任意網(wǎng)絡(luò)流量。因此,可以沿著路由軌跡12中的至少一個將網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)到目的地設(shè)備14。
[0024]如圖61中所示,每一個路由軌跡12的第一和第二末端均在“安全網(wǎng)絡(luò)節(jié)點(例如,目的地設(shè)備14、與目的地設(shè)備直接耦接的另一個網(wǎng)絡(luò)節(jié)點(例如,網(wǎng)絡(luò)節(jié)點“A”或網(wǎng)絡(luò)節(jié)點“B”)、或另一個路由軌跡的接合節(jié)點)”處終結(jié)。與目的地設(shè)備“R” 14直接耦接的網(wǎng)絡(luò)節(jié)點(例如,圖61中的“A”)被稱為“繼承網(wǎng)絡(luò)節(jié)點”。因此,“安全網(wǎng)絡(luò)節(jié)點”可以是目的地設(shè)備14、繼承網(wǎng)絡(luò)節(jié)點(例如,圖61中的“A”或“B” )、或具有用于到達目的地設(shè)備的兩個非疊合路徑的接合節(jié)點中的任意一個。例如,路由軌跡“ARC2”12的兩個末端在目的地設(shè)備“R”14(也被稱為“根網(wǎng)絡(luò)節(jié)點”或“根節(jié)點”)處終結(jié);路由軌跡“ARC3”12的第一末端在繼承網(wǎng)絡(luò)節(jié)點“A” 16處終結(jié),并且路由軌跡“ARC3” 12的第二末端在路由軌跡“ARC2” 12的接合節(jié)點“C”處終結(jié)。
[0025]在圖5和圖61中所示的示例性實施例中,每一個路由軌跡包括一個且僅一個軌跡光標(biāo)(圖61的18),該軌跡光標(biāo)提供對沿著路由軌跡指引網(wǎng)絡(luò)流量的排他控制權(quán)。路由軌跡的一個且僅一個接合節(jié)點(即,作為接合節(jié)點在路由軌跡中被分配有位置的一個且僅一個網(wǎng)絡(luò)設(shè)備)在任何給定時間均具有軌跡光標(biāo)18的占有權(quán):具有軌跡光標(biāo)18的占有權(quán)的接合節(jié)點能夠基于軌跡光標(biāo)18的占有權(quán)控制沿著對應(yīng)的路由軌跡12的網(wǎng)絡(luò)流量。特別地,具有軌跡光標(biāo)18的占有權(quán)的接合節(jié)點(例如,圖61中的“J”)能夠沿著其朝向路由軌跡(例如,“ARC2”)12的末端的兩個外向定向的鏈路之一指引網(wǎng)絡(luò)流量遠離其自身。因此,具有軌跡光標(biāo)18的占有權(quán)的接合節(jié)點基于該接合節(jié)點沿著其自身的外向定向的鏈路之一路由網(wǎng)絡(luò)流量遠離其自身,而對沿著對應(yīng)的路由軌跡對網(wǎng)絡(luò)流量進行路由具有排他控制權(quán)。
[0026]第二接合節(jié)點(即,作為接合節(jié)點在路由軌跡中被分配有位置的另一個網(wǎng)絡(luò)設(shè)備)能夠基于所檢測到的對應(yīng)的路由軌跡中的故障(例如,從路由軌跡的第一接合節(jié)點)獲取軌跡光標(biāo)的占有權(quán),以不考慮所檢測到的故障而繼續(xù)在對應(yīng)的路由軌跡中路由網(wǎng)絡(luò)流量。例如,路由軌跡“ARC2” 12的接合節(jié)點“F”能夠基于所檢測到的在網(wǎng)絡(luò)節(jié)點“F”和網(wǎng)絡(luò)節(jié)點“C”之間的鏈路“F-C”中的故障,獲取先前由接合節(jié)點“ J”擁有的對對應(yīng)的軌跡光標(biāo)18的占有權(quán),使得網(wǎng)絡(luò)節(jié)點“F”能夠朝向節(jié)點“ J”反轉(zhuǎn)鏈路“F-J”以繼續(xù)朝向目的地設(shè)備“R” 14的可到達性(參見圖6H和61)。因此,在獲取了提供對沿著路由軌跡(例如,“ARC2”)12指引網(wǎng)絡(luò)流量的排他控制權(quán)的軌跡光標(biāo)18的占有權(quán)時,第二接合節(jié)點(例如,圖6H和圖61中的“F”)能夠反轉(zhuǎn)所連接的可反轉(zhuǎn)鏈路之一,而不在無回路路由拓撲10中創(chuàng)建回路。因此,可以基于路由軌跡12中的接合節(jié)點(例如,“F”)獲取了先前由相同的路由軌跡12中的另一個接合節(jié)點(例如,“J”)擁有的路由軌跡18的占有權(quán),響應(yīng)于檢測到該路由軌跡中的故障(例如,鏈路“F-C”中的故障),立即重路由沿著該路由軌跡(例如,“ARC2”)12的數(shù)據(jù)流量,以在所述路由軌跡12中向所述目的地設(shè)備14繼續(xù)路由。
[0027]圖2和6A示出了根據(jù)示例性實施例的用于創(chuàng)建圖1和61的無回路路由拓撲10的示例裝置20。該裝置(即,設(shè)備、機器)可以被實現(xiàn)為路由器、中央服務(wù)器、網(wǎng)絡(luò)管理實體等,該裝置執(zhí)行所公開的如下操作:創(chuàng)建無回路路由拓撲10,并且將相關(guān)的路由軌跡參數(shù)分發(fā)給作為無回路路由拓撲10中的網(wǎng)絡(luò)節(jié)點16的實現(xiàn)無回路路由拓撲10的每一個網(wǎng)絡(luò)設(shè)備。裝置20是這樣的物理機器(S卩,硬件設(shè)備),所述物理機器被配置用于經(jīng)由建立鏈路層網(wǎng)格拓撲網(wǎng)絡(luò)44(參見圖2)的數(shù)據(jù)鏈路實現(xiàn)與其他物理機器14、16的網(wǎng)絡(luò)通信。
[0028]如圖2中所示,裝置20包括處理器電路22、設(shè)備接口電路24、和存儲器電路26。處理器電路22被配置用于為計算網(wǎng)絡(luò)創(chuàng)建無回路路由拓撲10,所述無回路路由拓撲10包括用于到達目的地設(shè)備14的路由軌跡12。存儲器電路26被配置用于在狀態(tài)表54和/或拓撲表56中存儲與路由軌跡12相關(guān)聯(lián)的參數(shù),如在下文中參照圖4和5所進一步詳細描述的。設(shè)備接口電路24被配置用于將與路由軌跡12相關(guān)聯(lián)的至少所選擇的參數(shù)輸出給第二裝置,用于無回路路由拓撲10的部署:第二裝置可以是用于配置網(wǎng)絡(luò)節(jié)點16的網(wǎng)絡(luò)管理實體、或者是能夠由裝置20直接配置的網(wǎng)絡(luò)節(jié)點16中的至少一個。因此,設(shè)備接口電路24對用于部署無回路路由拓撲的所選擇的參數(shù)的輸出使得計算網(wǎng)絡(luò)中的網(wǎng)絡(luò)流量被沿著所述路由軌跡中的至少一個轉(zhuǎn)發(fā)到目的地設(shè)備。[0029]可以多種形式來在實現(xiàn)裝置20中所公開的電路(包括處理器電路22、設(shè)備接口電路24、存儲器電路26、和它們相關(guān)聯(lián)的組件)中的任意一個。所公開的電路的示例性實現(xiàn)包括以邏輯陣列或通過集成電路的掩模編程實現(xiàn)的硬件邏輯,所述邏輯陣列例如是可編程邏輯陣列(PLA)、現(xiàn)場可編程門陣列(FPGA),所述集成電路例如是專用集成電路(ASIC)。還可以使用由對應(yīng)的內(nèi)部處理器電路(例如,微處理器電路(未示出))執(zhí)行并且使用一個或多個集成電路實現(xiàn)的基于軟件的可執(zhí)行資源來實現(xiàn)這些電路中的任意一個,其中在內(nèi)部存儲器電路(例如,在存儲器電路26)中存儲的可執(zhí)行代碼的執(zhí)行使得(一個或多個)集成電路實現(xiàn)處理器電路22以在處理器存儲器中存儲應(yīng)用狀態(tài)變量,從而創(chuàng)建執(zhí)行在本文中描述的電路的操作的可執(zhí)行應(yīng)用資源(例如,應(yīng)用實例)。因此,在本說明書中對詞語“電路”的使用是指使用一個或多個集成電路實現(xiàn)并且包括用于執(zhí)行所描述的操作的邏輯的基于硬件的電路、或包括(使用一個或多個集成電路實現(xiàn)的)處理器電路的基于軟件的電路兩者,其中處理器電路包括用于存儲由處理器電路通過執(zhí)行可執(zhí)行代碼修改的應(yīng)用狀態(tài)數(shù)據(jù)和應(yīng)用變量的處理器存儲器的保留部分。例如,可以使用諸如可編程只讀存儲器(PROM)或EPROM之類的非易失性存儲器和/或諸如DRAM之類的易失性存儲器來實現(xiàn)存儲器電路26。
[0030]此外,可以基于以數(shù)據(jù)結(jié)構(gòu)的形式創(chuàng)建消息/分組并且將該數(shù)據(jù)結(jié)構(gòu)存儲在所公開的裝置中的有形存儲器介質(zhì)中(例如,傳輸緩存中),來實現(xiàn)對“輸出消息”或“輸出分組”(等)的任何引用。對“輸出消息”或“輸出分組”(等)的任何引用還可以包括經(jīng)由通信介質(zhì)(例如,適當(dāng)?shù)挠芯€或無線鏈路)(還可以使用適當(dāng)?shù)墓鈧鬏?將在有形存儲器介質(zhì)中存儲的消息/分組電子地(例如,經(jīng)由適當(dāng)?shù)挠芯€電流或無線電場)發(fā)送到另一個網(wǎng)絡(luò)節(jié)點。類似地,基于所公開的裝置檢測到消息/分組在通信介質(zhì)上的電子(或光學(xué))傳輸,并且將所檢測到的傳輸作為數(shù)據(jù)結(jié)構(gòu)存儲在所公開的裝置中的有形存儲器介質(zhì)中(例如,接收緩存中),可以實現(xiàn)對“接收消息”或“接收分組”等的任何引用。還應(yīng)當(dāng)注意,可以例如基于由處理器電路22執(zhí)行的存儲器地址分配和分割,來由處理器電路22動態(tài)地實現(xiàn)存儲器電路23。
[0031]在描述用于創(chuàng)建路由軌跡的方法之前,先提供如下的定義。
[0032]路由軌跡被定義為雙末端可反轉(zhuǎn)路徑??煞崔D(zhuǎn)軌跡被定義為包含一個或多個可反轉(zhuǎn)鏈路的路由軌跡,并且可反轉(zhuǎn)軌跡可以在軌跡的每一個末端包含一個或多個不可反轉(zhuǎn)鏈路。在圖6B到6H中被標(biāo)記為“Rev”的數(shù)據(jù)鏈路是可反轉(zhuǎn)鏈路,在圖6B到6H中未被標(biāo)記為“Rev”的鏈路不是可反轉(zhuǎn)的;因此,可以利用不可反轉(zhuǎn)鏈路內(nèi)部的一個或多個可反轉(zhuǎn)鏈路,基于一個或多個連續(xù)的不可反轉(zhuǎn)鏈路來識別路由軌跡的末端。折疊軌跡(例如,圖61中的“ARC1”、“ARC3”、“ARC6”、“ARC7”JP“ARC8”)被定義為路由軌跡12,所述路由軌跡12不具有可反轉(zhuǎn)鏈路并且包括一個具有軌跡光標(biāo)18的固定(S卩,不可轉(zhuǎn)移)占有權(quán)的網(wǎng)絡(luò)節(jié)點和兩個用作折疊軌跡的相應(yīng)末端的其他網(wǎng)絡(luò)節(jié)點16。例如,圖5和圖61中所示的折疊軌跡“ARC1” 12包括網(wǎng)絡(luò)節(jié)點“J”、“M”、和“K”,其中網(wǎng)絡(luò)節(jié)點“M”具有在折疊軌跡“ARC1” 12的相應(yīng)末端處的網(wǎng)絡(luò)節(jié)點“J”和“K”之間的軌跡光標(biāo)18的固定占有權(quán)。
[0033]在一端被用箭頭指定并且具有命名“SPF”的鏈路表示在根據(jù)諸如開放最短路徑優(yōu)先(OSPF)之類的傳統(tǒng)路由協(xié)議生成的樹中找到的鏈路,從而箭頭末端處的網(wǎng)絡(luò)節(jié)點表示箭頭尾部末端處的網(wǎng)絡(luò)節(jié)點的最短路徑優(yōu)先(OSF)后繼者(例如,圖6A中的網(wǎng)絡(luò)節(jié)點“A”是網(wǎng)絡(luò)節(jié)點“C”和“D”的SPF后繼者)。將使用一個末端處的箭頭來指定軌跡的邊緣處(即,終結(jié)軌跡并且將軌跡連接到第二軌跡或目的地)的任何鏈路。用“TOP”(表示“隨后的其他路徑”)指定的鏈路表示這樣的鏈路,該鏈路并不是通過OSPF被選擇的(這是因為其不是最短路徑后繼者),但可以被用作替代的下一跳(即,可行的后繼者),例如用于生成有向無環(huán)圖(DAG)(參見例如美國專利N0.7656857)。
[0034]如上文中所描述的,具有軌跡光標(biāo)的占有權(quán)的網(wǎng)絡(luò)設(shè)備可以決定應(yīng)當(dāng)沿著軌跡在哪個方向轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量。因此,如果“安全網(wǎng)絡(luò)節(jié)點”能夠沿著軌跡在兩個方向中的任意一個方向轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量,則網(wǎng)絡(luò)節(jié)點被確定為“安全網(wǎng)絡(luò)節(jié)點”(即,即使沿著軌跡的一個方向出現(xiàn)故障,“安全網(wǎng)絡(luò)節(jié)點”也能夠在沿著軌跡的另一個方向安全地轉(zhuǎn)發(fā)任何分組)。
[0035]被利用“?-S”指定的鏈路表示針對接合節(jié)點“S”未被分解(resolve,也譯為解析)的候選鏈路,其中,接合節(jié)點“ S ”被識別為經(jīng)由具有命名“ ?-S ”的鏈路的網(wǎng)絡(luò)節(jié)點的最近的安全網(wǎng)絡(luò)節(jié)點:對候選鏈路的引用表示當(dāng)路由軌跡的兩個末端尚未被確立、且尚未確立是否在路由軌跡的形成中使用該候選鏈路時的瞬時狀態(tài)。如在下文中參照圖6B-6F所進一步詳細描述的,利用“?-S”指定的鏈路也識別用于到達安全節(jié)點“S”的subDAG(子DAG,即DAG中的DAG)。
[0036]被利用“Rev”指定的鏈路指示連接路由軌跡12中的兩個網(wǎng)絡(luò)設(shè)備(即,網(wǎng)絡(luò)節(jié)點)的可反轉(zhuǎn)鏈路:如圖6H和61中所示,具有至少一個可反轉(zhuǎn)鏈路的網(wǎng)絡(luò)節(jié)點(例如,“J”)位于軌跡的中間,并且可以具有針對對應(yīng)的路由軌跡的軌跡光標(biāo)18的占有權(quán)。如圖6H和61中所示,處于路由軌跡的邊緣處(例如,在第一軌跡處終結(jié)并且進入第二軌跡、或者在目的地節(jié)點D處終結(jié))的數(shù)據(jù)鏈路被指引遠離路由軌跡12的中間(以及具有對應(yīng)的軌跡光標(biāo)18的占有權(quán)的接合節(jié)點),并且路由軌跡12的邊緣處的數(shù)據(jù)鏈路不是可反轉(zhuǎn)的。
[0037]在一個末端處被利用方形或菱形框指定的鏈路(例如,圖6C中的“M □— J”)表示不可反轉(zhuǎn)的阻塞鏈路,其中目的地網(wǎng)絡(luò)節(jié)點(例如,圖6C中的網(wǎng)絡(luò)節(jié)點“J”)無法將任何數(shù)據(jù)流量發(fā)送到其他源網(wǎng)絡(luò)節(jié)點(例如,圖6C中的“M”),但源網(wǎng)絡(luò)節(jié)點(例如,圖6C中的“M”)能夠經(jīng)由鏈路(“MO—J”)將數(shù)據(jù)流量發(fā)送到目的地網(wǎng)絡(luò)節(jié)點(“J”)。在計算期間使用阻塞鏈路以防止任何回路形成。
[0038]如在下文中所進一步描述的,數(shù)據(jù)鏈路被定向為遠離具有軌跡光標(biāo)的占有權(quán)的接合節(jié)點并且朝向路由軌跡12的邊緣,并且可以通過移動軌跡光標(biāo)18(即,將光標(biāo)的所有權(quán)從一個網(wǎng)絡(luò)節(jié)點傳遞到另一個網(wǎng)絡(luò)節(jié)點)來改變可反轉(zhuǎn)鏈路的鏈路定向。
[0039]在被識別為接合節(jié)點的網(wǎng)絡(luò)節(jié)點之間建造路由軌跡12。接合節(jié)點68是通過非疊合路徑(即,單個點的故障無法阻止從接合節(jié)點到根節(jié)點的可到達性)與兩個或更多個安全網(wǎng)絡(luò)節(jié)點(如下所述)連接的網(wǎng)絡(luò)節(jié)點。邊緣接合點被定義為終結(jié)一個且僅終結(jié)一個可反轉(zhuǎn)鏈路的接合節(jié)點68,其中邊緣接合點可以具有向內(nèi)和/或向外定向的多個不可反轉(zhuǎn)鏈路。中間接合點被定義為終結(jié)兩個且僅兩個可反轉(zhuǎn)鏈路的接合節(jié)點68,其中與中間接合點耦接的所有其他鏈路被向內(nèi)定向,以避免回路:可以朝向中間接合點安全地反轉(zhuǎn)鏈路。因此,中間接合點包括來自任何其他網(wǎng)絡(luò)節(jié)點的零個或更多個向內(nèi)定向的鏈路和兩個可反轉(zhuǎn)鏈路。折疊軌跡并不具有任何中間接合點,并且邊緣接合點可以屬于一個或多個折疊軌跡。
[0040]根網(wǎng)絡(luò)節(jié)點14被定義為網(wǎng)絡(luò)中的必須被訪問以到達資源(即,不存在可以繞開根網(wǎng)絡(luò)節(jié)點到達資源的第二個路徑)的單個網(wǎng)絡(luò)節(jié)點(即,目的地設(shè)備)。從識別給定路由拓撲10的根節(jié)點(即,目的地節(jié)點)14開始,計算路由軌跡12。根節(jié)點14的示例可以包括路由軌跡12中的自主有向無環(huán)圖的頭末端、到另一網(wǎng)絡(luò)的網(wǎng)關(guān)、或任何可識別的目的地。所有的根鏈路均被朝向根節(jié)點14向內(nèi)定向并且被分解。
[0041]“繼承”網(wǎng)絡(luò)節(jié)點是直接連接到根網(wǎng)絡(luò)節(jié)點14的網(wǎng)絡(luò)節(jié)點。如圖1和6A-6I中所示,用作根網(wǎng)絡(luò)節(jié)點14的目的地設(shè)備必須具有與根網(wǎng)絡(luò)節(jié)點14直接連接的至少兩個繼承網(wǎng)絡(luò)節(jié)點(例如,圖6A-6I中的網(wǎng)絡(luò)節(jié)點“A”和“B”):如果根網(wǎng)絡(luò)節(jié)點僅具有一個繼承節(jié)點,則(基于根網(wǎng)絡(luò)節(jié)點的不具有到達資源的第二路徑的定義)繼承網(wǎng)絡(luò)節(jié)點將被指定為新的根節(jié)點。繼承網(wǎng)絡(luò)節(jié)點被用于識別安全網(wǎng)絡(luò)節(jié)點:如果網(wǎng)絡(luò)節(jié)點能夠經(jīng)由第一繼承網(wǎng)絡(luò)節(jié)點或第二繼承網(wǎng)絡(luò)節(jié)點到達根節(jié)點,則該網(wǎng)絡(luò)節(jié)點被視為安全網(wǎng)絡(luò)節(jié)點,這是因為其能夠經(jīng)由兩個非疊合路徑(即,經(jīng)由第一繼承網(wǎng)絡(luò)節(jié)點或經(jīng)由第二繼承網(wǎng)絡(luò)節(jié)點)將分組路由到根,從而確保了在朝向根節(jié)點的路徑之一斷裂的情況下的可到達性。
[0042]葉網(wǎng)絡(luò)節(jié)點是具有一個且僅一個數(shù)據(jù)鏈路的節(jié)點:葉節(jié)點不可能是接合節(jié)點,并且不屬于路由軌跡12。與葉網(wǎng)絡(luò)節(jié)點耦接的數(shù)據(jù)鏈路總是被向外定向(即,遠離葉網(wǎng)絡(luò)節(jié)點)并且被分解。
[0043]安全網(wǎng)絡(luò)節(jié)點是用于識別根網(wǎng)絡(luò)節(jié)點14、繼承節(jié)點(例如,圖6A-6I中的“A”或“B”)、或接合節(jié)點中的任意一個的指定節(jié)點。因此,接合節(jié)點是這樣的網(wǎng)絡(luò)節(jié)點,其既不是根網(wǎng)絡(luò)節(jié)點14也不是繼承網(wǎng)絡(luò)節(jié)點,而是安全網(wǎng)絡(luò)節(jié)點,這是因為其具有到達根網(wǎng)絡(luò)節(jié)點的兩個或更多個非疊合路徑,從而單個點的故障不能將接合節(jié)點與根網(wǎng)絡(luò)節(jié)點切斷。如果必須翻轉(zhuǎn)可反轉(zhuǎn)鏈路的方向以獲得替代路徑,則網(wǎng)絡(luò)節(jié)點可以被識別為接合節(jié)點。
[0044]因此,與繼承網(wǎng)絡(luò)節(jié)點和根網(wǎng)絡(luò)節(jié)點相連接的網(wǎng)絡(luò)節(jié)點是接合節(jié)點;與兩個不同的繼承網(wǎng)絡(luò)節(jié)點相連接的網(wǎng)絡(luò)節(jié)點是接合節(jié)點;與繼承網(wǎng)絡(luò)節(jié)點和接合節(jié)點相連接的網(wǎng)絡(luò)節(jié)點也是接合節(jié)點;與兩個不同的接合節(jié)點相連接的網(wǎng)絡(luò)節(jié)點也是接合節(jié)點。由于根網(wǎng)絡(luò)節(jié)點、繼承網(wǎng)絡(luò)節(jié)點、和接合節(jié)點均被定義為安全網(wǎng)絡(luò)節(jié)點,因此與兩個不同的安全網(wǎng)絡(luò)節(jié)點相連接的網(wǎng)絡(luò)節(jié)點是接合節(jié)點;具有到至少兩個不同的安全網(wǎng)絡(luò)節(jié)點的非疊合路徑的網(wǎng)絡(luò)節(jié)點是接合節(jié)點(可以將接合節(jié)點視為“看向”安全網(wǎng)絡(luò)節(jié)點,并且在僅經(jīng)由該接合節(jié)點能夠到達所述安全網(wǎng)絡(luò)節(jié)點的情況下隱藏所述安全網(wǎng)絡(luò)節(jié)點);僅看到一個接合節(jié)點的網(wǎng)絡(luò)節(jié)點在該接合節(jié)點的“subDAG”內(nèi)并且能夠被這樣追蹤。
[0045]因此,數(shù)據(jù)分組必須沿著路由軌跡12行進,并且僅可經(jīng)由路由軌跡12的末端之一處的邊緣接合點離開路由軌跡12。因此,數(shù)據(jù)分組能夠基于沿著一個或多個路由軌跡12行進來到達根節(jié)點(即,目的地節(jié)點)14。
[0046]圖3A是示出根據(jù)示例性實施例的由圖2的裝置20進行的示例性方法的圖示,該方法包括創(chuàng)建包括用于到達目的地設(shè)備14的路由軌跡12的無回路路由拓撲10。圖3B、3C、和3D示出了根據(jù)另一個示例性實施例的由裝置20進行的用于創(chuàng)建無回路路由拓撲10的另一個方法。圖3A-3D中描述的步驟能夠被實現(xiàn)為在計算機或機器可讀非暫時有形存儲介質(zhì)(例如,軟盤、硬盤、R0M、EPR0M、EEPR0M、非易失性RAM、CD-ROM等)上存儲的可執(zhí)行代碼,基于使用一個或多個集成電路實現(xiàn)的處理器電路執(zhí)行代碼來完成所述步驟。在本文中描述的步驟也可被實現(xiàn)為用于執(zhí)行的在一個或多個非暫時有形介質(zhì)中編碼的可執(zhí)行邏輯(例如,可編程邏輯陣列或器件、現(xiàn)場可編程門陣列、可編程陣列邏輯、專用集成電路等)。
[0047]參見圖3A,處理器電路22能夠基于在步驟30中創(chuàng)建第一路由軌跡12作為基礎(chǔ)結(jié)構(gòu)軌跡(即,非折疊軌跡的路由軌跡)來創(chuàng)建無回路路由拓撲10:在步驟30中創(chuàng)建的第一路由軌跡12 (例如,圖1中的12a或12b)具有在目的地設(shè)備(即,根節(jié)點)14處終結(jié)的兩個末端。處理器電路22能夠根據(jù)下述規(guī)則(在步驟30中創(chuàng)建的第一路由軌跡12a或12b之后)在步驟S32中創(chuàng)建下一個路由軌跡12作為基礎(chǔ)結(jié)構(gòu)軌跡(例如,12b之后的12c)或折疊軌跡(例如,12a之后的12d): (I)正在建造的下一個路由軌跡12必須在現(xiàn)有的路由軌跡的接合節(jié)點中或目的地設(shè)備14處終結(jié)(例如,路由軌跡12c的一端在路由軌跡12b處終結(jié),另一端在目的地設(shè)備14處終結(jié));以及(2)除了在現(xiàn)有的路由軌跡的接合節(jié)點中終結(jié)的路由軌跡的一端之外,必須使得正在創(chuàng)建的路由軌跡來自尚未處于現(xiàn)有的路由軌跡中的網(wǎng)絡(luò)節(jié)點;換言之,在規(guī)則(2)中,下一個路由軌跡12包括與現(xiàn)有的路由軌跡的網(wǎng)絡(luò)設(shè)備中的任意一個不同的網(wǎng)絡(luò)設(shè)備。在步驟34中可以由處理器電路22構(gòu)造下一個路由軌跡12,直到針對具有至少兩個數(shù)據(jù)鏈路的所有網(wǎng)絡(luò)節(jié)點已經(jīng)完成所有路由軌跡為止。處理器電路22在步驟S36中識別包括僅一個數(shù)據(jù)鏈路的任何葉網(wǎng)絡(luò)節(jié)點,并且在步驟38中實現(xiàn)在步驟30、32、34、和36中構(gòu)造的無回路路由拓撲10。
[0048]如步驟30、32、和34所示,優(yōu)選在任何其他路由軌跡12 (例如,12c或12d)之前創(chuàng)建第一路由軌跡12 (例如,12a或12b);然而,可以任意順序創(chuàng)建圖1中的路由軌跡12,只要遵從步驟32的規(guī)則以確保無回路形成即可,其中“現(xiàn)有的路由軌跡”是指已經(jīng)為另一個路由軌跡分配的一組網(wǎng)絡(luò)節(jié)點。因此,只要滿足下述條件,即可使用用于創(chuàng)建無回路路由拓撲10的替代技術(shù):在形成期間路由軌跡12并不彼此交叉;或者彼此交叉的任何路由軌跡12在交叉點(例如,折疊軌跡)處共享相同的光標(biāo),從而使得所有的網(wǎng)絡(luò)流量被指引遠離光標(biāo)點。
[0049]處理器電路22在步驟38中能夠基于使得設(shè)備接口電路24輸出與路由軌跡12相關(guān)聯(lián)的至少所選擇的參數(shù)給至少一個其他裝置(例如,網(wǎng)絡(luò)路由器、網(wǎng)絡(luò)管理裝置、一個或多個網(wǎng)絡(luò)節(jié)點等)來部署無回路路由拓撲10,從而使得路由拓撲10中的網(wǎng)絡(luò)流量將沿著路由軌跡12中的至少一個被轉(zhuǎn)發(fā)到目的地設(shè)備14。如果在步驟40中例如由裝置20或網(wǎng)絡(luò)節(jié)點14或16中的一個檢測到了路由軌跡之一中的鏈路故障(或網(wǎng)絡(luò)節(jié)點故障),則在步驟S42中可以由與鏈路故障相鄰的接合節(jié)點(例如,由處理器電路22通過傳輸、重新分配等)獲取軌跡光標(biāo)18的占有權(quán),從而使得接合節(jié)點能夠基于反轉(zhuǎn)可反轉(zhuǎn)鏈路之一來控制網(wǎng)絡(luò)流量以朝向目的地設(shè)備14繼續(xù)路由,而不在無回路路由拓撲10中創(chuàng)建回路。
[0050]圖3B、3C、和3D示出了根據(jù)示例性實施例的由處理器電路22進行的用于創(chuàng)建包括圖61的路由軌跡12的無回路路由拓撲10的示例性方法。
[0051]根據(jù)示例性實施例,可以創(chuàng)建這樣的無回路路由拓撲10,在該無回路路由拓撲10中,嘗試建立除了根網(wǎng)絡(luò)節(jié)點和繼承網(wǎng)絡(luò)節(jié)點之外的作為接合節(jié)點的每個網(wǎng)絡(luò)節(jié)點,以確保每一個網(wǎng)絡(luò)節(jié)點具有到目的地設(shè)備(即,根網(wǎng)絡(luò)節(jié)點)14的最短路徑和替代路徑。這種確保是通過創(chuàng)建在安全網(wǎng)絡(luò)節(jié)點處終結(jié)的路由軌跡12建立的。由于用于創(chuàng)建有向無環(huán)圖(DAG)的傳統(tǒng)技術(shù)并不確保有向無環(huán)圖中的每一個節(jié)點都可以是接合點,因此示例性實施例使得鏈路響應(yīng)于網(wǎng)絡(luò)節(jié)點或網(wǎng)絡(luò)鏈路中的檢測到的故障而被反轉(zhuǎn),從而使得可以立即進行數(shù)據(jù)流量的重路由,而不必進行路由的重新計算且不會在拓撲中形成任何回路。因此,示例性的實施例能夠建立用于到達根網(wǎng)絡(luò)節(jié)點的路由軌跡的無回路路由拓撲,該無回路路由拓撲包括根網(wǎng)絡(luò)節(jié)點、與根網(wǎng)絡(luò)節(jié)點耦接的兩個或更多個繼承網(wǎng)絡(luò)節(jié)點、接合節(jié)點、和零個或更多個葉網(wǎng)絡(luò)節(jié)點。
[0052]如在下文中參照圖3B、3C、4_5、和6A-6I所進一步詳細描述的,基于下述各項來創(chuàng)建無回路路由拓撲10:生成用于到達目的地設(shè)備14的第一有向無環(huán)圖;(在第一有向無環(huán)圖內(nèi))識別具有用于到達目的地設(shè)備14的非疊合路徑的接合節(jié)點;識別沿著非疊合路徑且不會在無回路路由拓撲10中引入或創(chuàng)建回路的接合節(jié)點之間的可反轉(zhuǎn)鏈路;以及在第一有向無環(huán)圖中識別用于到達接合節(jié)點之一的至少一個第二有向無環(huán)圖(也被稱為“subDAG”),第二有向無環(huán)圖包括具有用于到達目的地設(shè)備的新的非疊合路徑的被識別出的新的接合節(jié)點。
[0053]在本公開中,可以通過連接網(wǎng)絡(luò)節(jié)點來識別鏈路,從而使得鏈路“A-R”指代將網(wǎng)絡(luò)節(jié)點“A”連接到下一跳網(wǎng)絡(luò)節(jié)點“R”的有線或無線鏈路:鏈路命名中的箭頭可以指代所分配的方向(例如“A — R”和“R — A”等同地識別將流量從節(jié)點A指引到節(jié)點R的鏈路),而在鏈路命名中缺少箭頭(例如“A-R”)是指尚未將方向分配給鏈路。
[0054]參照圖2和3B,處理器電路22識別包括有線或無線數(shù)據(jù)鏈路(例如,有線或無線IEEE802.11、藍牙等)46的數(shù)據(jù)鏈路層拓撲44(圖2),并且在步驟50中創(chuàng)建用于到達目的地設(shè)備14的有向無環(huán)圖(DAG) 52,如圖6A中所示。具體而言,圖2的鏈路層拓撲44包括例如互聯(lián)網(wǎng)絡(luò)節(jié)點的鏈路層(即,OSI的第2層)網(wǎng)格形式的具有一個或多個鏈路層連接(例如,有線或無線IEEE802鏈路、藍牙鏈路等)的網(wǎng)絡(luò)節(jié)點14,所述一個或多個鏈路層連接互連網(wǎng)絡(luò)節(jié)點。例如根據(jù)在美國專利N0.7656857中描述的技術(shù),由處理器電路22在步驟50中生成有向無環(huán)圖52,其中被標(biāo)記為“SPF”的鏈路識別SPF拓撲中的最短路徑優(yōu)先(SPF)鏈路,而被標(biāo)識為“TOP”的鏈路識別覆蓋SPF拓撲的“則其他路徑”(TOP)鏈路,其導(dǎo)致形成朝向根節(jié)點“R”的有向無環(huán)圖(DAG)??偠灾诓襟E50中由處理器電路22基于識別與根節(jié)點14相鄰的下一跳節(jié)點并且將每一個下一跳節(jié)點的鏈路朝向根定向來形成有向無環(huán)圖。隨后識別次相鄰(與每一個下一跳節(jié)點相鄰的)節(jié)點,并且擴展從下一跳節(jié)點到相關(guān)聯(lián)的次相鄰節(jié)點的路徑,同時將次相鄰節(jié)點和下一跳節(jié)點之間的每一個鏈路定向為朝向下一跳節(jié)點。遞歸地重復(fù)這些步驟直到路徑擴展到網(wǎng)絡(luò)中的最遠節(jié)點為止,并且將所述鏈路定向回朝向根以形成有向無環(huán)圖。
[0055]在針對圖6A-6I的路由軌跡12的計算期間,在存儲器電路26中保持SPF鏈路的SPF狀態(tài)。圖4(包括圖4A、4B、4C、和4D)示出了示例性狀態(tài)表54,所述示例性狀態(tài)表54能夠被存儲在存儲器電路26中,并且被配置用于存儲在圖3B、3C、和3D的方法的執(zhí)行期間網(wǎng)絡(luò)節(jié)點和數(shù)據(jù)鏈路中的狀態(tài)變化。
[0056]圖5不出了不例性拓撲表56,所述不例性拓撲表56能夠被存儲在存儲器電路26中,并且被配置用于存儲在路由軌跡被構(gòu)造以到達目的地設(shè)備(即,根網(wǎng)絡(luò)節(jié)點“R” ) 14時的軌跡拓撲屬性。處理器電路22能夠在狀態(tài)表54被更新期間(例如,在識別SPF鏈路時、在識別可反轉(zhuǎn)鏈路時、在識別接合節(jié)點68時、在創(chuàng)建路由軌跡時等)更新圖5的拓撲表56中的每條,其中由具有兩個向外定向的可反轉(zhuǎn)鏈路的接合節(jié)點68來識別軌跡光標(biāo)18的所有權(quán)。因此,處理器電路20在步驟50中將SPF鏈路58和非SPF鏈路(圖5中未示出)存儲在拓撲表56中。
[0057]如圖6A中所示,DAG拓撲52中沒有一個網(wǎng)絡(luò)節(jié)點(除了網(wǎng)絡(luò)節(jié)點“J”之外)具有用于到達根節(jié)點“R”的至少兩個非疊合路徑。因此,圖3B、3C、和3D的方法提供了在無回路路由拓撲10中的路由軌跡12的創(chuàng)建,路由軌跡使得網(wǎng)絡(luò)流量能夠沿著路由軌跡經(jīng)由路由軌跡的末端中的任意一個朝向目的地根網(wǎng)絡(luò)節(jié)點被路由。
[0058]在步驟50中形成有向無環(huán)圖之后,路由軌跡的生成在圖3B的步驟60中開始,其中保持SPF鏈路,同時將有向無環(huán)圖中的非SPF鏈路選擇性地修改為單向鏈路或可反轉(zhuǎn)鏈路。每一個網(wǎng)絡(luò)節(jié)點和每一個數(shù)據(jù)鏈路的狀態(tài)可以被存儲在存儲器電路中。
[0059]在步驟60中從識別根網(wǎng)絡(luò)節(jié)點R并且朝向根(A — R,B — R)對未定向的鏈路進行定向(如在事件200處通過圖4A的狀態(tài)表中的狀態(tài)變化所示)開始路由軌跡的生成,并且在步驟62中發(fā)起對繼承網(wǎng)絡(luò)節(jié)點(例如,節(jié)點A)的識別。如在下文中所進一步詳細描述的,在步驟62中由處理器電路22依次分析SPF節(jié)點,以識別朝向目的地設(shè)備14的DAG52中的下屬有向無環(huán)圖(subDAG,也稱為子DAG)64(例如,圖6B的64a和64b)。與根網(wǎng)絡(luò)節(jié)點14耦接的每一個繼承網(wǎng)絡(luò)節(jié)點鏈路(例如,A-R)被朝向根網(wǎng)絡(luò)節(jié)點向外定向,并且在狀態(tài)表54中被標(biāo)記為被分解(A — R=Resolved)(圖4A的事件202)。在步驟66中依次分解每一個相鄰網(wǎng)絡(luò)節(jié)點,以識別子DAG64中的具有用于經(jīng)由與子DAG64不同的路徑到達目的地設(shè)備14的替代非疊合路徑的任何接合節(jié)點;換言之,每一個相鄰網(wǎng)絡(luò)節(jié)點16被依次分解,以在子DAG64中識別出具有用于到達目的地設(shè)備的至少兩個非疊合路徑的任何接合節(jié)點。
[0060]圖3C和3D進一步詳細地示出了在步驟66中由處理器電路22執(zhí)行的步驟。以針對名為“resolvmeigbor (N) ”的函數(shù)調(diào)用的“C代碼”(被以概況標(biāo)注進行標(biāo)注以識別嵌套操作)的示例形式來說明圖3C和3D的步驟。圖6B到61中省略了裝置20以簡化說明,但顯然在路由軌跡12的計算和無回路路由拓撲10的創(chuàng)建期間裝置20將一直存在。
[0061]在步驟70中,如果正在分析的相鄰節(jié)點“N”是包括一個且僅一個數(shù)據(jù)鏈路的葉網(wǎng)絡(luò)節(jié)點,則由處理器電路22來執(zhí)行步驟70中的第一操作。在本示例中,當(dāng)前的執(zhí)行狀態(tài)是圖4A中的狀態(tài)202,其中正在分析繼承網(wǎng)絡(luò)節(jié)點“A” ;因此,由于繼承網(wǎng)絡(luò)節(jié)點A不是葉節(jié)點,步驟70被跳過。如果正在分析的相鄰節(jié)點“N”不是安全節(jié)點,則由處理器電路22執(zhí)行步驟72。在分析繼承網(wǎng)絡(luò)節(jié)點“A”的當(dāng)前狀態(tài)時,由于繼承網(wǎng)絡(luò)節(jié)點A是安全網(wǎng)絡(luò)節(jié)點(因此其是繼承網(wǎng)絡(luò)節(jié)點),所以步驟72被跳過。
[0062]如上所述,由處理器電路22執(zhí)行的方法嘗試識別作為安全網(wǎng)絡(luò)節(jié)點的相鄰網(wǎng)絡(luò)節(jié)點。因此,尚未被標(biāo)記(即,未被標(biāo)記)的正在分析的安全網(wǎng)絡(luò)節(jié)點(例如,Node N=NodeA)中的任意一個鏈路(N-1)(例如,D — A、C — A)最初被設(shè)置為朝向最近的安全節(jié)點的未被分解的狀態(tài)(D — A= “?-S”;C — A= “?-S”),以指示尚未確定鏈路(例如,D — A、C — A)是否將網(wǎng)絡(luò)節(jié)點(例如,節(jié)點A)耦接到使得鏈路能夠被反轉(zhuǎn)的另一個安全網(wǎng)絡(luò)節(jié)點,或者鏈路是否將網(wǎng)絡(luò)節(jié)點耦接到不安全的網(wǎng)絡(luò)節(jié)點(即,不是先前定義的安全網(wǎng)絡(luò)節(jié)點的網(wǎng)絡(luò)節(jié)點)。
[0063]在步驟74中,根據(jù)SPF標(biāo)識按序(即,提供最短路徑優(yōu)選的鏈路、然后是外向鏈路(outgoing link)、最后是進入鏈路(incoming link))對正在分析的安全網(wǎng)絡(luò)節(jié)點(例如,Node N=Node A)的每一個鏈路(N_i)進行分解。在步驟76中如果數(shù)據(jù)鏈路已經(jīng)被分解,則在步驟74中處理器電路22的執(zhí)行繼續(xù)到下一個鏈路:注意鏈路A — R被分析,并且在根網(wǎng)絡(luò)節(jié)點14中結(jié)束,將鏈路A — R識別為終結(jié)路由軌跡12。處理器電路22當(dāng)前跳過步驟78到86,這是因為正在分析的安全網(wǎng)絡(luò)節(jié)點(例如,node N=node A)不具有其他未被分解的外向鏈路。在步驟74中處理器電路22返回到下一個鏈路(即,進入鏈路)。[0064]在步驟88中如果處理器電路22確定正在分析的未被分解的鏈路(其不是SPF鏈路或外向鏈路)不具有分配的方向,則該鏈路被分配以進入方向以將流量朝向正在分析的安全網(wǎng)絡(luò)節(jié)點(例如,Node N=Node A)指引。如果進入鏈路(例如,基于初始有向無環(huán)圖的D — A)被標(biāo)記為未被分解的狀態(tài)(例如,D — A= “?-S”),則進入鏈路被相對于正在分析的安全網(wǎng)絡(luò)節(jié)點標(biāo)記為未被分解的狀態(tài)(即,將鏈路D —A從“?-S”重置為“?-N”)。因此,將鏈路“D — A”重置為狀態(tài)“?-A” (Node N=Node A:D — A= “?-A”);在步驟74和88中由處理器電路22為節(jié)點A的下一個鏈路重復(fù)該過程,因此在步驟88中鏈路“C — A”被重置為狀態(tài)“?-A” (C — A= “?-A”),指示尚未確定鏈路“D — A”和“C — A”是否可反轉(zhuǎn)以到達另一個安全網(wǎng)絡(luò)節(jié)點(朝向最近的安全網(wǎng)絡(luò)節(jié)點對鏈路進行定向)。因此,未被分解的狀態(tài)指示尚且無法形成路由軌跡,這是因為尚未發(fā)現(xiàn)未被分解的鏈路能夠朝向到根網(wǎng)絡(luò)節(jié)點的替代非疊合路徑被反轉(zhuǎn)。在步驟88中遞歸地重新標(biāo)記朝向安全網(wǎng)絡(luò)節(jié)點“N” (NodeN=Node A)的子DAG中的所有的未被分解的進入鏈路,從而經(jīng)由被標(biāo)記為“?-A”的鏈路來識別圖6B的子DAG (A) 64a。
[0065]在分析了用于正在分析的安全網(wǎng)絡(luò)節(jié)點(例如,Node N=Node A)的所有鏈路之后,由處理器電路22針對尚未被分析的(在步驟50的SPF計算中)具有到根網(wǎng)絡(luò)節(jié)點“R”的最短路徑的下一個節(jié)點(例如,繼承網(wǎng)絡(luò)節(jié)點“B”)重復(fù)圖3B中的步驟62和66的過程(圖4A的事件204)。在步驟62中,由處理器電路22識別出作為繼承網(wǎng)絡(luò)節(jié)點的網(wǎng)絡(luò)節(jié)點“B”,并且由處理器電路22識別出作為SPF鏈路的根鏈路“B — R”,所述根鏈路“B — R”被朝向所述根網(wǎng)絡(luò)節(jié)點定向并且在步驟62中在狀態(tài)表54和拓撲表56中被標(biāo)記為被分解的SPF鏈路。如圖3C和3D中由處理器電路22執(zhí)行步驟66所示,由于網(wǎng)絡(luò)節(jié)點“B”被識別為具有額外的進入鏈路“K-B”的繼承網(wǎng)絡(luò)節(jié)點(因此為安全網(wǎng)絡(luò)節(jié)點),所以處理器電路22跳過步驟70和72,并且在步驟88中處理器電路22將狀態(tài)表54中的鏈路“K — B”的狀態(tài)從“?-S”改變?yōu)椤埃?B” (K — B= “?-B”)。剩余的進入鏈路被朝向最近的安全節(jié)點“B”遞歸地分解,得到圖6B的子DAG (B) 64b。
[0066]在圖3B的步驟62中,由處理器電路22將處理繼續(xù)到通過SPF計算被識別出的尚未被分析的與根網(wǎng)絡(luò)節(jié)點“R”最近的下一個節(jié)點,即網(wǎng)絡(luò)節(jié)點“K” (圖4A的事件206)。由于網(wǎng)絡(luò)節(jié)點“K”不是葉節(jié)點,所以圖3C的步驟70被跳過。因此,網(wǎng)絡(luò)節(jié)點“K”不是安全網(wǎng)絡(luò)節(jié)點,因為其還不具有到根網(wǎng)絡(luò)節(jié)點“R”的兩個非疊合路徑,取而代之的是,網(wǎng)絡(luò)節(jié)點“K”當(dāng)前僅具有到安全網(wǎng)絡(luò)節(jié)點“B”的SPF鏈路“K — B”。因此,由處理器電路22將所有的非SPF鏈路(例如,M-K和J-K)分配為被定向進入當(dāng)前正在分析的網(wǎng)絡(luò)節(jié)點“K”,并且在步驟72中由處理器電路22將鏈路標(biāo)記為對于最近的安全網(wǎng)絡(luò)節(jié)點未被分解(例如,M — K= “?-B,,J — K= “?-B,,)。
[0067]因此,當(dāng)前一組被分析的網(wǎng)絡(luò)節(jié)點包括網(wǎng)絡(luò)節(jié)點“A”、“R”、“B”、和“K”。
[0068]由處理器電路22在圖3B的步驟62和104中將該方法繼續(xù)到下一個SPF網(wǎng)絡(luò)節(jié)點,該下一個SPF網(wǎng)絡(luò)節(jié)點被識別為不是安全網(wǎng)絡(luò)節(jié)點的網(wǎng)絡(luò)節(jié)點“M”(圖4A的事件208)。處理器電路22跳過步驟70,節(jié)點“M — K”被識別為SPF鏈路,并且在步驟72中,鏈路“ J-M”在狀態(tài)表54中被分配為具有到最近的安全網(wǎng)絡(luò)節(jié)點“B”的未被分解的狀態(tài)的進入鏈路(J —M= “?-B”)。
[0069]在圖3B的步驟62中由處理器電路22從SPF節(jié)點中選擇的下一個網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)節(jié)點“D” (事件210),鏈路“D — A”被識別為SPF鏈路,處理器電路22跳過步驟70,并且由于網(wǎng)絡(luò)節(jié)點“D”不是安全網(wǎng)絡(luò)節(jié)點,因此在步驟72中由處理器電路22將剩余的非SPF鏈路分配為進入網(wǎng)絡(luò)節(jié)點“D”,并且剩余的非SPF鏈路在狀態(tài)表54中被標(biāo)記為對于最近的安全網(wǎng)絡(luò)節(jié)點“A”未被分解(C — D= “?-A” ;E — D= “?-A” ;L — D= “?-A”)。如在下文中所進一步詳細描述的,可以跟蹤每一個網(wǎng)絡(luò)節(jié)點的每一個非SPF鏈路的開銷以用于以后的分析。在步驟72中,由處理器電路22針對網(wǎng)絡(luò)節(jié)點“C”重復(fù)該方法(事件212),導(dǎo)致鏈路“C — A”被識別為SPF鏈路,并且在狀態(tài)表54中標(biāo)記鏈路E — C= “?4”和F — C= “?-A”。
[0070]在圖3B的步驟62中從SPF節(jié)點中選擇的下一個網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)節(jié)點“L” (事件214)。處理器電路22跳過步驟70,并且由于網(wǎng)絡(luò)節(jié)點“L”不是安全網(wǎng)絡(luò)節(jié)點,因此在步驟72中,由處理器電路22將鏈路L — D識別為SPF鏈路,鏈路“E-L”被分配為進入網(wǎng)絡(luò)節(jié)點“L”,并且在狀態(tài)表54中被標(biāo)記為對于最近的安全網(wǎng)絡(luò)節(jié)點“A”未被分解(“E — L”= “?-A”)。
[0071]在圖3B的步驟62中由處理器電路22從SPF節(jié)點中選擇的下一個網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)節(jié)點“E”(事件216)。步驟70被跳過,并且由于網(wǎng)絡(luò)節(jié)點“E”不是安全網(wǎng)絡(luò)節(jié)點,因此在步驟72中,由處理器電路22將鏈路E — C識別為SPF鏈路,并且所有的非SPF鏈路被定向為進入網(wǎng)絡(luò)節(jié)點“E”,并且被標(biāo)記為對于最近的安全網(wǎng)絡(luò)節(jié)點“A”未被分解,導(dǎo)致在狀態(tài)表 54 中標(biāo)記鏈路 F — E= “?-A”,G — E= “?-A”,并且 H — E= “?-A”。
[0072]在圖3B的步驟62和104中由處理器電路22從SPF節(jié)點中選擇的下一個網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)節(jié)點“F” (事件218)。處理器電路22跳過步驟70,并且由于網(wǎng)絡(luò)節(jié)點“F”不是安全網(wǎng)絡(luò)節(jié)點,因此在步驟72中,由處理器電路22將鏈路F — C識別為SPF鏈路,將所有的非SPF鏈路定向為進入網(wǎng)絡(luò)節(jié)點“F”,并且將所有的非SPF鏈路標(biāo)記為對于最近的安全網(wǎng)絡(luò)節(jié)點“A”未被分解,導(dǎo)致在狀態(tài)表54中標(biāo)記鏈路H — F= “?-A”,I — F= “?-A”,并且J — F= “?-A”。
[0073]在圖3B的步驟62中由處理器電路22從SPF節(jié)點中選擇的下一個網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)節(jié)點“N” (事件220)?;谄湟粋€且僅一個鏈路N — L,由處理器電路22將網(wǎng)絡(luò)節(jié)點“N”識別為葉網(wǎng)絡(luò)節(jié)點;因此,在步驟70中,鏈路“N-L”在狀態(tài)表54中被標(biāo)記為被分解(N — L=Resolved)。
[0074]在圖3B的步驟62中由處理器電路22從SPF節(jié)點中選擇的下一個網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)節(jié)點“G”(事件222)。步驟70被跳過,并且由于網(wǎng)絡(luò)節(jié)點“G”不是安全網(wǎng)絡(luò)節(jié)點,因此在步驟72中由處理器電路22將鏈路G — E識別為SPF鏈路,并且非SPF鏈路H-G被定向為進入網(wǎng)絡(luò)節(jié)點“G”,并且被標(biāo)記為對于最近的安全網(wǎng)絡(luò)節(jié)點“A”未被分解,導(dǎo)致在狀態(tài)表54中標(biāo)記鏈路H — G= “?-A”。
[0075]在步驟62中由處理器電路22從SPF節(jié)點中選擇的下一個網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)節(jié)點“H” (事件224)。由于網(wǎng)絡(luò)節(jié)點“H”不是安全網(wǎng)絡(luò)節(jié)點,因此在步驟72中由處理器電路22將鏈路H — F識別為SPF鏈路,并且非SPF鏈路1-H被定向為進入網(wǎng)絡(luò)節(jié)點“H”,并且被標(biāo)記為對于最近的安全網(wǎng)絡(luò)節(jié)點“A”未被分解,導(dǎo)致由處理器電路22在狀態(tài)表54中標(biāo)記鏈路 I — H= “?-A”。
[0076]由處理器電路22選擇的下一個網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)節(jié)點“I”(事件226)。由于網(wǎng)絡(luò)節(jié)點“I”不是安全網(wǎng)絡(luò)節(jié)點,因此在步驟72中由處理器電路22將鏈路I — F識別為狀態(tài)表54的SPF鏈路。如上所述,在圖5的拓撲表56中也可以由處理器電路22來標(biāo)記每一個SPF鏈路58。
[0077]從針對圖6B的以上描述中顯而易見的是,SPF鏈路和未被分解的鏈路的識別使得最短路徑樹和替代的未被分解的鏈路能夠被識別,所述替代的未被分解的鏈路可以用于識別與到根網(wǎng)絡(luò)節(jié)點的最短路徑不同的替代非疊合路徑。以下針對節(jié)點“J”的描述說明了替代的未被分解的鏈路的識別如何能夠支持識別子DAG64a和64fb中的一個或多個接合節(jié)點以用于軌跡路由拓撲的形成。
[0078]特別地,以下的描述說明了在不將回路引入到無回路拓撲中的情況下在DAG52中識別(兩個或更多個)接合節(jié)點、以及接合節(jié)點之間的能夠沿著接合節(jié)點的非疊合路徑之一被反轉(zhuǎn)的可反轉(zhuǎn)鏈路(被標(biāo)記為“Rev”)。此外,識別一個子DAG (64a或64b)中的具有用于到達目的地設(shè)備14的非疊合路徑的接合節(jié)點(與用作子DAG的根的接合節(jié)點不同)使得覆蓋第一基礎(chǔ)結(jié)構(gòu)軌跡的另一個基礎(chǔ)結(jié)構(gòu)軌跡被形成。
[0079]如相對于圖6B和6C所述,在圖3B的步驟62中由處理器電路22從SPF節(jié)點中選擇的下一個網(wǎng)絡(luò)節(jié)點是網(wǎng)絡(luò)節(jié)點“J”(事件228)。由處理器電路22將節(jié)點“J”識別為安全網(wǎng)絡(luò)節(jié)點,這是因為其可以被歸類為接合節(jié)點68,如圖3C和3D中所示??梢杂商幚砥麟娐?2將節(jié)點“ J”識別為接合節(jié)點,這是因為其具有用于經(jīng)由鏈路J — F(被標(biāo)記為對于最近的安全網(wǎng)絡(luò)節(jié)點“A”未被分解,即“?-A”)和/或鏈路J — K (被標(biāo)記為對于最近的安全網(wǎng)絡(luò)節(jié)點“B”未被分解的SPF鏈路,即“?-B”)到達安全節(jié)點(例如,根網(wǎng)絡(luò)節(jié)點“R”)的兩個非疊合路徑。因此,通過鏈路J — F和J — K提供的非疊合路徑通過相應(yīng)的區(qū)別性標(biāo)記“?-A”和“?-B”被識別出來,所述相應(yīng)的區(qū)別性標(biāo)記“?-A”和“?-B”識別經(jīng)由相應(yīng)的安全網(wǎng)絡(luò)節(jié)點“A”和“B”到根網(wǎng)絡(luò)節(jié)點“R”的可到達性。
[0080]由于網(wǎng)絡(luò)節(jié)點“J”被識別為接合節(jié)點,所以處理器電路22跳過步驟72。在步驟74中按照規(guī)定的順序(即首先SPF鏈路、隨后任何外向鏈路、隨后任何進入鏈路)分解網(wǎng)絡(luò)節(jié)點“ J”的每一個數(shù)據(jù)鏈路。因此,鏈路J — K是SPF鏈路,并且從而是在步驟74中要被分析的第一鏈路。由于在步驟76中鏈路J — K未被分解,因此在步驟78中外向鏈路J — K并不在另一個接合點處結(jié)束,從而跳過步驟80。
[0081]參照圖3D,如果網(wǎng)絡(luò)節(jié)點還不是中間接合點,則處理器電路22確定是否執(zhí)行步驟82。由處理器電路22針對網(wǎng)絡(luò)節(jié)點“ J”的鏈路J — K執(zhí)行步驟82,這是因為如果鏈路J — K被反轉(zhuǎn),則鏈路反轉(zhuǎn)將使得端點網(wǎng)絡(luò)節(jié)點“K”變?yōu)榻雍瞎?jié)點,即端點網(wǎng)絡(luò)節(jié)點“K”現(xiàn)在將具有經(jīng)由安全網(wǎng)絡(luò)節(jié)點“A”到根網(wǎng)絡(luò)節(jié)點“R”的替代路徑(例如,如果在鏈路從“?-B”反轉(zhuǎn)到“?-A”時改變鏈路J — K的標(biāo)記的話)。因此,鏈路J — K使得節(jié)點“J”能夠變?yōu)榻雍宵c并且不會導(dǎo)致SPF鏈路J — K的任何修剪。因此,通過在步驟82中由處理器電路22在狀態(tài)表54中將鏈路J — K標(biāo)記為可反轉(zhuǎn)(“Rev”),來分解鏈路J — K。圖6D中示出了將鏈路J — K標(biāo)記為可反轉(zhuǎn)(“Rev” )。
[0082]由于節(jié)點“J”是朝向安全網(wǎng)絡(luò)節(jié)點“B”的邊緣接合點,所以由處理器22執(zhí)行步驟84以防止在鏈路J — K永遠被反轉(zhuǎn)為K — J以到達安全網(wǎng)絡(luò)節(jié)點“A”的情況下經(jīng)由向外鏈路“J —M”形成回路;因此,由于“J —M”= “?-B”是滿足條件“?-S”的向外鏈路(其中S=B),所以在步驟84中通過阻擋朝向節(jié)點“M”的路徑來修剪向外鏈路“J — M”= “?-B”(注意,鏈路末端處的圖6C中的方框□與網(wǎng)絡(luò)節(jié)點“M”相交,指示從網(wǎng)絡(luò)節(jié)點“J”到網(wǎng)絡(luò)節(jié)點“M”的流量被阻塞);由處理器電路22將被修剪(S卩,被阻塞)的鏈路J-M的方向反轉(zhuǎn)并其重新標(biāo)記為向內(nèi)朝向新的安全網(wǎng)絡(luò)節(jié)點(接合節(jié)點)而未被分解,即在狀態(tài)表54中的M □— J= “?-J”。
[0083]還應(yīng)當(dāng)注意,如果在步驟84中存在作為朝向安全節(jié)點“B”的未被分解的鏈路的另一個鏈路(例如,J — B)(圖6B中未示出)(J — B= “?-B”),則該鏈路(J — B)可以在兩個末端被修剪(即,移除:J □ - □ B),以避免在任何鏈路反轉(zhuǎn)的情況下的任何回路的可能性。
[0084]因此,為了避免回路,路由軌跡中的接合節(jié)點可以具有一個且僅一個朝向軌跡的第一末端的鏈路、和一個且僅一個朝向軌跡的第二末端的其他鏈路。在步驟84中鏈路J — F未受影響,這是因為J是(經(jīng)由J —K)朝向安全節(jié)點“B”的邊緣接合點,而節(jié)點J —F朝向其他安全網(wǎng)絡(luò)節(jié)點“A”。
[0085]處理器電路22針對接合節(jié)點“J”跳過步驟86,這是因為其不是中間接合點,這是因為其尚不具有兩個可反轉(zhuǎn)鏈路。跳過步驟88,因為SPF鏈路J — K被分配為向外鏈路。
[0086]在步驟90中繼續(xù)由處理器電路22相對于SPF鏈路J — K ( “ Rev ”)執(zhí)行步驟78,其針對鏈路J — K的端點(即,網(wǎng)絡(luò)節(jié)點“K”)遞歸地調(diào)用步驟66的執(zhí)行(如圖3C和3D中所示),以便沿著最短路徑擴展軌跡;換言之,基于鏈路J — K到可反轉(zhuǎn)鏈路的狀態(tài)變化來執(zhí)行圖3C和3D的步驟(圖4B的事件230)。因此,針對J — K鏈路端點節(jié)點“K” (其不是葉節(jié)點)跳過步驟70。J — K鏈路使得端點節(jié)點“K”現(xiàn)在變?yōu)榻雍瞎?jié)點,這是因為鏈路J — K鏈路現(xiàn)在是可反轉(zhuǎn)的,因此網(wǎng)絡(luò)節(jié)點“K”作為接合節(jié)點(具體而言,邊緣接合點),并且現(xiàn)在是安全網(wǎng)絡(luò)節(jié)點,因此處理器電路22跳過步驟72。從SPF鏈路K — B開始,在步驟74中對每一個安全網(wǎng)絡(luò)節(jié)點“K”鏈路進行分解:處理器電路22跳過步驟76,這是因為SPF鏈路K — B= “?-B”尚未被分解。SPF鏈路K — B是外向鏈路,因此由處理器電路22執(zhí)行步驟78:處理器電路22不執(zhí)行步驟80,這是因為節(jié)點K — B不在另一個接合節(jié)點中結(jié)束(即,繼承網(wǎng)絡(luò)節(jié)點B不是接合節(jié)點)。由處理器電路22執(zhí)行步驟82,這是因為網(wǎng)絡(luò)節(jié)點“K”尚不是中間接合節(jié)點,并且鏈路K — B使端點網(wǎng)絡(luò)節(jié)點B變?yōu)榻雍瞎?jié)點,因此在步驟82中節(jié)點K — B被標(biāo)記為可反轉(zhuǎn),K — B= “Rev”,以使得繼承網(wǎng)絡(luò)節(jié)點“B”變?yōu)楸挥商幚砥麟娐?2在狀態(tài)表54中標(biāo)記為接合節(jié)點。
[0087]在步驟84中,節(jié)點N=K現(xiàn)在是朝向節(jié)點“B”的邊緣接合點,不存在要被修剪的向外的未被分解的鏈路,然而由處理器電路22在狀態(tài)表54中將鏈路M — K從“?-B,,重新標(biāo)記為到“?-K”。在步驟86中,由處理器電路22現(xiàn)在將網(wǎng)絡(luò)節(jié)點“K”識別為具有兩個可反轉(zhuǎn)鏈路J — K= “Rev”和K — B= “Rev”的中間接合點,但不存在與兩個可反轉(zhuǎn)鏈路不同的其他的向外鏈路,因此無需對其他的向外鏈路進行修剪。
[0088]因此,在節(jié)點J處將鏈路J — K作為可反轉(zhuǎn)鏈路的分解使得在步驟90處由處理器電路22遞歸地分解鏈路端點K的分解,導(dǎo)致節(jié)點K處的可反轉(zhuǎn)鏈路K — B的分解。在節(jié)點K處的可反轉(zhuǎn)鏈路K — B的分解導(dǎo)致在步驟90中處理器電路22對鏈路端點B的遞歸分解(事件232)。
[0089]繼承網(wǎng)絡(luò)節(jié)點B被基于可反轉(zhuǎn)鏈路K — B識別為邊緣接合點,并且由于SPF鏈路B — R是到根的,所以繼承網(wǎng)絡(luò)節(jié)點“B”被識別為路由軌跡的末端。節(jié)點B的分解使得處理器電路22在步驟90中的遞歸執(zhí)行返回到網(wǎng)絡(luò)節(jié)點“K” (事件234)以繼續(xù)分解網(wǎng)絡(luò)節(jié)點K的剩余鏈路。[0090]因此,在網(wǎng)絡(luò)節(jié)點K中已經(jīng)分解了 SPF鏈路,沒有外向鏈路需要被分解,從而使得在步驟74處對鏈路M — K= “?-K”進行分析。處理器電路22跳過步驟76、78中的每一個,這是因為鏈路M — K不是外向的,并且進入鏈路已經(jīng)被標(biāo)記為對于K未被分解“?-K”。因此,在步驟90中,處理器電路遞歸地分解鏈路K — M的端點M (事件236)。
[0091]在步驟72中由處理器電路22確定網(wǎng)絡(luò)節(jié)點M是安全節(jié)點,這是因為其具有到根的兩個非疊合路徑,即經(jīng)由鏈路M — K的路徑“?-K”和經(jīng)由鏈路M — J的路徑“?-J”。從最短路徑鏈路M — K開始,在步驟78中,鏈路在步驟80中被識別為在另一接合點“K”中結(jié)束,從而使得由處理器電路22將鏈路M — K(以及圖6D和61中的折疊軌跡“ARC1”的第一末端)在狀態(tài)表54中標(biāo)記為未被分解。在步驟90中處理器電路22從網(wǎng)絡(luò)節(jié)點M到網(wǎng)絡(luò)節(jié)點K的遞歸調(diào)用(事件238)導(dǎo)致沒有變化,因此處理器電路22返回到網(wǎng)絡(luò)節(jié)點M(事件240),并且在步驟80中處理器電路22將下一個外向且未被分析的鏈路M — K = “?-J”以及圖61中的折疊軌跡“ARC1”的第二末端)分解為被分解的鏈路。
[0092]參照圖4B,完成了(作為鏈路M-K的端點的)網(wǎng)絡(luò)節(jié)點“M”的遞歸分解,使得處理器電路22在圖4C的事件242處返回到網(wǎng)絡(luò)節(jié)點“K”;還完成了網(wǎng)絡(luò)節(jié)點“K”的遞歸分解,使得在事件244處返回到網(wǎng)絡(luò)節(jié)點“J”。
[0093]需要注意的是,網(wǎng)絡(luò)節(jié)點“K”和“M”是不改變鏈路可反轉(zhuǎn)性的接合節(jié)點。因此,鏈路M — K終結(jié)路由軌跡,這是因為其在接合節(jié)點“J”中結(jié)束,并且鏈路M — K在路由軌跡中終結(jié),這是因為其在另一個接合節(jié)點“K”中結(jié)束。因此,網(wǎng)絡(luò)節(jié)點“J”、“K”、和“M”形成折疊軌跡“ARC1”12,如圖6D中所示。
[0094]在步驟74中處理器電路22重復(fù)對接合節(jié)點“J”的下一個鏈路(即,外向鏈路J —F=“?-A”)的鏈路分析。在跳過步驟76之后,處理器電路22跳過步驟80,這是因為網(wǎng)絡(luò)節(jié)點“F”在圖6D中并不是接合點,所以鏈路J — F并不在另一個接合點中結(jié)束。網(wǎng)絡(luò)節(jié)點“J”尚不是中間接合點,因為其并不具有兩個可反轉(zhuǎn)路徑,因此執(zhí)行步驟82以使得鏈路J —F可反轉(zhuǎn)(J —F= “Rev”),這是因為鏈路J —F的反轉(zhuǎn)使得端點網(wǎng)絡(luò)節(jié)點“F”變?yōu)榫哂薪?jīng)由“?-A”到達根網(wǎng)絡(luò)節(jié)點“R”的替代路徑和經(jīng)由網(wǎng)絡(luò)節(jié)點“J”的路徑的接合點。網(wǎng)絡(luò)節(jié)點“J”已經(jīng)是邊緣接合點,因此跳過步驟84。
[0095]但在步驟78中將鏈路J — F標(biāo)記為可反轉(zhuǎn)現(xiàn)在使得安全節(jié)點“J”成為中間接合點,因此由處理器電路22執(zhí)行步驟86:步驟86中的描述“修剪安全節(jié)點N的除了 2個可反轉(zhuǎn)鏈路之外的所有向外鏈路”確保了除了沿著(經(jīng)由網(wǎng)絡(luò)節(jié)點F、J、K、和B形成的)軌跡12的向外鏈路之外沒有向外鏈路,從而任何其他鏈路被修剪并被向內(nèi)指引(像先前針對鏈路M □— J執(zhí)行的那樣)。處理器電路22跳過步驟88,這是因為鏈路J — F不是進入的,并且執(zhí)行步驟90以遞歸地分解鏈路J — F的端點節(jié)點的鄰居點(即,網(wǎng)絡(luò)節(jié)點“F”)(事件246)。
[0096]在具有多個鏈路的網(wǎng)絡(luò)節(jié)點“F”的分解期間,處理器電路22跳過步驟70。網(wǎng)絡(luò)節(jié)點“F”被識別為邊緣接合點(并且因此是安全節(jié)點),這是因為其具有到根節(jié)點“R”的兩個非疊合路徑,并且網(wǎng)絡(luò)節(jié)點“F”包括一個可反轉(zhuǎn)鏈路J — F,因此跳過步驟72的執(zhí)行。如在下文中所進一步詳細描述的,接合節(jié)點“F”屬于圖6B的子DAG(A)64a,并且接合節(jié)點“J”、“K”、和“B”屬于子DAG(B) 64b ;因此,可以創(chuàng)建包括(至少兩個或更多個)接合節(jié)點和(一個或多個)可反轉(zhuǎn)鏈路的第一基礎(chǔ)結(jié)構(gòu)軌跡(圖6E中所示的“ARC2”)12,其中第一基礎(chǔ)結(jié)構(gòu)軌跡的一個末端在目的地設(shè)備“R”處終結(jié)。
[0097]在步驟74中,從SPF鏈路F — C開始,分析安全節(jié)點“F”的鏈路中的每一個:跳過步驟76和80,由處理器電路22執(zhí)行步驟82以將鏈路F — C標(biāo)記為可反轉(zhuǎn)(F — CX‘Rev”)。由處理器電路22執(zhí)行步驟84,這是因為網(wǎng)絡(luò)節(jié)點“F”現(xiàn)在是朝向“S”(S=A)的邊緣接合點。因此,在步驟84中,被標(biāo)記為“?-A”的任何外向的未被分解的鏈路(例如,F(xiàn) —E= “?-A”)被處理器電路22向內(nèi)朝向邊緣接合點修剪并且反轉(zhuǎn),并且在狀態(tài)表54中被標(biāo)記為朝向邊緣接合點未被分解(例如,從F — E= “?-A”到E □ — F= “?-F”的改變);此外,在步驟84中,由處理器電路22將安全節(jié)點“F”的所有進入鏈路(即,向內(nèi)鏈路)從“?-A”改變?yōu)椤埃?F” (例如,將 H — F= “?4”和 I — F= “?-A” 改變?yōu)?H — F= “?-F” 和 I — F= “?-F”)。在步驟84中在狀態(tài)表54中重新標(biāo)記鏈路E □—F、H —F和I — F將網(wǎng)絡(luò)節(jié)點“E”、“H”、和“I”暴露給經(jīng)由邊緣接合點“F”到根節(jié)點“R”的替代路徑,使得網(wǎng)絡(luò)節(jié)點“E”、“H”、和“I”在以后被識別為具有與由子DAG(A)64a提供的路徑不同的用于到達根節(jié)點“R”的新的非疊合路徑的新的接合節(jié)點(并且因此是安全網(wǎng)絡(luò)節(jié)點)。因此,網(wǎng)絡(luò)節(jié)點“E”、“H”、和“I”可以在以后被用于基于與子DAG(A)64a不同的非疊合路徑創(chuàng)建第二基礎(chǔ)結(jié)構(gòu)軌跡。
[0098]邊緣接合點“F”尚不是中間接合點,因此跳過步驟86,并且跳過步驟88,這是因為進入鏈路E □—F已經(jīng)被標(biāo)記“?-F”為朝向邊緣接合點“F”未被分解。
[0099]在步驟90中由處理器電路22為SPF鏈路F — C= “Rev”的端點網(wǎng)絡(luò)節(jié)點“C”執(zhí)行遞歸調(diào)用(事件248)。
[0100]網(wǎng)絡(luò)節(jié)點“C”的由處理器電路22進行的遞歸調(diào)用跳過步驟70,這是因為其具有多個鏈路。網(wǎng)絡(luò)節(jié)點“C”被識別為邊緣接合點(并且因此是安全節(jié)點),這是因為其具有到根節(jié)點“R”的兩個路徑,并且網(wǎng)絡(luò)節(jié)點“C”包括一個可反轉(zhuǎn)鏈路F — C,因此處理器電路22跳過步驟72的執(zhí)行。跳過步驟76和80,并且由處理器電路22執(zhí)行步驟82,以將鏈路C — A在狀態(tài)表54中標(biāo)記為可反轉(zhuǎn)(C —A=“Rev”)。由處理器電路22執(zhí)行步驟84,這是因為網(wǎng)絡(luò)節(jié)點“C”現(xiàn)在是朝向“S”(S=A)的邊緣接合點。因此,在步驟84中,被標(biāo)記為“?-A”的任何外向的未被分解的鏈路(例如,C —D= “?-A”)被處理器電路22向內(nèi)朝向邊緣接合點“C”進行修剪和反轉(zhuǎn),并且在狀態(tài)表54中被標(biāo)記為朝向邊緣接合點未被分解(例如,從C — D= “?-A”改變到D □— C= “?-C”);此外,在步驟84中,由處理器電路22在狀態(tài)表54中將安全節(jié)點“C”的任何進入鏈路從“?-A”改變到“?-C” (例如,將E — C= “?-A”改變?yōu)镋 — C= “?-C”)。在步驟84中重新標(biāo)記鏈路DO—C和E — C將網(wǎng)絡(luò)節(jié)點“D”暴露給經(jīng)由邊緣接合點“C”到根節(jié)點“R”的替代路徑,使得網(wǎng)絡(luò)節(jié)點“D”隨后被識別為具有用于到達根節(jié)點“R”的兩個非疊合路徑的接合節(jié)點。
[0101]邊緣接合點“C”尚不是中間接合點,因此處理器電路22跳過步驟86,并且鏈路C — A并不是進入的,因此跳過步驟88。在步驟90中針對SPF鏈路C — A= “Rev”的端點網(wǎng)絡(luò)節(jié)點“A”執(zhí)行遞歸調(diào)用(事件250)。
[0102]網(wǎng)絡(luò)節(jié)點“A”的由處理器電路22進行的遞歸分解跳過步驟70,這是因為其具有多個鏈路。繼承網(wǎng)絡(luò)節(jié)點“A”是安全節(jié)點,并且被識別為邊緣接合點,這是因為其具有到根節(jié)點“R”的兩個非疊合路徑,并且網(wǎng)絡(luò)節(jié)點“A”包括一個可反轉(zhuǎn)鏈路C — A,因此跳過步驟72的執(zhí)行。
[0103]在步驟74中首先選擇SPF鏈路A — R并且在步驟76中將SPF鏈路A — R識別為被分解。被分解的SPF鏈路A — R也在根“R”中結(jié)束,并且因此終結(jié)由延伸回中間接合點“J”并延伸到邊緣接合點“B”的遞歸調(diào)用的鄰居點A (C、F、J)的序列識別出的軌跡。[0104]因此,在從中間接合點“J” (即,具有兩個可反轉(zhuǎn)鏈路的接合節(jié)點)開始的由處理器電路22進行的連續(xù)遞歸期間將SPF鏈路A — R識別為被分解,建立了接合節(jié)點“A”作為第二邊緣接合點,從而得到了用于到達根節(jié)點“R”的第一基礎(chǔ)結(jié)構(gòu)軌跡“ARC2”,如圖6E和61中所示。如圖6E、6H、和61中所示,用于到達根節(jié)點“R”的基礎(chǔ)結(jié)構(gòu)軌跡“ARC2”包括通過可反轉(zhuǎn)鏈路A-C、C-F、F-J、J-KjP K-B連接的接合節(jié)點“A”、“C”、“F”、“ J”、“K”、和“B”。因此,可以基于來回移動繼承網(wǎng)絡(luò)節(jié)點(例如“A”)的序列和可反轉(zhuǎn)鏈路的序列直到到達另一個繼承網(wǎng)絡(luò)節(jié)點(例如“B”)為止,來識別出用于到達根節(jié)點“R”的基礎(chǔ)結(jié)構(gòu)軌跡“ARC2”。
[0105]在步驟74中分析接合節(jié)點“A”的下一個鏈路,即鏈路D — A=?-A,從而導(dǎo)致在步驟90中對網(wǎng)絡(luò)節(jié)點“D”的遞歸分解(事件252)。網(wǎng)絡(luò)節(jié)點“D”現(xiàn)在是接合節(jié)點(并且因此是安全節(jié)點),這是因為其具有(經(jīng)由節(jié)點A和C)用于到達根節(jié)點“R”的兩個非疊合路徑。因此,跳過步驟70和72,并且首先為SPF鏈路D — A執(zhí)行步驟74?;诮K結(jié)于接合節(jié)點A,在步驟80中將鏈路D — A標(biāo)記為被分解。從節(jié)點“D”到節(jié)點“A”的遞歸調(diào)用使得對節(jié)點“A”的遞歸分析返回到節(jié)點“D”,這是因為已經(jīng)針對節(jié)點“A”分析了所有其他鏈路:這樣的返回被稱為“無操作遞歸(no-op recursion) ”,并且在以下的論述中出于簡潔的目的將被省略。
[0106]在步驟74中針對鏈路D □— C繼續(xù)對節(jié)點“D”的分析。鏈路D □— C在接合節(jié)點“C”中結(jié)束,并且因此在步驟80中被標(biāo)記為被分解,從而導(dǎo)致形成圖61中所示的折疊軌跡“ARC3”12。接下來在步驟74中針對接合節(jié)點D對進入鏈路L — D進行分析,并且在步驟88中將進入鏈路L — D從未被分解的狀態(tài)?_A重新標(biāo)記為未被分解的狀態(tài)?_D (L — ?-D”),指示最近的安全節(jié)點是節(jié)點“D”。
[0107]如圖6F中所示,安全節(jié)點“D”能夠在朝向根節(jié)點“R”的子DAG(A)64中形成其自身的下屬有向無環(huán)圖子DAG0))64d,從而使得安全節(jié)點“D”變?yōu)榫W(wǎng)絡(luò)節(jié)點“L”、“N”、“E”、“G”、“H”、和“I”的最近的安全節(jié)點。因此,與步驟72類似,在步驟88中安全節(jié)點“D”的子DAG中的所有未被分解的進入鏈路(例如,鏈路L — D、E — D、E — L、G — E、H — G、I — H、和H-E)被遞歸地重新標(biāo)記(即,標(biāo)記)為“?-D”,以傳播最新的安全節(jié)點“D”的標(biāo)識(狀態(tài)252)。
[0108]由處理器電路22在步驟90對節(jié)點“L”的遞歸分析導(dǎo)致無操作遞歸,這是因為節(jié)點“L”尚不是安全節(jié)點,因此分析返回到節(jié)點“D”。
[0109]接下來在步驟74中針對接合節(jié)點D分析鏈路E — D,并且在步驟88中由處理器電路22在狀態(tài)表54中將鏈路E — D從未被分解的狀態(tài)?_A重新標(biāo)記為未被分解的狀態(tài)?-D (E — D= “?-D”)。在步驟90中由處理器電路22遞歸地調(diào)用對節(jié)點E的分析(事件254)。
[0110]網(wǎng)絡(luò)節(jié)點E是接合節(jié)點(并且因此是安全節(jié)點),這是因為其具有經(jīng)由接合節(jié)點“D”和“D”到根的兩個非疊合路徑,而不改變?nèi)魏捂溌房煞崔D(zhuǎn)性。在步驟74中需要按照以下的示例順序?qū)雍瞎?jié)點“E”的以下鏈路進行分析:E — C、E — D、E — L、E □— F、G — E、和 H — E。[0111]因此,在步驟80中將SPF鏈路E — C標(biāo)記為被分解,這是因為其在接合節(jié)點“C”中結(jié)束。外向鏈路E — D在步驟74中被針對網(wǎng)絡(luò)節(jié)點“E”分析,并且在步驟80中被標(biāo)記為被分解(變?yōu)閳D61的折疊軌跡“ARC8”的第一末端),這是因為其在接合節(jié)點“D”中結(jié)束。外向鏈路E — L接下來在步驟74中被分析,并且由于鏈路E — L在步驟82中使得端點節(jié)點“L”變?yōu)榻雍宵c,所以在步驟82中鏈路E — L被標(biāo)記為可反轉(zhuǎn)。在步驟90中對端點“L”進行遞歸地分析(事件256)。
[0112]返回到圖4D和事件256,網(wǎng)絡(luò)節(jié)點“L”被識別為邊緣接合點(并且因此是安全節(jié)點),這是因為其具有可反轉(zhuǎn)鏈路E — L。鏈路L — D在步驟80中被標(biāo)記為被分解,這是因此其在接合節(jié)點“D”中結(jié)束,導(dǎo)致形成圖6G和圖61的第二基礎(chǔ)結(jié)構(gòu)軌跡“ARC4”。由于軌跡“ARC4”在安全節(jié)點“D”中結(jié)束,因此即使來自軌跡“ARC4”的所有流量可以經(jīng)由網(wǎng)絡(luò)節(jié)點C離開(即,網(wǎng)絡(luò)節(jié)點“D”經(jīng)由鏈路D □— C將其流量發(fā)送到網(wǎng)絡(luò)節(jié)點C),網(wǎng)絡(luò)節(jié)點“D”仍具有經(jīng)由網(wǎng)絡(luò)節(jié)點A的替代路徑。已經(jīng)針對葉節(jié)點N分解了鏈路N — L,因此分析返回到網(wǎng)絡(luò)節(jié)點“E”。
[0113]在步驟74中由處理器電路22針對網(wǎng)絡(luò)節(jié)點“E”分析的下一個鏈路(事件258)是鏈路E □— F=?-F。在步驟80中鏈路E □— F被分解為在接合節(jié)點“F”中結(jié)束(導(dǎo)致形成折疊軌跡“ARC8”)。盡管鏈路E □— F被修剪為單向,但如果期望,其可以被安全地反轉(zhuǎn)以用于LFA分析(步驟90是用于鏈路E □— F的端點節(jié)點F的無操作,因此分析返回到網(wǎng)絡(luò)節(jié)點“E”)。
[0114]在步驟74中接下來分析網(wǎng)絡(luò)節(jié)點“E”的進入鏈路G — E0由于網(wǎng)絡(luò)“G”不是接合點,因此其不是安全節(jié)點并且因此鏈路G — E在步驟88中無法被分解而是被重新標(biāo)記為?_E:由處理器電路22將到安全節(jié)點“E”的所有進入鏈路遞歸地標(biāo)記為朝向“E”未被分解(即,鏈路G — E、H — E、H — G、和I — H均被重置到“?-E” ),導(dǎo)致形成朝向E的子DAG (E)。在步驟88中網(wǎng)絡(luò)節(jié)點“G”的分析被遞歸地調(diào)用作為鏈路G — E的端點。
[0115]網(wǎng)絡(luò)節(jié)點“G”(事件260)被`確定為不是接合節(jié)點,并且所有的鏈路已經(jīng)被標(biāo)記為最近的安全節(jié)點“E”,因此可以跳過步驟72,并且在事件262中處理器電路22能夠返回到節(jié)點“E”。
[0116]在步驟74中分析安全節(jié)點“E”的下一個進入鏈路H — E,使得處理器電路在步驟90中在事件264處遞歸地分析端點節(jié)點“H”。
[0117]在步驟72和74中網(wǎng)絡(luò)節(jié)點“H”被識別為具有經(jīng)由未被分解的路徑(?_F)(經(jīng)由SPF鏈路H — F)和“?-E” (經(jīng)由鏈路H — E和H — G)的非疊合路徑的接合節(jié)點。因此,在步驟74中相繼對安全節(jié)點“H”的每一個鏈路(即,鏈路H — F、H — E、H — G、和I — H)進行分解。
[0118]在步驟80中由處理器電路將安全網(wǎng)絡(luò)節(jié)點“H”的SPF鏈路H — F分解為在接合節(jié)點“F”中結(jié)束:如在下文中所示,鏈路H — F將終結(jié)圖61的基礎(chǔ)結(jié)構(gòu)軌跡“ARC5”和折疊軌跡“ARC6”。步驟90導(dǎo)致對(作為鏈路H — F的端點的)節(jié)點“F”進行無操作遞歸分析,因此在步驟74中對安全節(jié)點“H”的下一個(外向)鏈路H — E的分析導(dǎo)致將在步驟80中分解(在接合節(jié)點“E”中結(jié)束的)鏈路H — E作為折疊軌跡“ARC6”的第二末端。
[0119]步驟90導(dǎo)致對節(jié)點“E” (作為鏈路H — E的端點)進行無操作遞歸分析,因此在步驟74中執(zhí)行對安全節(jié)點“H”的下一個鏈路(外向鏈路)H — G的分析。在步驟82中,鏈路H — G使得端點節(jié)點“G”變?yōu)榻雍宵c;此外,鏈路H — G (如果被反轉(zhuǎn))并不導(dǎo)致修剪SPF鏈路H — F ;因此,由處理器電路22在步驟82中將鏈路H — G在狀態(tài)表54中重新標(biāo)記為可反轉(zhuǎn)鏈路(H — G= “Rev”)。執(zhí)行步驟90以遞歸地分析鏈路H — G的端點節(jié)點“G” (事件 266)。
[0120]在步驟72中基于可反轉(zhuǎn)鏈路H —G將網(wǎng)絡(luò)節(jié)點“G”確定為邊緣接合點(并且因此是安全節(jié)點)。因此,在步驟74中對SPF鏈路G — E的分析導(dǎo)致在步驟80中鏈路G — E被標(biāo)記為作為基礎(chǔ)結(jié)構(gòu)軌跡“ARC5”的第二末端被分解。步驟90導(dǎo)致對節(jié)點“E” (作為鏈路G — E的端點)進行無操作遞歸分析,并且由于安全網(wǎng)絡(luò)節(jié)點“G”不具有要分解的其他鏈路,所以執(zhí)行返回到節(jié)點“H”以評估下一個進入鏈路I — H(事件268)。
[0121]步驟74中的下一個鏈路(即,安全網(wǎng)絡(luò)節(jié)點“H”的進入鏈路I —H):在步驟88中將鏈路I — H從I — H = “?-A”重新標(biāo)記為I — H = “?-H”,并且由處理器電路22執(zhí)行步驟90以遞歸地分析鏈路I — H的端點節(jié)點“I”(事件270)。
[0122]由處理器電路22在步驟72中將網(wǎng)絡(luò)節(jié)點“I”確定為具有經(jīng)由未被分解的路徑“?-F” (經(jīng)由SPF鏈路I — F)和“?-H” (經(jīng)由外向鏈路I — H)的非疊合路徑的接合節(jié)點。因此,在步驟74中,SPF鏈路I — F被處理器電路22分析,并且在步驟80中基于在接合節(jié)點“F”中結(jié)束被標(biāo)記為被分解(并且終結(jié)折疊軌跡“ARC7”)。步驟90導(dǎo)致對節(jié)點“F” (作為鏈路I — F的端點)的無操作遞歸分析,導(dǎo)致在步驟74中對下一個(外向鏈路)I — H進行分析。由于鏈路I — H在接合節(jié)點“H”中結(jié)束,所以鏈路I — H在步驟114中被標(biāo)記為被分解,從而形成了圖61的折疊軌跡“ARC7”的第二末端。步驟90導(dǎo)致對節(jié)點“H” (作為鏈路I — H的端點)的無操作遞歸分析,將執(zhí)行分析返回到接合節(jié)點“I”。
[0123]由處理器電路22完成對節(jié)點“ I ”的分析,將處理器電路22的執(zhí)行分析返回到節(jié)點“H” ;對節(jié)點“H”的分析完成,將執(zhí)行分析返回到節(jié)點“E” ;對節(jié)點“E”的分析完成,將執(zhí)行分析返回到節(jié)點“D”;對節(jié)點“D”的分析完成,將執(zhí)行分析返回到節(jié)點“A”;對節(jié)點“A”的分析完成,將執(zhí)行分析返回到節(jié)點“C” ;對節(jié)點“C”的分析完成,將執(zhí)行分析返回到節(jié)點“F” ;對節(jié)點“F”的分析完成,將執(zhí)行分析返回到節(jié)點“J”。如上所述,處理器電路22能夠在每一個路由軌跡被構(gòu)造時更新圖5的拓撲表56,其中由具有兩個向外定向的可反轉(zhuǎn)鏈路的接合節(jié)點識別軌跡光標(biāo)的所有權(quán)。
[0124]圖6H中示出了所得到的鏈路拓撲,并且圖61中示出了所得到的軌跡“ARC1”到“ARC8”。圖61的路由拓撲示出了路由軌跡“ARC1”到“ARC8”,其中除了根網(wǎng)絡(luò)節(jié)點“R”和葉節(jié)點“N”之外的全部網(wǎng)絡(luò)節(jié)點是接合節(jié)點。如圖6H和61中所示,折疊軌跡“ARC1”包括接合節(jié)點“ J”、“M”、和“K” ;用于到達根節(jié)點“R”的基礎(chǔ)結(jié)構(gòu)軌跡“ARC2”包括通過可反轉(zhuǎn)鏈路 C — A、F — C、J — F、J — K、和 K — B 連接的接合節(jié)點 “A”、“C”、“F”、“J”、“K”、和“B” ;折疊軌跡“ARC3”包括接合節(jié)點“A”、“D”、和“C” ;基礎(chǔ)結(jié)構(gòu)軌跡“ARC4”包括接合節(jié)點“ D ”、“ L ”、“ E ”、和“ C ” ;基礎(chǔ)結(jié)構(gòu)軌跡“ ARC5 ”包括接合節(jié)點“ E ”、“ G ”、“ H”、和“ F ” ;折疊軌跡“ARC6”包括接合節(jié)點“E”、“H”、和“F”;折疊軌跡“ARC7”包括接合節(jié)點“H”、“ I ”、和“F,,;并且折疊軌跡“ARC8”具有接合節(jié)點“D”、“E”、和“F”。
[0125]因此,假定鏈路F — C遇到故障,網(wǎng)絡(luò)節(jié)點“F”可以將流量經(jīng)由可反轉(zhuǎn)鏈路J — F重新引導(dǎo)到節(jié)點“ J” (例如,基于協(xié)商鏈路J — F需要被反轉(zhuǎn)到F — J的網(wǎng)絡(luò)節(jié)點“F”和“J”,使得網(wǎng)絡(luò)流量能夠被重新引導(dǎo)而無需重新計算路線)。[0126]根據(jù)本公開顯而易見的是,可以針對每一個網(wǎng)絡(luò)節(jié)點16重復(fù)用于目的地設(shè)備(“R”)14的無回路路由拓撲10,使得每一個網(wǎng)絡(luò)節(jié)點16能夠具有其自身的確保經(jīng)由非疊合路徑到對應(yīng)的網(wǎng)絡(luò)節(jié)點16的可到達性的無回路路由拓撲10。
[0127]根據(jù)示例性實施例,能夠建立這樣的無回路路由拓撲:其包括路由軌跡,使得能夠響應(yīng)于路由拓撲中的所檢測到的故障,基于反轉(zhuǎn)可反轉(zhuǎn)鏈路來立即重新引導(dǎo)網(wǎng)絡(luò)流量,而不將任何回路引入到拓撲中。
[0128]盡管已經(jīng)結(jié)合當(dāng)前被視為實現(xiàn)所附權(quán)利要求中指明的主題的最佳模式描述了本公開中的示例性實施例,但應(yīng)當(dāng)理解示例性實施例僅是說明性的,而不用于限制所附權(quán)利要求中指明的主題。
【權(quán)利要求】
1.一種方法,包括: 在計算網(wǎng)絡(luò)中創(chuàng)建無回路路由拓撲,所述無回路路由拓撲包括用于到達目的地設(shè)備的多個路由軌跡,每一個路由軌跡包括作為所述路由軌跡的第一末端的第一網(wǎng)絡(luò)設(shè)備、作為所述路由軌跡的第二末端的第二網(wǎng)絡(luò)設(shè)備、以及至少第三網(wǎng)絡(luò)設(shè)備,所述至少第三網(wǎng)絡(luò)設(shè)備被配置用于沿著所述路由軌跡經(jīng)由所述路由軌跡的第一末端或第二末端中的任意一個向所述目的地設(shè)備路由任意網(wǎng)絡(luò)流量;以及 使得所述網(wǎng)絡(luò)流量沿著所述路由軌跡中的至少一個被轉(zhuǎn)發(fā)到所述目的地設(shè)備。
2.如權(quán)利要求1所述的方法,其中每一個路由軌跡的第一和第二末端均在所述目的地設(shè)備、與所述目的地設(shè)備直接耦接的第二網(wǎng)絡(luò)節(jié)點、或者另一個路由軌跡的具有用于到達所述目的地設(shè)備的至少兩個非疊合路徑的接合節(jié)點之一處終結(jié)。
3.如權(quán)利要求2所述的方法,其中所述創(chuàng)建包括: 創(chuàng)建所述路由軌跡中的第一路由軌跡,作為具有在所述目的地設(shè)備處終結(jié)的對應(yīng)的第一末端的基礎(chǔ)結(jié)構(gòu)軌跡;以及 創(chuàng)建所述路由軌跡中的第二路由軌跡,作為在所述路由軌跡中的所述第一路由軌跡之后的、具有在所述路由軌跡中的所述第一路由軌跡處終結(jié)的對應(yīng)的第一末端的基礎(chǔ)結(jié)構(gòu)軌跡,所述路由軌跡中的所述第二路由軌跡包括與所述路由軌跡中的所述第一路由軌跡的網(wǎng)絡(luò)設(shè)備中的任意一個不同的網(wǎng)絡(luò)設(shè)備。
4.如權(quán)利要求1所述的方法,其中所述無回路路由拓撲確保即使在所述無回路路由拓撲中遇到鏈路故障,具有兩個數(shù)據(jù)鏈路的所述無回路路由拓撲中的網(wǎng)絡(luò)設(shè)備中的任意一個也能夠經(jīng)由所述路由軌跡中的至少一個到達所述目的地設(shè)備。
5.如權(quán)利要求1所述的方法,其中所述路由軌跡中的至少第一路由軌跡還包括被識別為中間接合節(jié)點并且與對應(yīng)的`第三網(wǎng)絡(luò)設(shè)備相鄰的第四網(wǎng)路設(shè)備,所述中間接合節(jié)點包括兩個可反轉(zhuǎn)鏈路和零個或更多個來自所述路由軌跡中的所述第一路由軌跡的任意其他網(wǎng)絡(luò)設(shè)備的向內(nèi)定向的鏈路,每一個可反轉(zhuǎn)鏈路是可反轉(zhuǎn)的而不在所述無回路路由拓撲中創(chuàng)建回路。
6.如權(quán)利要求5所述的方法,其中每一個路由軌跡還包括一個且僅一個軌跡光標(biāo),所述一個且僅一個軌跡光標(biāo)提供對指引所述網(wǎng)絡(luò)流量沿著所述路由軌跡并且遠離具有所述軌跡光標(biāo)的占有權(quán)的任意網(wǎng)絡(luò)設(shè)備的排他控制權(quán),所述第三或第四網(wǎng)絡(luò)設(shè)備之一基于所述軌跡光標(biāo)的占有權(quán)控制所述網(wǎng)絡(luò)流量沿著對應(yīng)的路由軌跡。
7.如權(quán)利要求6所述的方法,其中所述第三網(wǎng)絡(luò)設(shè)備基于所述對應(yīng)的路由軌跡中的檢測到的故障,獲取所述軌跡光標(biāo)的占有權(quán),以在所述對應(yīng)的路由軌跡中繼續(xù)路由所述網(wǎng)絡(luò)流量,其中所述占有權(quán)先前由所述第四網(wǎng)絡(luò)設(shè)備擁有,所述繼續(xù)路由基于所述第三網(wǎng)絡(luò)設(shè)備反轉(zhuǎn)所述可反轉(zhuǎn)鏈路之一而不在所述無回路路由拓撲中創(chuàng)建回路。
8.如權(quán)利要求1所述的方法,其中所述創(chuàng)建包括: 生成用于到達所述目的地設(shè)備的第一有向無環(huán)圖; 在所述第一有向無環(huán)圖中識別兩個或更多個接合節(jié)點,所述兩個或更多個接合節(jié)點中的每一個具有用于到達所述目的地設(shè)備的至少兩個非疊合路徑,所述識別包括識別一個或多個可反轉(zhuǎn)鏈路,所述一個或多個可反轉(zhuǎn)鏈路在所述接合節(jié)點之間并且能夠被沿著所述非疊合路徑之一反轉(zhuǎn)而不將回路引入到所述無回路拓撲中;創(chuàng)建包括所述接合節(jié)點中的兩個或更多個和一個或多個可反轉(zhuǎn)鏈路的所述基礎(chǔ)結(jié)構(gòu)軌跡中的第一基礎(chǔ)結(jié)構(gòu)軌跡,所述基礎(chǔ)結(jié)構(gòu)軌跡中的所述第一基礎(chǔ)結(jié)構(gòu)軌跡具有在所述目的地設(shè)備處終結(jié)的對應(yīng)的第一末端;以及 創(chuàng)建所述路由軌跡中的第二路由軌跡,所述路由軌跡中的所述第二路由軌跡在所述路由軌跡中的所述第一路由軌跡之后并且具有在所述路由軌跡中的所述第一路由軌跡處終結(jié)的對應(yīng)的第一末端,所述無回路路由拓撲具有所述路由軌跡并且包括所述目的地設(shè)備、零個或更多個均具有僅一個數(shù)據(jù)鏈路的葉節(jié)點、和所述多個接合節(jié)點。
9.如權(quán)利要求8所述的方法,其中創(chuàng)建所述路由軌跡中的所述第二路由軌跡包括: 識別所述第一有向無環(huán)圖中的用于到達所述接合節(jié)點中的第一接合節(jié)點的第二有向無環(huán)圖、所述基礎(chǔ)結(jié)構(gòu)節(jié)點中的所述第一基礎(chǔ)結(jié)構(gòu)節(jié)點中的所述第一接合節(jié)點、所述路由軌跡中的所述第二路由軌跡的第一末端;以及 在所述第二有向無環(huán)圖中識別新的接合節(jié)點,所述新的接合節(jié)點具有用于到達所述目的地設(shè)備的新的非疊合路徑并且與所述接合節(jié)點中的所述第一接合節(jié)點不同,所述新的接合節(jié)點提供到所述路由軌跡中的所述第二路由軌跡的第二末端的所述非疊合路徑。
10.一種裝置,包括: 處理器電路,被配置用于為計算網(wǎng)絡(luò)創(chuàng)建無回路路由拓撲,所述無回路路由拓撲包括用于到達目的地設(shè)備的多個路由軌跡,每一個路由軌跡包括作為所述路由軌跡的第一末端的第一網(wǎng)絡(luò)設(shè)備、作為所述路由軌跡的第二末端的第二網(wǎng)絡(luò)設(shè)備、以及至少第三網(wǎng)絡(luò)設(shè)備,所述至少第三網(wǎng)絡(luò)設(shè)備被配置用于沿著所述路由軌跡經(jīng)由所述路由軌跡的第一末端或第二末端中的任意一個向所述目的地設(shè)備路由任意網(wǎng)絡(luò)流量; 存儲器電路,被配置用于存儲與所述路由軌跡相關(guān)聯(lián)的參數(shù);以及 設(shè)備接口電路,被配置用于將與所述路由軌跡相關(guān)聯(lián)的至少所選擇的參數(shù)輸出到第二裝置,用于所述無回路路由拓撲的部署。
11.如權(quán)利要求10所述的裝置,其中每一個路由軌跡的第一和第二末端均在所述目的地設(shè)備、與所述目的地設(shè)備直接耦接的第二網(wǎng)絡(luò)節(jié)點、或者另一個路由軌跡的具有用于到達所述目的地設(shè)備的至少兩個非疊合路徑的接合節(jié)點之一處終結(jié)。
12.如權(quán)利要求11所述的裝置,其中所述處理器電路被配置用于基于下述各項創(chuàng)建所述無回路路由拓撲: 創(chuàng)建所述路由軌跡中的第一路由軌跡,作為具有在所述目的地設(shè)備處終結(jié)的對應(yīng)的第一末端的基礎(chǔ)結(jié)構(gòu)軌跡;以及 創(chuàng)建所述路由軌跡中的第二路由軌跡,作為在所述路由軌跡中的所述第一路由軌跡之后的、具有在所述路由軌跡中的所述第一路由軌跡處終結(jié)的對應(yīng)的第一末端的基礎(chǔ)結(jié)構(gòu)軌跡,所述路由軌跡中的所述第二路由軌跡包括與所述路由軌跡中的所述第一路由軌跡的網(wǎng)絡(luò)設(shè)備中的任意一個不同的網(wǎng)絡(luò)設(shè)備。
13.如權(quán)利要求10所述的裝置,其中所述無回路路由拓撲確保即使在所述無回路路由拓撲中遇到鏈路故障,具有兩個數(shù)據(jù)鏈路的所述無回路路由拓撲中的網(wǎng)絡(luò)設(shè)備中的任意一個也能夠經(jīng)由所述路由軌跡中的至少一個到達所述目的地設(shè)備。
14.如權(quán)利要求10所述的裝置,其中所述路由軌跡中的至少第一路由軌跡還包括被識別為中間接合節(jié)點并且與對應(yīng)的第三網(wǎng)絡(luò)設(shè)備相鄰的第四網(wǎng)路設(shè)備,所述中間接合節(jié)點包括兩個可反轉(zhuǎn)鏈路和零個或更多個來自所述路由軌跡中的所述第一路由軌跡的任意其他網(wǎng)絡(luò)設(shè)備的向內(nèi)定向的鏈路,每一個可反轉(zhuǎn)鏈路是可反轉(zhuǎn)的而不在所述無回路路由拓撲中創(chuàng)建回路。
15.如權(quán)利要求14所述的裝置,其中每一個路由軌跡還包括一個且僅一個軌跡光標(biāo),所述一個且僅一個軌跡光標(biāo)提供對指引所述網(wǎng)絡(luò)流量沿著所述路由軌跡并且遠離具有所述軌跡光標(biāo)的占有權(quán)的任意網(wǎng)絡(luò)設(shè)備的排他控制權(quán),所述第三或第四網(wǎng)絡(luò)設(shè)備之一基于所述軌跡光標(biāo)的占有權(quán)控制所述網(wǎng)絡(luò)流量沿著對應(yīng)的路由軌跡。
16.如權(quán)利要求15所述的裝置,其中所述第三網(wǎng)絡(luò)設(shè)備基于所述對應(yīng)的路由軌跡中的檢測到的故障,獲取所述軌跡光標(biāo)的占有權(quán),以在所述對應(yīng)的路由軌跡中繼續(xù)路由所述網(wǎng)絡(luò)流量,所述占有權(quán)先前由所述第四網(wǎng)絡(luò)設(shè)備擁有。
17.如權(quán)利要求10所述的裝置,其中所述處理器電路被配置用于基于下述各項生成所述無回路路由拓撲: 生成用于到達所述目的地設(shè)備的第一有向無環(huán)圖; 在所述第一有向無環(huán)圖中識別兩個或更多個接合節(jié)點,所述兩個或更多個接合節(jié)點中的每一個具有用于到達所述目的地設(shè)備的至少兩個非疊合路徑,所述識別包括識別一個或多個可反轉(zhuǎn)鏈路,所述一個或多個可反轉(zhuǎn)鏈路在所述接合節(jié)點之間,并且能夠被沿著所述非疊合路徑之一反轉(zhuǎn)而不將回路引入到所述無回路拓撲中; 創(chuàng)建包括所述接合節(jié)點中的兩個或更多個和一個或多個可反轉(zhuǎn)鏈路的所述基礎(chǔ)結(jié)構(gòu)軌跡中的第一基礎(chǔ)結(jié)構(gòu)軌跡,所述基礎(chǔ)結(jié)構(gòu)軌跡中的所述第一基礎(chǔ)結(jié)構(gòu)軌跡具有在所述目的地設(shè)備處終結(jié)的對應(yīng)的第一末端;以及 創(chuàng)建所述路由軌跡中的第二路由軌跡,所述路由軌跡中的所述第二路由軌跡在所述路由軌跡中的所述第一路由軌跡之后并且具有在所述路由軌跡中的所述第一路由軌跡處終結(jié)的對應(yīng)的第一末端,所述無回路路由拓撲具有所述路由軌跡,并且包括所述目的地設(shè)備、零個或更多個均具有僅一個數(shù)據(jù)鏈路的葉節(jié)點、和所述多個接合節(jié)點。
18.如權(quán)利要求17所述的裝置,其中所述處理器電路被配置用于基于下述各項創(chuàng)建所述路由軌跡中的所述第二路由軌跡: 識別所述第一有向無環(huán)圖中的用于到達所述接合節(jié)點中的第一接合節(jié)點的第二有向無環(huán)圖、所述基礎(chǔ)結(jié)構(gòu)節(jié)點中的所述第一基礎(chǔ)結(jié)構(gòu)節(jié)點中的所述第一接合節(jié)點、所述路由軌跡中的所述第二路由軌跡的第一末端;以及 在所述第二有向無環(huán)圖中識別新的接合節(jié)點,所述新的接合節(jié)點具有用于到達所述目的地設(shè)備的新的非疊合路徑并且與所述接合節(jié)點中的所述第一接合節(jié)點不同,所述新的接合節(jié)點提供到所述路由軌跡中的所述第二路由軌跡的第二末端的所述非疊合路徑。
19.被編碼在一個或多個非暫時性有形介質(zhì)中的用于執(zhí)行的邏輯,并且所述邏輯當(dāng)被執(zhí)行時,用于: 在計算網(wǎng)絡(luò)中創(chuàng)建無回路路由拓撲,所述無回路路由拓撲包括用于到達目的地設(shè)備的多個路由軌跡,每一個路由軌跡包括作為所述路由軌跡的第一末端的第一網(wǎng)絡(luò)設(shè)備、作為所述路由軌跡的第二末端的第二網(wǎng)絡(luò)設(shè)備、以及至少第三網(wǎng)絡(luò)設(shè)備,所述至少第三網(wǎng)絡(luò)設(shè)備被配置用于沿著所述路由軌跡經(jīng)由所述路由軌跡的第一末端或第二末端中的任意一個向所述目的地設(shè)備路由任意網(wǎng)絡(luò)流量;以及使得所述網(wǎng)絡(luò)流量沿著所述路由軌跡中的至少一個被轉(zhuǎn)發(fā)到所述目的地設(shè)備。
20.如權(quán)利要求19所述的邏輯,其中每一個路由軌跡的第一和第二末端均在所述目的地設(shè)備、與所述目的地設(shè)備直接耦接的第二網(wǎng)絡(luò)節(jié)點、或者另一個路由軌跡的具有用于到達所述目的地設(shè)備的至少兩個非疊合路徑的接合節(jié)點之一處終結(jié)。
【文檔編號】H04L12/705GK103493441SQ201280019187
【公開日】2014年1月1日 申請日期:2012年5月23日 優(yōu)先權(quán)日:2011年5月23日
【發(fā)明者】帕斯卡爾·蒂貝爾, 帕特里斯·貝拉卡巴, 德克·安特尤尼斯, 埃里克·米歇爾·萊維-阿貝格諾里 申請人:思科技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
嘉定区| 济源市| 定南县| 武汉市| 同德县| 金阳县| 紫云| 龙井市| 吉首市| 永兴县| 共和县| 平阴县| 修水县| 广河县| 汪清县| 商河县| 淳化县| 和静县| 鄯善县| 日照市| 海晏县| 临江市| 萝北县| 固原市| 鄂伦春自治旗| 庆安县| 沈丘县| 延边| 玛纳斯县| 台中县| 班玛县| 南召县| 商丘市| 澄江县| 区。| 大荔县| 梅州市| 惠水县| 大姚县| 怀来县| 任丘市|