專(zhuān)利名稱(chēng):用于控制對(duì)路由數(shù)據(jù)的通告的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在數(shù)據(jù)傳輸網(wǎng)絡(luò)中控制從路由器向其它路由器通告路由數(shù)據(jù)的方法和設(shè)備。此外,本發(fā)明涉及用于在數(shù)據(jù)傳輸網(wǎng)絡(luò)中控制從路由器向其它路由器通告路由數(shù)據(jù)的計(jì)算機(jī)程序。此外,本發(fā)明涉及能夠向其它路由器通告路由數(shù)據(jù)的路由器。
背景技術(shù):
路由協(xié)議是指定路由器如何相互通信來(lái)分發(fā)使其能夠在數(shù)據(jù)傳輸網(wǎng)絡(luò)中選擇路由的信息的協(xié)議。每一個(gè)路由器僅具有直接附接至其的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域的先驗(yàn)知識(shí)。 路由協(xié)議首先在最接近的鄰居路由器當(dāng)中通告該信息,并且然后遍及數(shù)據(jù)傳輸網(wǎng)絡(luò)。通過(guò)這種方式,路由器獲得數(shù)據(jù)傳輸網(wǎng)絡(luò)的拓?fù)涞闹R(shí)。例如,在邊界網(wǎng)關(guān)協(xié)議(“BGP”)下,在路由器處從其鄰居路由器接收到的前綴和其相關(guān)屬性被首先組織成傳入信息的鄰接路由信息庫(kù)“Adj_Rib_h”。該信息庫(kù)然后被刪余(be primed),使得例如不必要的重復(fù)被移除。 該結(jié)果構(gòu)成本地信息庫(kù)“Loc_Rib”。根據(jù)適當(dāng)策略,向鄰居路由器通告在Loc_Rib中包含的前綴和其相關(guān)屬性,以便使鄰居路由器意識(shí)到經(jīng)由考慮的路由器可訪問(wèn)的網(wǎng)絡(luò)區(qū)域,即,與前綴相對(duì)應(yīng)的子網(wǎng)絡(luò)。傳統(tǒng)上,執(zhí)行對(duì)鄰居路由器的通告,使得對(duì)于每一個(gè)鄰居路由器創(chuàng)建傳出信息的鄰接路由信息庫(kù)“Adj_Rib_0ut”。每一個(gè)Adj_Rib_0ut邏輯上是要向與該特定 Adj_Rib_0ut有關(guān)的鄰居路由器通告的前綴和其相關(guān)屬性表。例如,Adj_Rib_0ut可以是鏈接列表,其中在構(gòu)成Adj_Rib_0ut的列表上,每一個(gè)前綴與指向下一前綴的正向指針和指向前一前綴的反向指針相關(guān)聯(lián)。對(duì)于每一個(gè)鄰居路由器構(gòu)造Adj_Rib_0ut,使得適于該鄰居路由器的策略被應(yīng)用于在Loc_Rib中包含的前綴和其相關(guān)屬性。對(duì)于每一個(gè)鄰居路由器, 通告過(guò)程沿著與該鄰居路由器有關(guān)的Adj_Rib_0ut前進(jìn),使得仍然要被通告的那些前綴和其相關(guān)聯(lián)的屬性被發(fā)送給考慮中的鄰居路由器。與在此簡(jiǎn)短描述的通告過(guò)程相關(guān)聯(lián)的問(wèn)題是當(dāng)數(shù)據(jù)傳輸網(wǎng)絡(luò)的大小增長(zhǎng)時(shí),Adj_Rib_0ut所需的總存儲(chǔ)器空間增長(zhǎng)非常強(qiáng)勁。這是由于以下事實(shí)當(dāng)數(shù)據(jù)傳輸網(wǎng)絡(luò)的大小增長(zhǎng)時(shí),Adj_Rib_0ut的數(shù)量和每一個(gè)Adj_Rib_0ut 中的條目的數(shù)量?jī)烧呔黾?,并且因此存?chǔ)器消耗與這些兩個(gè)數(shù)量的乘積成比例。因此,可縮放性是有限的。
發(fā)明內(nèi)容
下面呈現(xiàn)了簡(jiǎn)化的發(fā)明內(nèi)容,以便提供對(duì)各種發(fā)明實(shí)施例的一些方面的基本理解。本發(fā)明內(nèi)容并不是本發(fā)明的窮盡概述。其并不意在識(shí)別本發(fā)明的關(guān)鍵性或決定性元素, 也不意在詳述本發(fā)明的范圍。作為本發(fā)明的示例性實(shí)施例的更加詳細(xì)的描述的前序,下面的發(fā)明內(nèi)容僅僅以簡(jiǎn)化的形式呈現(xiàn)本發(fā)明的一些概念。根據(jù)本發(fā)明的第一方面,提供了用于控制從第一路由器向第二路由器通告路由數(shù)據(jù)的新的方法,路由數(shù)據(jù)包括與經(jīng)由第一路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域有關(guān)的前綴。該方法包括-維護(hù)前綴的主要列表,使得在主要列表上,每一個(gè)前綴具有前任(predecessor)禾口 / 或繼任(successor),-維護(hù)指示符向量,使得前綴中的每一個(gè)與指示符向量中的一個(gè)相關(guān)聯(lián),每一個(gè)指示符向量包含用于第二路由器中的每一個(gè)的數(shù)據(jù)項(xiàng),以及該指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)指示是否要向與該數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的第二路由器通告與該指示符向量相關(guān)聯(lián)的前綴,-對(duì)于第二路由器中的每一個(gè),維護(hù)指向所述前綴中的特定一個(gè)前綴的主要處理指針,所述特定一個(gè)前綴與和該第二路由器有關(guān)的通告過(guò)程的主導(dǎo)狀態(tài)相關(guān),當(dāng)向與主要處理指針相關(guān)聯(lián)的第二路由器通告前綴時(shí),所述主要處理指針在前綴主要列表上向前移動(dòng),以及-關(guān)于每一個(gè)第二路由器,基于與對(duì)應(yīng)于和該第二路由器有關(guān)的主要處理指針的位置的前綴相關(guān)聯(lián)的指示符向量,確定是否需要向該第二路由器通告該前綴。例如,與前綴有關(guān)的指示符向量可以是比特(bit)映射,其例如具有用于第二路由器中的每一個(gè)的下面兩比特?cái)?shù)據(jù)項(xiàng)第一比特,用于指示是否要向所涉及的第二路由器通告前綴以及還可能其屬性;以及第二比特,用于指示是否已經(jīng)向所述第二路由器通告了所述前綴以及還可能其屬性。因此,對(duì)于所有第二路由器的通告過(guò)程可以使用同一前綴主要列表。由于不需要對(duì)于第二路由器中的每一個(gè)分別維護(hù)自身的前綴列表,而僅僅維護(hù)指示符向量中的第二路由器特定的條目,所以所需要的存儲(chǔ)器空間比與在本文檔中的背景技術(shù)部分中描述的傳統(tǒng)方法結(jié)合所需的存儲(chǔ)器空間顯著更小。結(jié)合IPv4 (網(wǎng)際協(xié)議版本4)和IPv6 (網(wǎng)際協(xié)議版本6),典型地,前綴被定義為地址和網(wǎng)絡(luò)掩碼的長(zhǎng)度。在VPN(虛擬專(zhuān)用網(wǎng))的情況下,前綴可以進(jìn)一步包括路由標(biāo)識(shí)符 (“RD”)。結(jié)合BGP(邊界網(wǎng)關(guān)協(xié)議),前綴可以被看作唯一識(shí)別與經(jīng)由考慮的路由器可訪問(wèn)的設(shè)備或網(wǎng)絡(luò)區(qū)域有關(guān)的路由信息的密鑰。根據(jù)本發(fā)明的第二方面,提供了用于控制從第一路由器向第二路由器通告路由數(shù)據(jù)的新的設(shè)備,路由數(shù)據(jù)包括與經(jīng)由第一路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域有關(guān)的前綴。該設(shè)備包括處理器,其被布置成-維護(hù)前綴的主要列表,使得在主要列表上,每一個(gè)前綴具有前任和/或繼任,-維護(hù)指示符向量,使得前綴中的每一個(gè)與指示符向量中的一個(gè)相關(guān)聯(lián),每一個(gè)指示符向量包含用于第二路由器中的每一個(gè)的數(shù)據(jù)項(xiàng),以及該指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)指示是否要向與該數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的第二路由器通告與該指示符向量相關(guān)聯(lián)的前綴,-對(duì)于第二路由器中的每一個(gè),維護(hù)指向前綴中的特定一個(gè)前綴的主要處理指針, 所述特定一個(gè)前綴與和該第二路由器有關(guān)的通告過(guò)程的主導(dǎo)狀態(tài)相關(guān),當(dāng)向與主要處理指針相關(guān)聯(lián)的第二路由器通告前綴時(shí),所述主要處理指針在前綴的主要列表上向前移動(dòng),以及-關(guān)于每一個(gè)第二路由器,基于與對(duì)應(yīng)于和該第二路由器有關(guān)的主要處理指針的位置的前綴相關(guān)聯(lián)的指示符向量,確定是否需要向該第二路由器通告該前綴。根據(jù)本發(fā)明的第三方面,提供了新的路由器,其包括-用于連接到數(shù)據(jù)傳輸鏈路的數(shù)據(jù)傳輸端口,-用于支持路由協(xié)議的處理系統(tǒng),以及-根據(jù)本發(fā)明的、用于控制從路由器向其它路由器通告路由數(shù)據(jù)的設(shè)備,路由數(shù)據(jù)與路由協(xié)議有關(guān),并且包括與經(jīng)由路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域有關(guān)的前綴,
其中,處理系統(tǒng)被布置成作為對(duì)設(shè)備已經(jīng)確定需要向這些其它路由器通告這些前綴的情況的響應(yīng),向其它路由器中的一個(gè)或多個(gè)通告前綴中的一個(gè)或多個(gè)。根據(jù)本發(fā)明的第四方面,提供了用于控制從第一路由器向第二路由器通告路由數(shù)據(jù)的新的計(jì)算機(jī)程序,路由數(shù)據(jù)包括與經(jīng)由第一路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域有關(guān)的前綴。該計(jì)算機(jī)程序包括計(jì)算機(jī)可執(zhí)行的指令,所述計(jì)算機(jī)可執(zhí)行的指令用于控制可編程處理器用于-維護(hù)前綴的主要列表,使得在主要列表上,每一個(gè)前綴具有前任和/或繼任,-維護(hù)指示符向量,使得前綴中的每一個(gè)與指示符向量中的一個(gè)相關(guān)聯(lián),每一個(gè)指示符向量包含用于第二路由器中的每一個(gè)的數(shù)據(jù)項(xiàng),以及該指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)指示是否要向與該數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的第二路由器通告與該指示符向量相關(guān)聯(lián)的前綴,-對(duì)于第二路由器中的每一個(gè),維護(hù)指向前綴中的特定一個(gè)前綴的主要處理指針, 所述特定一個(gè)前綴與和該第二路由器有關(guān)的通告過(guò)程的主導(dǎo)狀態(tài)相關(guān),當(dāng)向與主要處理指針相關(guān)聯(lián)的第二路由器通告前綴時(shí),所述主要處理指針在前綴的主要列表上向前移動(dòng),以及-關(guān)于每一個(gè)第二路由器,基于與對(duì)應(yīng)于和該第二路由器有關(guān)的主要處理指針的位置的前綴相關(guān)聯(lián)的指示符向量,確定是否需要向該第二路由器通告該前綴。根據(jù)本發(fā)明的第五方面,提供了一種新的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品包括編碼有根據(jù)本發(fā)明的計(jì)算機(jī)程序的非易失性計(jì)算機(jī)可讀介質(zhì),例如光盤(pán)(“CD”)。在所附從屬權(quán)利要求中描述了本發(fā)明的多個(gè)示例性實(shí)施例。就構(gòu)造和操作方法兩者而言,當(dāng)結(jié)合附圖閱讀時(shí),從下面的具體示例性實(shí)施例的描述將最佳地理解本發(fā)明的各種示例性實(shí)施例,以及其附加目的和優(yōu)點(diǎn)。動(dòng)詞“包括”在本文檔中用作開(kāi)放式限制,其既不排除也不要求另外未記載的特征的存在。除非另外明確說(shuō)明,在從屬權(quán)利要求中記載的特征可相互自由組合。
在下面參考附圖更加詳細(xì)地解釋了本發(fā)明的示例性實(shí)施例和其優(yōu)點(diǎn),在附圖中圖1示出了根據(jù)本發(fā)明的實(shí)施例的包括路由器的示例性數(shù)據(jù)傳輸網(wǎng)絡(luò)的示意圖示,圖2示出了在根據(jù)本發(fā)明的實(shí)施例的用于在數(shù)據(jù)傳輸網(wǎng)絡(luò)中控制從路由器向其它路由器通告路由數(shù)據(jù)的方法中使用的示例性數(shù)據(jù)結(jié)構(gòu)的示意圖示,以及圖3示出了根據(jù)本發(fā)明的實(shí)施例的用于在數(shù)據(jù)傳輸網(wǎng)絡(luò)中控制從路由器向其它路由器通告路由數(shù)據(jù)的方法的流程圖。
具體實(shí)施例方式圖1示出了根據(jù)本發(fā)明的實(shí)施例的包括路由器101的示例性數(shù)據(jù)傳輸網(wǎng)絡(luò)的示意圖示。數(shù)據(jù)傳輸網(wǎng)絡(luò)可以例如但不一定是因特網(wǎng),以及部分121可以表示因特網(wǎng)的自治系統(tǒng)(“AS”),以及部分122可以表示因特網(wǎng)的其余部分。數(shù)據(jù)傳輸網(wǎng)絡(luò)也可以是不與公共因特網(wǎng)連接的孤立網(wǎng)絡(luò)。數(shù)據(jù)傳輸網(wǎng)絡(luò)的部分121包括路由器101,以及還包括路由器102、 103、104、105和106。這些路由器與物理數(shù)據(jù)傳輸鏈路110、111、112、113、114和115互連,其每一個(gè)是電纜或光纜或無(wú)線電鏈路,以及路由器優(yōu)選地被布置成支持網(wǎng)際協(xié)議。此外,例如,路由器可以被布置成支持多協(xié)議標(biāo)簽交換(“MPLS”)。如圖1中所示,終端設(shè)備107和 108可以連接到數(shù)據(jù)傳輸網(wǎng)絡(luò)。除路由器101-106之外,數(shù)據(jù)傳輸網(wǎng)絡(luò)的部分121可以包括在圖1中未示出的其它路由器和網(wǎng)絡(luò)設(shè)備,和/或部分121可以連接到在圖1中未示出的終端設(shè)備。這在圖1中用繪制為虛線繼續(xù)的數(shù)據(jù)傳輸鏈路圖示,諸如數(shù)據(jù)傳輸鏈路116。路由器101-106中的每一個(gè)包括用于連接到數(shù)據(jù)傳輸鏈路的數(shù)據(jù)傳輸端口,以及用于支持一個(gè)或多個(gè)路由協(xié)議的處理系統(tǒng),所述一個(gè)或多個(gè)路由協(xié)議首先在最接近的鄰居路由器之間通告路由數(shù)據(jù),并且然后遍及數(shù)據(jù)傳輸網(wǎng)絡(luò)。路由數(shù)據(jù)包括與經(jīng)由考慮的路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域(即子網(wǎng)絡(luò))有關(guān)的前綴。因此,路由器獲得數(shù)據(jù)傳輸網(wǎng)絡(luò)的拓?fù)涞闹R(shí)。在不失一般性的情況下,我們可以聚焦于考慮路由器101。路由器101包括設(shè)備117,其用于控制從路由器101向其鄰居路由器102和103,以及同樣向其在數(shù)據(jù)傳輸網(wǎng)絡(luò)的部分122中的鄰居路由器通告路由數(shù)據(jù)。應(yīng)當(dāng)注意到,結(jié)合某些路由協(xié)議,術(shù)語(yǔ)“鄰居路由器”并不限于僅僅是指在其之間只有一個(gè)躍距(hop)的“最接近的鄰居路由器”,而在鄰居之間可以有更多躍距。因此,結(jié)合某些路由協(xié)議,路由器101還可以向路由器104-106 通告路由數(shù)據(jù),即,路由器101可以向其它路由器102-106通告路由數(shù)據(jù)。路由器101的處理系統(tǒng)被布置成作為對(duì)設(shè)備117已經(jīng)確定需要向這些鄰居路由器通告這些前綴的情況的響應(yīng),向鄰居路由器中的一個(gè)或多個(gè)通告前綴中的一個(gè)或多個(gè)。路由器101可以被布置成例如支持用于與數(shù)據(jù)傳輸網(wǎng)絡(luò)的部分122協(xié)作的外部邊界網(wǎng)關(guān)協(xié)議(eBGP),在這種情況下,路由數(shù)據(jù)包括外部邊界網(wǎng)關(guān)協(xié)議的路由數(shù)據(jù);以及支持用于在數(shù)據(jù)傳輸網(wǎng)絡(luò)的部分 121內(nèi)部操作的內(nèi)部邊界網(wǎng)關(guān)協(xié)議(iBGP),在這種情況下,路由數(shù)據(jù)包括內(nèi)部邊界網(wǎng)關(guān)協(xié)議的路由數(shù)據(jù)。在iBGP的情況下,路由器101可以不僅向其最接近的鄰居路由器102和 103,而且向是在兩個(gè)躍距后的鄰居的路由器104-106通告路由數(shù)據(jù)。用于控制從路由器110向其鄰居路由器通告路由數(shù)據(jù)的設(shè)備117包括處理器,其被布置成維護(hù)前綴的主要列表,使得在主要列表上,每一個(gè)前綴具有前任和/或繼任。例如,主要列表可以是鏈接列表,其中每一個(gè)前綴與指向在主要列表中為下一個(gè)的繼任前綴的正向指針和指向在主要列表中為前一個(gè)的前任前綴的反向指針相關(guān)聯(lián)。設(shè)備117的處理器被布置成維護(hù)指示符向量,使得前綴中的每一個(gè)與指示符向量中的一個(gè)相關(guān)聯(lián)。每一個(gè)指示符向量包含數(shù)據(jù)項(xiàng),使得對(duì)于鄰居路由器中的每一個(gè)存在數(shù)據(jù)項(xiàng),以及每一個(gè)數(shù)據(jù)項(xiàng)指示是否要向與考慮的數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的鄰居路由器通告與考慮的指示符向量相關(guān)聯(lián)的前綴??梢曰诶缗c前綴有關(guān)的屬性來(lái)構(gòu)造指示符向量。設(shè)備117的處理器被布置成對(duì)于鄰居路由器中的每一個(gè)維護(hù)指向前綴中的特定一個(gè)前綴的主要處理指針,所述特定一個(gè)前綴與和該鄰居路由器有關(guān)的通告過(guò)程的主導(dǎo)狀態(tài)相關(guān)。隨著向與該主要處理指針相關(guān)聯(lián)的鄰居路由器通告前綴,每一個(gè)主要處理指針在前綴的主要列表上向前移動(dòng)。關(guān)于每一個(gè)主要處理指針,設(shè)備117的處理器被布置成基于與對(duì)應(yīng)于該主要處理指針的位置的前綴相關(guān)聯(lián)的指示符向量,確定是否需要向與該主要處理指針有關(guān)的鄰居路由器通告該前綴。 例如,指示符向量中的每一個(gè)數(shù)據(jù)項(xiàng)可以包括第一變量,其用于指示與該指示符向量有關(guān)的前綴是否是要向與該數(shù)據(jù)項(xiàng)有關(guān)的鄰居路由器通告的前綴;以及第二變量,其用于指示是否已經(jīng)向與該數(shù)據(jù)項(xiàng)有關(guān)的鄰居路由器通告了與該指示符向量有關(guān)的前綴。第一變量可以是單個(gè)比特,以及因此,第二變量也可以是單個(gè)比特。例如,設(shè)備117的處理器可以被布置成作為對(duì)第一變量指示與主要處理指針的位置相對(duì)應(yīng)的前綴是要向該鄰居路由器通告的前綴以及第二變量指示尚未向該鄰居路由器通告該前綴的情況的響應(yīng),確定需要向?qū)?yīng)的鄰居路由器通告該前綴。優(yōu)選地,該處理器進(jìn)一步被布置成將該確定的結(jié)果遞送給被布置成運(yùn)行路由協(xié)議的處理系統(tǒng)。在遞送該結(jié)果之后,第二變量可以被設(shè)置成指示已經(jīng)向考慮的鄰居路由器通告了考慮的前綴,或已排序(order)要向考慮的鄰居路由器通告考慮的前綴。設(shè)備117的處理器可以用一個(gè)或多個(gè)處理器單元來(lái)實(shí)現(xiàn),其每一個(gè)可以是提供有適當(dāng)軟件的可編程處理器單元。此外,一個(gè)或多個(gè)相同處理器單元可以用于實(shí)現(xiàn)設(shè)備117和被布置成運(yùn)行路由協(xié)議的處理系統(tǒng)兩者。圖2示出了可以用于在圖1中所示的數(shù)據(jù)傳輸網(wǎng)絡(luò)中控制從路由器101向其鄰居路由器通告路由數(shù)據(jù)的示例性數(shù)據(jù)結(jié)構(gòu)的示意圖示。每一個(gè)前綴與包含前綴特定的指示符向量Y和指針數(shù)據(jù)Ptd的數(shù)據(jù)字段相關(guān)聯(lián)。借助于指針數(shù)據(jù),將前綴的主要列表作為鏈接列表維護(hù)。在圖2中,Y(I)是前綴1的指示符向量以及Ptd(I)是前綴1的指針數(shù)據(jù),Y(2) ^P Ptd(2)是前綴2的指示符向量和指針數(shù)據(jù),..·,以及Y(n)和Ptd(η)是前綴η的指示符向量和指針數(shù)據(jù)。每一個(gè)指針數(shù)據(jù)Ptd(i),其中i = 1,2,. . .,n,可以包含例如下述數(shù)據(jù)Ptd_Pr(i)=指向包含前綴i和其屬性的存儲(chǔ)器區(qū)域的指針,Ptd_F(i)=指向包含主要列表上的下一前綴的指針數(shù)據(jù)Ptd(i+1)的存儲(chǔ)器區(qū)域的正向指針,如果前綴i是主要列表上的最后一個(gè),則該指針是空指針,以及Ptd_B(i)=指向包含主要列表上的前一前綴的指針數(shù)據(jù)Ptd(i-l)的存儲(chǔ)器區(qū)域的反向指針,如果前綴i是主要列表上的第一個(gè),則該指針是空指針。每一個(gè)指示符向量Y(i),其中i = l,2,...n,包含用于每一個(gè)鄰居路由器NR(j), 其中j = 1,2,. . .,m的數(shù)據(jù)項(xiàng)Y(i,j)。例如,鄰居路由器NR(I)可以是圖1中所示的路由器 102,以及鄰居路由器NR⑵可以是圖1中所示的路由器103,以及鄰居路由器NR(3),..., 以及NR(m)可以是圖1中所示的數(shù)據(jù)傳輸網(wǎng)絡(luò)的部分122中的路由器。數(shù)據(jù)項(xiàng)Y(i,j)例如可以包含第一比特,其指示是否要向鄰居路由器j通告前綴i ;以及第二比特,其指示是否已經(jīng)向鄰居路由器NR(j)通告了前綴i、或排序要向鄰居路由器NR(j)通告前綴i。對(duì)于鄰居路由器NR(j),其中j = 1,2, ...,m,中的每一個(gè),存在主要處理指針 HP (j),主要處理指針HP (j)指向與和鄰居路由器NR(j)有關(guān)的通告過(guò)程的主導(dǎo)狀態(tài)相關(guān)的前綴。例如,在圖2中所示的示例性情況下,鄰居路由器NR(I)的主要處理指針HP(I)通過(guò)指向前綴2的指針數(shù)據(jù)PtdQ)來(lái)指向前綴2。當(dāng)與鄰居路由器NR(I)有關(guān)的通告過(guò)程進(jìn)行時(shí),主要處理指針HP(I)被移位到指向前綴3的指針數(shù)據(jù)PtdCB)。因此,隨著向鄰居路由器NR⑴通告前綴,主要處理指針HP(I)在前綴的主要列表上向前移動(dòng),即在圖2中向下移動(dòng)。主要處理指針HP (j),其中j = 1,2,...,m,可以被布置成例如指向最后向適當(dāng)鄰居路由器通告的前綴,或又例如,其可以被布置成指向當(dāng)前處于確定中的前綴,所述確定涉及需要向其通告該前綴的鄰居路由器,如果存在的話。例如,關(guān)于主要處理指針HP (1),可能的是,前綴2是最后向適當(dāng)鄰居路由器,如果存在的話,通告的前綴,以及前綴3當(dāng)前處于確定中,所述確定涉及應(yīng)當(dāng)向其通告前綴3的鄰居路由器,如果存在的話。同樣可能的是,前綴 2當(dāng)前處于確定中,所述確定涉及應(yīng)當(dāng)向其通告前綴2的鄰居路由器,如果存在的話。原則上,在主要處理指針和處于上述確定中的前綴之間,任何預(yù)定的偏移是可能的。在不失一般性的情況下,我們可以聚焦于下述情況主要處理指針指向每次處于上述確定中的前綴。例如,在圖2中所示的情況下,基于數(shù)據(jù)項(xiàng)V(3,2),處于確定中的是是否需要向鄰居路由器 NR (2)通告前綴3。在根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成維護(hù)一個(gè)或多個(gè)相似性列表,使得每一個(gè)相似性列表包含前綴,所述前綴的屬性基于預(yù)定的準(zhǔn)則是相似的。屬性可以例如但不一定指示路由的AS路徑(自治系統(tǒng))、下一躍距、源、路由目標(biāo)、識(shí)別VPN資格(虛擬專(zhuān)用網(wǎng))的擴(kuò)展社區(qū)、和/或與由考慮的前綴表示的子網(wǎng)有關(guān)或與經(jīng)由考慮的路由器到該子網(wǎng)的路由有關(guān)的其它問(wèn)題。通過(guò)相互比較前綴的對(duì)應(yīng)屬性或通過(guò)將適當(dāng)?shù)墓:瘮?shù)用于分類(lèi),前綴可以被分類(lèi)為相似性列表。設(shè)備的處理器被布置成作為對(duì)需要向?qū)?yīng)的鄰居路由器通告與主要處理指針的位置相對(duì)應(yīng)的前綴的情況的響應(yīng),以及基于指示符向量,確定是否需要向?qū)?yīng)的鄰居路由器通告在包含與主要處理指針的位置相對(duì)應(yīng)的前綴的相似性列表上的其它前綴中的一個(gè)或多個(gè)。參考圖2,例如,可以如下所述來(lái)實(shí)現(xiàn)上述相似性列表和與其有關(guān)的操作。每一個(gè)指針數(shù)據(jù)Ptd (i),其中i = 1,2,...,n,例如可以進(jìn)一步包含下列數(shù)據(jù)Ptd_S(i)=指向包含前綴k的指針數(shù)據(jù)Ptd(k)的存儲(chǔ)器區(qū)域的相似性指針,所述前綴K具有與前綴i相似的屬性,并且在主要列表上前綴i之后是最接近的,即k = min{l, 1 > i以及具有與前綴i相似的屬性的前綴1},如果前綴1是相似性列表上的最后一個(gè),則該指針是空指針。因此,每一個(gè)相似性列表是鏈接列表,使得該相似性列表上的每一個(gè)前綴與指向該相似性列表上的下一前綴的指針相關(guān)聯(lián)。為了說(shuō)明起見(jiàn),我們考慮鄰居路由器NR(3)。主要處理指針HP(3)指向前綴2的指針數(shù)據(jù)Ptd(2)。數(shù)據(jù)項(xiàng)Y(2,3)指示是否需要向鄰居路由器NR(3)通告前綴2以及可能其屬性。如果需要向鄰居路由器NR(3)通告前綴2,則我們檢查相似性指針Ptd_S(2)是否指向任何其他前綴的指針數(shù)據(jù)或Ptd_S (2)是否是空指針。 現(xiàn)在我們假設(shè)Ptd_S(2)指向前綴kl的指針數(shù)據(jù),即,前綴kl屬于與前綴2相同的相似性列表。我們從數(shù)據(jù)項(xiàng)Y(kl,3)檢查是否需要向鄰居路由器NR(3)通告前綴kl。此后,我們從前綴kl的指針數(shù)據(jù)Ptd(kl)檢查Ptd_S(kl)是否指向任何其他前綴的指針數(shù)據(jù)或Ptd_ S(kl)是否是空指針?,F(xiàn)在我們假設(shè)Ptd_S(kl)指向前綴k2的指針數(shù)據(jù),S卩,前綴k2屬于與前綴2和前綴kl相同的相似性列表。我們從數(shù)據(jù)項(xiàng)Y(k2,3)檢查是否需要向鄰居路由器 NR(3)通告前綴k2。此后,我們從前綴k2的指針數(shù)據(jù)Ptd(k2)檢查Ptd_S(k2)是否指向任何其他前綴的指針數(shù)據(jù)或Ptd_S(k2)是否是空指針。如此繼續(xù),直到到達(dá)具有作為相似性指針的空指針的指針數(shù)據(jù),或直到已經(jīng)找到需要向鄰居路由器NR(3)通告的預(yù)定數(shù)量的前綴。有利地,需要向鄰居路由器NR(3)通告的前綴被收集成傳送給鄰居路由器NR(3)的單個(gè)通告消息,即IP分組。對(duì)于向鄰居路由器NR(3)通告的每一個(gè)前綴,數(shù)據(jù)項(xiàng)Y(前綴號(hào), 3)被設(shè)置成指示已經(jīng)向鄰居路由器NR(3)通告了該前綴。此后,主要處理指針HP (3)被更新成指向前綴3的指針數(shù)據(jù)Ptd(3)。上述數(shù)據(jù)項(xiàng)被設(shè)置成指示已經(jīng)向鄰居路由器NR(3)通告了上述前綴,以便例如當(dāng)主要處理指針HP(3)在通告過(guò)程的某個(gè)階段到達(dá)Ptd(kl)時(shí),避免不必要的重復(fù)通告。優(yōu)選地,通告消息包含僅僅一次對(duì)在通告消息中包含的前綴而言相同的屬性,以便避免通告消息中的不必要的重復(fù)數(shù)據(jù)。當(dāng)借助于相似性指針Ptd_S,以上述方式實(shí)現(xiàn)相似性列表時(shí),每一個(gè)相似性列表的前綴按照與主要列表上的前綴的相互順序相對(duì)應(yīng)的相互順序,并且按照該相互順序來(lái)檢查包含與主要處理指針的位置相對(duì)應(yīng)的前綴的相似性列表的前綴。在根據(jù)本發(fā)明的實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成作為對(duì)前綴已被認(rèn)為是需要向鄰居路由器通告的前綴的情況的響應(yīng),運(yùn)行特定于該鄰居路由器的策略函數(shù),使得該前綴和其屬性是該策略函數(shù)的輸入量。處理器進(jìn)一步被布置成基于用策略函數(shù)獲得的策略結(jié)果,允許或不允許向該鄰居路由器通告該前綴。策略函數(shù)例如可以確定不必向與討論中的策略函數(shù)有關(guān)的鄰居路由器通告與數(shù)據(jù)傳輸網(wǎng)絡(luò)的某些區(qū)域有關(guān)的前綴。由于策略函數(shù),不必以相同方式對(duì)待在同一相似性列表上出現(xiàn)的所有前綴。當(dāng)審查相似性列表并且策略函數(shù)指示不以與早前從相似性列表中找到前綴的相同的方式來(lái)處理考慮的前綴時(shí),該前綴可以被忽視,并且過(guò)程可以針對(duì)相似性列表上的下一前綴繼續(xù)或針對(duì)該相似性列表的過(guò)程可以停止,即,不再?gòu)脑撓嗨菩粤斜頇z查前綴。甚至可能的是,策略函數(shù)改變前綴的屬性。在根據(jù)本發(fā)明的實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成維護(hù)策略組,使得每一個(gè)策略組包含與同一策略函數(shù)有關(guān)的這樣的鄰居路由器。該設(shè)備被布置成關(guān)于每一個(gè)前綴和每一個(gè)策略組,存儲(chǔ)與該前綴、其屬性以及與該策略組有關(guān)的策略函數(shù)相對(duì)應(yīng)的策略結(jié)果。處理器被布置成作為對(duì)需要向?qū)儆谠摬呗越M的任何鄰居路由器通告該前綴的情況的響應(yīng),使用已存儲(chǔ)的策略結(jié)果,而不是運(yùn)行策略函數(shù)。對(duì)于所有策略組或僅僅對(duì)于其中鄰居路由器的數(shù)量超過(guò)預(yù)定限額的這樣的策略組,可以實(shí)現(xiàn)對(duì)策略結(jié)果的上述存儲(chǔ)和重用。參考圖2,例如,可以如下所述實(shí)現(xiàn)上述策略組和與其有關(guān)的操作。除前綴特定的指示符向量Y和前綴特定的指針數(shù)據(jù)Ptd外,每一個(gè)前綴特定的數(shù)據(jù)字段包含前綴特定的策略結(jié)果HL在圖2中所示的示例性情況下,假設(shè)存在三個(gè)不同的策略函數(shù)。第一策略函數(shù)與鄰居路由器的第一子組有關(guān),第二策略函數(shù)與鄰居路由器的第二子組有關(guān),以及第三策略函數(shù)與鄰居路由器的第三子組有關(guān)。例如,圖2中所示的數(shù)據(jù)元素冊(cè)(2,1)可以表示與前綴2、其屬性以及第一策略函數(shù)相對(duì)應(yīng)的策略結(jié)果,以及因此,例如數(shù)據(jù)元素ra(n,3)可以表示與前綴η、其屬性以及第三策略函數(shù)相對(duì)應(yīng)的策略結(jié)果。對(duì)于每一個(gè)鄰居路由器NR(I),...,NR(m),可以有基址指針,借助于該基址指針,可以對(duì)于每一個(gè)前綴和每一個(gè)鄰居路由器構(gòu)造指向相關(guān)策略結(jié)果的指針P。在圖2中,數(shù)據(jù)元素Bp可以表示基址指針。關(guān)于前綴i和鄰居路由器j的指針P(i,j),其中i = 1,2,. . .,η以及j =1,2, ...,m原則上可以被構(gòu)造為P (i,j) = Bp(j)+Ptd(i)的起始地址+預(yù)定偏移。還可能的是,每一個(gè)前綴特定的數(shù)據(jù)字段包含指向關(guān)于考慮的前綴和其屬性的所有或僅僅最大策略組的策略結(jié)果的指針。每一個(gè)鄰居路由器與指示所述指針中的哪一個(gè)與該鄰居路由器有關(guān)的數(shù)據(jù)相關(guān)聯(lián)。在這種情況下,圖2中所示的數(shù)據(jù)元素ra(i,k),其中i = 1,. . .,η 以及k= 1,2或3,可以是指向關(guān)于每一個(gè)前綴1,...,η和其屬性的三個(gè)最大策略組的策略結(jié)果的指針,以及在圖2中所示的數(shù)據(jù)元素Bp(j),其中j = 1,. . .,m,可以是指示指針 PR (i,1),PR (i,2)和PR (i,3)中的哪一個(gè)與鄰居路由器j有關(guān)的數(shù)據(jù)。在根據(jù)本發(fā)明的實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成將其主要處理指針指向前綴的主要列表上的同一前綴的鄰居路由器相互關(guān)聯(lián)以形成鏈接列表,并且使用單個(gè)指針來(lái)表示在鏈接列表上的所有鄰居路由器的主要處理指針。在圖2中所示的示例性情況下,鄰居路由器NR(1)、NR(3)和NR(m)的主要處理指針HP(1)、HP(3)和HP(m)分別經(jīng)由指向指針數(shù)據(jù)Ptd(2)來(lái)指向前綴2。因此,這些鄰居路由器可以用共同主要處理指針來(lái)處理,并且通過(guò)將這些鄰居路由器組織成與共同主要處理指針有關(guān)的鏈接列表,可以將這些鄰居路由器與共同主要處理指針相關(guān)聯(lián)。優(yōu)選地,鄰居路由器的這些鏈接列表是動(dòng)態(tài)的,因?yàn)榕c不同鄰居路由器有關(guān)的通告過(guò)程可能沿著前綴主要列表以不同的速度進(jìn)行。在根據(jù)本發(fā)明的實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成將其主要處理指針指向前綴的主要列表上的同一前綴的鄰居路由器相互關(guān)聯(lián)以形成鏈接列表,并且將該前綴與指向該鏈接列表的列表指針相關(guān)聯(lián)。在圖2中所示的示例性情況下,鄰居路由器NR(I)、NR(3)和NR(m)的主要處理指針HP(1)、HP(3)和HP(m)分別經(jīng)由指向指針數(shù)據(jù)PtdQ)來(lái)指向前綴2。因此,將這些鄰居路由器組織成鏈接列表,并且將前綴2 與指向該鏈接列表的列表指針相關(guān)聯(lián)。僅僅一個(gè)共同主要處理指針需要用于控制與NR(I)、 NR(3)和NR(m)有關(guān)的通告過(guò)程,因?yàn)樵阪溄恿斜碇薪o出了與共同主要處理指針有關(guān)的鄰居路由器。因此,在通告過(guò)程中,將鄰居路由器NR(1)、NRC3)和NR(m)作為組來(lái)處理。在根據(jù)本發(fā)明的實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成作為對(duì)已經(jīng)從鄰居路由器中的一個(gè)接收到新的前綴和其屬性并且該新的前綴不同于前綴的主要列表上的現(xiàn)有前綴中的任何一個(gè)的情況的響應(yīng),將新的前綴插入前綴的主要列表的末尾,以及基于新的前綴的屬性來(lái)為新的前綴形成新的指示符向量。在圖2中所示的示例性情況下,指針數(shù)據(jù)Ptd(n+1)包含指向包含新的前綴n+1和其屬性的存儲(chǔ)器區(qū)域的指針卩丨(1_ 1~(11+1)。指針數(shù)據(jù)?丨(1(11)的正向指針Ptd_F(n)是空指針,因?yàn)榍熬Yη是主要列表上的最后一個(gè)。通過(guò)將正向指針Ptd_F(n)設(shè)置成指向包含新的前綴的指針數(shù)據(jù)Ptd(n+1) 的存儲(chǔ)器區(qū)域,通過(guò)將指針數(shù)據(jù)Ptd(n+1)的反向指針設(shè)置成指向包含前綴η的指針數(shù)據(jù) Ptd(η)的存儲(chǔ)器區(qū)域,并且通過(guò)為新的前綴n+1構(gòu)造指示符向量Υ(η+1)和還可能策略結(jié)果 PR (n+1,1),…,PR (n+1,3),將新的前綴n+1添加到數(shù)據(jù)結(jié)構(gòu)。指針數(shù)據(jù)Ptd (η)的正向指針Ptd_F(n)被設(shè)置為空指針。在根據(jù)本發(fā)明的實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成作為對(duì)已經(jīng)改變了前綴的屬性中的一個(gè)或多個(gè)的情況的響應(yīng),從前綴的主要列表移除該前綴,以及將該前綴插入前綴的主要列表的末尾,以及基于該前綴的屬性為該前綴形成新的指示符向量。關(guān)于圖2中所示的示例性情況,為了說(shuō)明起見(jiàn),我們假設(shè)已經(jīng)改變了前綴2的屬性,并且因此必須向適當(dāng)鄰居路由器重新通告前綴2和其屬性。因此,包含指針數(shù)據(jù)PtcK2)、指示符向量Y(2)和策略結(jié)果冊(cè)(2,1),PR(2,3)的數(shù)據(jù)字段從主要列表的其當(dāng)前位置移除,更新了指示符向量Y(2)和與PR (2,1),..., PR (2,3)相對(duì)應(yīng)的策略結(jié)果, 并且將更新后的數(shù)據(jù)字段添加到主要列表的末尾。所述移除和添加操作包括下列動(dòng)作將正向指針Ptd_F(l)設(shè)置成指向Ptd(3),將反向指針Ptd_B(3)設(shè)置成指向Ptd(I),將反向指針Ptd_B⑵設(shè)置成指向Ptd(η),將正向指針Ptd_F(n)設(shè)置成指向Ptd(2),以及將正向指針Ptd_FO)設(shè)置為空指針。將主要處理指針HP(I)、HPC3)和HP(m)或表示其全部的共同指針更新成指向PtdCB)。還可能的是,將策略結(jié)果設(shè)置成非現(xiàn)有狀態(tài),以及在通告過(guò)程期間構(gòu)造并且存儲(chǔ)更新后的策略結(jié)果,而不是在上述前綴更新期間對(duì)策略結(jié)果進(jìn)行更新。優(yōu)選地,每一個(gè)前綴特定的數(shù)據(jù)字段包括指向其主要處理指針指向討論中的前綴的那些鄰居路由器的列表的列表指針。優(yōu)選地,上述鄰居路由器的列表是鏈接列表。指針數(shù)據(jù)Ptd(2)可以包含指向列表的列表指針,該列表指示其主要處理指針指向PtdQ)的鄰居路由器是 NR(I)、NR(3)、和NR(m)。因此,簡(jiǎn)單明了的是,找出必須被更新成指向Ptd(3)的主要處理指針,以及不需要檢查所有主要處理指針來(lái)找到必須被更新成指向Ptd(3)的那些。應(yīng)當(dāng)注意到,圖2中所示的數(shù)據(jù)結(jié)構(gòu)不是唯一可能的替代。例如,如果沒(méi)有使用相似性列表,則可以使數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)化,使得每一個(gè)數(shù)據(jù)項(xiàng)V(i,j),其中i = 1,2,...,n以及j =1,2, ...,m,是僅僅一個(gè)比特,因?yàn)樵谶@種情況下,主要處理指針的位置能夠表達(dá)是否已通告了要被通告的某一前綴和還可能的其屬性。在根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成維護(hù)VPN(虛擬專(zhuān)用網(wǎng))特定的前綴主要列表,以及相互有關(guān)并且根據(jù)上述原則并行運(yùn)行不同VPN的通告過(guò)程。在這種情況下,每一個(gè)前綴可以包括地址、網(wǎng)絡(luò)掩碼的長(zhǎng)度以及路由標(biāo)識(shí)符(“RD”)??梢詫?duì)于不同VPN分別維護(hù)根據(jù)圖2的數(shù)據(jù)結(jié)構(gòu)。在根據(jù)本發(fā)明的實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成對(duì)于鄰居路由器的預(yù)定義組維護(hù)組特定的前綴主要列表,以及相互有關(guān)并且根據(jù)上述原則并行運(yùn)行不同組的通告過(guò)程??梢詫?duì)于鄰居路由器的不同組分別維護(hù)根據(jù)圖2的數(shù)據(jù)結(jié)構(gòu)。通過(guò)對(duì)鄰居路由器分組并且對(duì)這些組進(jìn)行并行處理,使通告對(duì)于多處理器環(huán)境可縮放是可能的。在根據(jù)本發(fā)明的實(shí)施例的用于控制通告路由數(shù)據(jù)的設(shè)備中,該設(shè)備的處理器被布置成對(duì)于每一個(gè)本地配置的VRF實(shí)例(虛擬路由和轉(zhuǎn)發(fā))的鄰居路由器維護(hù)地址族特定的前綴主要列表,以及相互有關(guān)并且根據(jù)上述原則并行運(yùn)行每一個(gè)VRF實(shí)例中的不同地址族的通告過(guò)程??梢詫?duì)于不同VRF實(shí)例中的不同地址族分別維護(hù)根據(jù)圖2的數(shù)據(jù)結(jié)構(gòu)。通過(guò)并行處理每一個(gè)VRF實(shí)例的地址族,使通告對(duì)于多處理器環(huán)境可縮放是可能的。地址族可以包含例如IPv4單播路由、IPv4VPN路由、IPv6單播路由或PWE3自動(dòng)發(fā)現(xiàn)路由(邊緣到邊緣偽線仿真)。圖3示出了根據(jù)本發(fā)明的實(shí)施例的用于在數(shù)據(jù)傳輸網(wǎng)絡(luò)中控制從第一路由器向其鄰居路由器通告路由數(shù)據(jù)的方法的流程圖,其中路由數(shù)據(jù)包括與經(jīng)由第一路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域有關(guān)的前綴。該方法包括-在階段301中,維護(hù)前綴的主要列表,使得在主要列表上,每一個(gè)前綴具有前任和/或繼任,-在階段302中,維護(hù)指示符向量,使得每一個(gè)前綴與指示符向量中的一個(gè)相關(guān)聯(lián),每一個(gè)指示符向量包含用于鄰居路由器中的每一個(gè)的數(shù)據(jù)項(xiàng),以及該指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)指示是否要向與該數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的鄰居路由器通告與該指示符向量相關(guān)聯(lián)的前綴,-在階段303中,對(duì)于鄰居路由器中的每一個(gè),維護(hù)指向前綴中的特定一個(gè)前綴的主要處理指針,所述特定一個(gè)前綴與和該鄰居路由器有關(guān)的通告過(guò)程的主導(dǎo)狀態(tài)相關(guān),當(dāng)向與主要處理指針相關(guān)聯(lián)的鄰居路由器通告前綴時(shí),所述主要處理指針在前綴的主要列表上向前移動(dòng),以及-在階段304中,關(guān)于每一個(gè)鄰居路由器,基于與對(duì)應(yīng)于和該鄰居路由器有關(guān)的主要處理指針的位置的前綴相關(guān)聯(lián)的指示符向量,確定是否需要向該鄰居路由器通告該
在根據(jù)本發(fā)明的實(shí)施例的方法中,每一個(gè)指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)包括-第一變量,其用于指示是否要向與該數(shù)據(jù)項(xiàng)有關(guān)的鄰居路由器通告前綴與該指示符向量有關(guān)的前綴,以及-第二變量,其用于指示是否已經(jīng)向與該數(shù)據(jù)項(xiàng)有關(guān)的鄰居路由器通告了與該指示符向量有關(guān)的前綴。其中如果第一變量指示與主要處理指針的位置相對(duì)應(yīng)的前綴是要向該鄰居路由器通告的前綴,并且第二變量指示尚未向該鄰居路由器通告該前綴,則該前綴被認(rèn)為是需要向?qū)?yīng)的鄰居路由器通告的前綴,以及該方法包括作為對(duì)向該鄰居路由器通告該前綴的響應(yīng),將第二變量設(shè)置成指示已經(jīng)向該鄰居路由器通告了該前綴。在根據(jù)本發(fā)明的實(shí)施例的方法中,對(duì)一個(gè)或多個(gè)相似性列表進(jìn)行維護(hù),使得每一個(gè)相似性列表包含其屬性基于預(yù)定的準(zhǔn)則是相似的這樣的前綴,以及作為對(duì)需要向?qū)?yīng)的鄰居路由器通告與主要處理指針的位置相對(duì)應(yīng)的前綴的情況的響應(yīng),基于指示符向量來(lái)確定是否需要向?qū)?yīng)的鄰居路由器通告包含與主要處理指針的位置相對(duì)應(yīng)的前綴的相似性列表上的一個(gè)或多個(gè)其它前綴。根據(jù)本發(fā)明的實(shí)施例的方法進(jìn)一步包括-使每一個(gè)相似性列表上的前綴保持與主要列表上的前綴的相互順序相對(duì)應(yīng)的相互順序,以及-將其它前綴中的一個(gè)或多個(gè)選擇為是在相似性列表上、按照前綴的相互順序,在與主要處理指針的位置相對(duì)應(yīng)的前綴之后的前綴。根據(jù)本發(fā)明的實(shí)施例的方法,包括作為對(duì)前綴中的一個(gè)已經(jīng)被認(rèn)為是需要向鄰居路由器中的一個(gè)通告的前綴的情況的響應(yīng),運(yùn)行特定于該鄰居路由器的策略函數(shù),使得該前綴和其屬性是該策略函數(shù)的輸入量,以及基于用策略函數(shù)獲得的策略結(jié)果,允許或不允許向該鄰居路由器通告該前綴。根據(jù)本發(fā)明的實(shí)施例的方法包括-維護(hù)維護(hù)策略組,使得每一個(gè)策略組包含與同一策略函數(shù)有關(guān)的這樣的鄰居路
由器,-對(duì)于每一個(gè)前綴和每一個(gè)策略組,存儲(chǔ)與該前綴、其屬性以及與該策略組有關(guān)的策略函數(shù)相對(duì)應(yīng)的策略結(jié)果,以及-作為對(duì)需要向?qū)儆谠摬呗越M的任何鄰居路由器通告該前綴的情況的響應(yīng),使用已存儲(chǔ)的策略結(jié)果,而不是運(yùn)行策略函數(shù)。對(duì)于所有策略組或僅僅對(duì)于其中鄰居路由器的數(shù)量超過(guò)預(yù)定限額的這樣的策略組,可以實(shí)現(xiàn)對(duì)策略結(jié)果的上述存儲(chǔ)和重用。根據(jù)本發(fā)明的實(shí)施例的方法,包括將其主要處理指針指向前綴的主要列表上的同一前綴的鄰居路由器相互關(guān)聯(lián)以形成鏈接列表,以及使用單個(gè)指針來(lái)表示在鏈接列表上的所有鄰居路由器的主要處理指針。根據(jù)本發(fā)明的實(shí)施例的方法,包括作為對(duì)已經(jīng)從鄰居路由器中的一個(gè)接收到新的前綴和其屬性,并且新的前綴不同于前綴的主要列表上的現(xiàn)有前綴中的任何一個(gè)的情況的響應(yīng),將新的前綴插入前綴的主要列表的末尾,以及基于該新的前綴的屬性為新的前綴形成新的指示符向量。
根據(jù)本發(fā)明的實(shí)施例的方法,包括作為對(duì)已經(jīng)改變了前綴的屬性中的一個(gè)或多個(gè)的情況的響應(yīng),從前綴的主要列表移除該前綴,以及將該前綴插入前綴的主要列表的末尾,以及基于該前綴的屬性為該前綴形成新的指示符向量。在根據(jù)本發(fā)明的實(shí)施例的方法中,前綴的主要列表是鏈接列表。根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)程序,包括軟件模塊,其用于控制從第一路由器向其鄰居路由器通告路由數(shù)據(jù),其中路由數(shù)據(jù)包括與經(jīng)由第一路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域有關(guān)的前綴。該軟件模塊包括計(jì)算機(jī)可執(zhí)行的指令,所述計(jì)算機(jī)可執(zhí)行的指令用于控制可編程處理器用于-維護(hù)前綴的主要列表,使得在主要列表上,每一個(gè)前綴具有前任和/或繼任,-維護(hù)指示符向量,使得前綴中的每一個(gè)與指示符向量中的一個(gè)相關(guān)聯(lián),每一個(gè)指示符向量包含用于鄰居路由器中的每一個(gè)的數(shù)據(jù)項(xiàng),以及該指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)指示是否要向與該數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的鄰居路由器通告與該指示符向量相關(guān)聯(lián)的前綴,-對(duì)于鄰居路由器中的每一個(gè),維護(hù)指向前綴中的特定一個(gè)前綴的主要處理指針, 該特定一個(gè)前綴與和該鄰居路由器有關(guān)的通告過(guò)程的主導(dǎo)狀態(tài)相關(guān),當(dāng)向與主要處理指針相關(guān)聯(lián)的鄰居路由器通告前綴時(shí),所述主要處理指針在前綴的主要列表上向前移動(dòng),以及-關(guān)于每一個(gè)鄰居路由器,基于與對(duì)應(yīng)于和該鄰居路由器有關(guān)的主要處理指針的位置的前綴相關(guān)聯(lián)的指示符向量,確定是否需要向該鄰居路由器通告該前綴。根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)程序產(chǎn)品包括編碼有根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì),例如光盤(pán)(“CD”)。根據(jù)本發(fā)明的實(shí)施例的信號(hào)被編碼成攜帶定義根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)程序的信息。在上面給出的描述中提供的具體示例不應(yīng)當(dāng)被解釋為限制性的。因此,本發(fā)明不僅限于上述實(shí)施例,許多變體是可能的。
權(quán)利要求
1. 一種用于控制從第一路由器向第二路由器通告路由數(shù)據(jù)的設(shè)備(117),所述路由數(shù)據(jù)包括與經(jīng)由所述第一路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域有關(guān)的前綴,以及所述設(shè)備包括處理器,所述處理器被布置成維護(hù)所述前綴的主要列表,使得在所述主要列表上,每一個(gè)前綴具有前任和/或繼任,其特征在于,所述處理器進(jìn)一步被布置成-維護(hù)指示符向量,使得所述前綴中的每一個(gè)與所述指示符向量中的一個(gè)相關(guān)聯(lián),每一個(gè)指示符向量包含用于所述第二路由器中的每一個(gè)的數(shù)據(jù)項(xiàng),以及所述指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)指示是否要向與所述數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的所述第二路由器通告與所述指示符向量相關(guān)聯(lián)的所述前綴,-對(duì)于所述第二路由器中的每一個(gè),維護(hù)指向所述前綴中的特定一個(gè)前綴的主要處理指針,所述特定一個(gè)前綴與和所述第二路由器有關(guān)的通告過(guò)程的主導(dǎo)狀態(tài)相關(guān),當(dāng)向與所述主要處理指針相關(guān)聯(lián)的所述第二路由器通告所述前綴時(shí),所述主要處理指針在所述前綴的所述主要列表上向前移動(dòng),以及-關(guān)于每一個(gè)第二路由器,基于與對(duì)應(yīng)于和所述第二路由器有關(guān)的所述主要處理指針的位置的所述前綴相關(guān)聯(lián)的所述指示符向量,確定是否需要向所述第二路由器通告所述前
2.根據(jù)權(quán)利要求1所述的設(shè)備,其中,每一個(gè)指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)包括-第一變量,所述第一變量用于指示與所述指示符向量有關(guān)的所述前綴是否是要向與所述數(shù)據(jù)項(xiàng)有關(guān)的所述第二路由器通告的前綴,以及-第二變量,所述第二變量用于指示是否已經(jīng)向與所述數(shù)據(jù)項(xiàng)有關(guān)的所述第二路由器通告了與所述指示符向量有關(guān)的所述前綴,其中,所述處理器被布置成作為對(duì)所述第一變量指示與所述主要處理指針的所述位置相對(duì)應(yīng)的所述前綴是要向所述第二路由器通告的前綴并且所述第二變量指示尚未向所述第二路由器通告所述前綴的情況的響應(yīng),確定需要向?qū)?yīng)的第二路由器通告所述前綴, 以及所述處理器被布置成作為對(duì)向所述第二路由器通告所述前綴的響應(yīng),將所述第二變量設(shè)置成指示已經(jīng)向所述第二路由器通告了所述前綴。
3.根據(jù)權(quán)利要求1或2所述的設(shè)備,其中,所述處理器被布置成維護(hù)一個(gè)或多個(gè)相似性列表,使得每一個(gè)相似性列表包含其屬性基于預(yù)定的準(zhǔn)則是相似的這樣的前綴;以及作為對(duì)需要向所述對(duì)應(yīng)的第二路由器通告與所述主要處理指針的所述位置相對(duì)應(yīng)的所述前綴的情況的響應(yīng),基于所述指示符向量來(lái)確定是否需要向所述對(duì)應(yīng)的第二路由器通告包含與所述主要處理指針的所述位置相對(duì)應(yīng)的所述前綴的所述相似性列表上的其它前綴中的一個(gè)或多個(gè)。
4.根據(jù)權(quán)利要求3所述的設(shè)備,其中,所述處理器被布置成一使每一個(gè)相似性列表上的所述前綴保持與所述主要列表上的所述前綴的相互順序相對(duì)應(yīng)的相互順序,以及-將所述其它前綴中的所述一個(gè)或多個(gè)選擇為是在所述相似性列表上、按照所述前綴的所述相互順序,在與所述主要處理指針的所述位置相對(duì)應(yīng)的所述前綴之后的前綴。
5.根據(jù)權(quán)利要求1-4中的任何一個(gè)所述的設(shè)備,其中,所述處理器被布置成作為對(duì)所述前綴中的一個(gè)被認(rèn)為是需要向所述第二路由器中的一個(gè)通告的前綴的情況的響應(yīng),運(yùn)行特定于所述第二路由器的策略函數(shù),使得所述前綴和其屬性是所述策略函數(shù)的輸入量;以及基于所述策略函數(shù)的策略結(jié)果,允許或不允許向所述第二路由器通告所述前綴。
6.根據(jù)權(quán)利要求5所述的設(shè)備,其中,所述處理器被布置成維護(hù)維護(hù)策略組,使得每一個(gè)策略組包含與同一策略函數(shù)有關(guān)的這樣的第二路由器,所述設(shè)備被布置成關(guān)于每一個(gè)前綴和所述策略組中的至少一個(gè),存儲(chǔ)與所述前綴、其屬性以及與所述策略組有關(guān)的所述策略函數(shù)相對(duì)應(yīng)的策略結(jié)果,以及所述處理器被布置成作為對(duì)需要向?qū)儆谒霾呗越M的任何第二路由器通告所述前綴的情況的響應(yīng),使用已存儲(chǔ)的策略結(jié)果,而不是運(yùn)行所述策略函數(shù)。
7.根據(jù)權(quán)利要求1-6中的任何一個(gè)所述的設(shè)備,其中,所述處理器被布置成將其主要處理指針指向所述前綴的所述主要列表上的同一前綴的所述第二路由器相互關(guān)聯(lián)以形成鏈接列表;以及使用單個(gè)指針來(lái)表示在所述鏈接列表上的所有所述第二路由器的所述主要處理指針。
8.根據(jù)權(quán)利要求1-7中的任何一個(gè)所述的設(shè)備,其中,所述處理器被布置成作為對(duì)已經(jīng)從所述第二路由器中的一個(gè)接收到新的前綴和其屬性,并且所述新的前綴不同于所述前綴的所述主要列表上的現(xiàn)有前綴中的任何一個(gè)的情況的響應(yīng),將所述新的前綴插入所述前綴的所述主要列表的末尾,以及基于所述新的前綴的屬性為所述新的前綴形成新的指示符向量。
9.根據(jù)權(quán)利要求1-8中的任何一個(gè)所述的設(shè)備,其中,所述處理器被布置成作為對(duì)已經(jīng)改變了前綴的屬性中的一個(gè)或多個(gè)的情況的響應(yīng),從所述前綴的所述主要列表移除所述前綴,以及將所述前綴插入所述前綴的所述主要列表的末尾,以及基于所述前綴的屬性為所述前綴形成新的指示符向量。
10.根據(jù)權(quán)利要求1-9中的任何一個(gè)所述的設(shè)備,其中,所述處理器被布置成以鏈接列表的形式來(lái)維護(hù)所述前綴的所述主要列表。
11.一種路由器(101),包括:-數(shù)據(jù)傳輸端口,所述數(shù)據(jù)傳輸端口用于連接到數(shù)據(jù)傳輸鏈路,-處理系統(tǒng),所述處理系統(tǒng)用于支持路由協(xié)議,以及-根據(jù)權(quán)利要求1-10中的任何一個(gè)所述的設(shè)備(117),所述設(shè)備用于控制從所述路由器向其它路由器通告路由數(shù)據(jù),所述路由數(shù)據(jù)與所述路由協(xié)議有關(guān),并且包括與經(jīng)由所述路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域有關(guān)的前綴,其中所述處理系統(tǒng)被布置成向所述其它路由器中的一個(gè)或多個(gè)通告所述前綴中的一個(gè)或多個(gè),作為對(duì)所述設(shè)備已經(jīng)確定需要向這些其它路由器通告這些前綴的情況的響應(yīng)。
12.根據(jù)權(quán)利要求11所述的路由器,其中,所述處理系統(tǒng)被布置成支持外部邊界網(wǎng)關(guān)協(xié)議(eBGP),并且所述路由數(shù)據(jù)包括所述外部邊界網(wǎng)關(guān)協(xié)議的路由數(shù)據(jù)。
13.根據(jù)權(quán)利要求11或12所述的路由器,其中,所述處理系統(tǒng)被布置成支持內(nèi)部邊界網(wǎng)關(guān)協(xié)議(iBGP),并且所述路由數(shù)據(jù)包括所述內(nèi)部邊界網(wǎng)關(guān)協(xié)議的路由數(shù)據(jù)。
14.根據(jù)權(quán)利要求11-13中的任何一個(gè)所述的路由器,其中,所述處理系統(tǒng)包括一個(gè)或多個(gè)處理器單元,以及所述設(shè)備用所述處理器單元中的一個(gè)或多個(gè)來(lái)實(shí)現(xiàn)。
15.根據(jù)權(quán)利要求11-14中的任何一個(gè)所述的路由器,其中,所述處理系統(tǒng)被布置成支持多協(xié)議標(biāo)簽交換(MPLS)。
16.一種用于控制從第一路由器向第二路由器通告路由數(shù)據(jù)的方法,所述路由數(shù)據(jù)包括與經(jīng)由所述第一路由器可訪問(wèn)的數(shù)據(jù)傳輸網(wǎng)絡(luò)的區(qū)域有關(guān)的前綴,以及所述方法包括維護(hù)(301)所述前綴的主要列表,使得在所述主要列表上,每一個(gè)前綴具有前任和/或繼任, 其特征在于,所述方法進(jìn)一步包括-維護(hù)(30 指示符向量,使得所述前綴中的每一個(gè)與所述指示符向量中的一個(gè)相關(guān)聯(lián),每一個(gè)指示符向量包含用于所述第二路由器中的每一個(gè)的數(shù)據(jù)項(xiàng),以及所述指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)指示是否要向與所述數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的所述第二路由器通告與所述指示符向量相關(guān)聯(lián)的所述前綴,-對(duì)于所述第二路由器中的每一個(gè),維護(hù)(30 指向所述前綴中的特定一個(gè)前綴的主要處理指針,所述特定一個(gè)前綴與和所述第二路由器有關(guān)的通告過(guò)程的主導(dǎo)狀態(tài)相關(guān),當(dāng)向與所述主要處理指針相關(guān)聯(lián)的所述第二路由器通告所述前綴時(shí),所述主要處理指針在所述前綴的所述主要列表上向前移動(dòng),以及-關(guān)于每一個(gè)第二路由器,基于與對(duì)應(yīng)于和所述第二路由器有關(guān)的所述主要處理指針的位置的所述前綴相關(guān)聯(lián)的所述指示符向量,確定(304)是否需要向所述第二路由器通告所述前綴。
17.根據(jù)權(quán)利要求16所述的方法,其中,每一個(gè)指示符向量的每一個(gè)數(shù)據(jù)項(xiàng)包括-第一變量,所述第一變量用于指示與所述指示符向量有關(guān)的所述前綴是否是要向與所述數(shù)據(jù)項(xiàng)有關(guān)的所述第二路由器通告的前綴,以及-第二變量,所述第二變量用于指示是否已經(jīng)向與所述數(shù)據(jù)項(xiàng)有關(guān)的所述第二路由器通告了與所述指示符向量有關(guān)的所述前綴,其中,如果所述第一變量指示與所述主要處理指針的所述位置相對(duì)應(yīng)的所述前綴是要向所述第二路由器通告的前綴,并且所述第二變量指示尚未向所述第二路由器通告所述前綴,則所述前綴被認(rèn)為是需要向?qū)?yīng)的第二路由器通告的前綴,以及所述方法包括作為對(duì)向所述第二路由器通告所述前綴的響應(yīng),將所述第二變量設(shè)置成指示已經(jīng)向所述第二路由器通告了所述前綴。
18.根據(jù)權(quán)利要求16或17所述的方法,其中,維護(hù)一個(gè)或多個(gè)相似性列表,使得每一個(gè)相似性列表包含其屬性基于預(yù)定的準(zhǔn)則是相似的這樣的前綴,以及作為對(duì)需要向所述對(duì)應(yīng)的第二路由器通告與所述主要處理指針的所述位置相對(duì)應(yīng)的所述前綴的情況的響應(yīng),基于所述指示符向量來(lái)確定是否需要向所述對(duì)應(yīng)的第二路由器通告包含與所述主要處理指針的所述位置相對(duì)應(yīng)的所述前綴的所述相似性列表上的其它前綴中的一個(gè)或多個(gè)。
19.根據(jù)權(quán)利要求18所述的方法,其中,所述方法包括一使每一個(gè)相似性列表上的所述前綴保持與所述主要列表上的所述前綴的相互順序相對(duì)應(yīng)的相互順序,以及-將所述其它前綴中的所述一個(gè)或多個(gè)選擇為是在所述相似性列表上、按照所述前綴的所述相互順序,在與所述主要處理指針的所述位置相對(duì)應(yīng)的所述前綴之后的前綴。
20.根據(jù)權(quán)利要求16-19中的任何一個(gè)所述的方法,其中,所述方法包括作為對(duì)所述前綴中的一個(gè)已經(jīng)被認(rèn)為是需要向所述第二路由器中的一個(gè)通告的前綴的情況的響應(yīng),運(yùn)行特定于所述第二路由器的策略函數(shù),使得所述前綴和其屬性是所述策略函數(shù)的輸入量, 以及基于用所述策略函數(shù)獲得的策略結(jié)果,允許或不允許向所述第二路由器通告所述前
21.根據(jù)權(quán)利要求20所述的方法,其中,所述方法包括-維護(hù)策略組,使得每一個(gè)策略組包含與同一策略函數(shù)有關(guān)的這樣的第二路由器,-對(duì)于每一個(gè)前綴以及對(duì)于所述策略組中的至少一個(gè),存儲(chǔ)與所述前綴、其屬性以及與所述策略組有關(guān)的所述策略函數(shù)相對(duì)應(yīng)的策略結(jié)果,以及-作為對(duì)需要向?qū)儆谒霾呗越M的任何第二路由器通告所述前綴的情況的響應(yīng),使用已存儲(chǔ)的策略結(jié)果,而不是運(yùn)行所述策略函數(shù)。
22.根據(jù)權(quán)利要求16-21中的任何一個(gè)所述的方法,其中,所述方法包括將其主要處理指針指向所述前綴的所述主要列表上的同一前綴的所述第二路由器相互關(guān)聯(lián)以形成鏈接列表,以及使用單個(gè)指針來(lái)表示在所述鏈接列表上的所有所述第二路由器的所述主要處理指針。
23.根據(jù)權(quán)利要求16-22中的任何一個(gè)所述的方法,其中,所述方法包括作為對(duì)已經(jīng)從所述第二路由器中的一個(gè)接收到新的前綴和其屬性,并且所述新的前綴不同于所述前綴的所述主要列表上的現(xiàn)有前綴中的任何一個(gè)的情況的響應(yīng),將所述新的前綴插入所述前綴的所述主要列表的末尾,以及基于所述新的前綴的屬性來(lái)為所述新的前綴形成新的指示符向量。
24.根據(jù)權(quán)利要求16-23中的任何一個(gè)所述的方法,其中,所述方法包括作為對(duì)已經(jīng)改變了前綴的屬性中的一個(gè)或多個(gè)的情況的響應(yīng),從所述前綴的所述主要列表移除所述前綴,以及將所述前綴插入所述前綴的所述主要列表的末尾,以及基于所述前綴的屬性來(lái)為所述前綴形成新的指示符向量。
25.根據(jù)權(quán)利要求16-24中的任何一個(gè)所述的方法,其中,所述前綴的所述主要列表是鏈接列表。
全文摘要
提供了用于控制向鄰居路由器通告路由數(shù)據(jù)的方法。維護(hù)(301)前綴的列表,以及使每一個(gè)前綴與包含用于鄰居路由器中的每一個(gè)的數(shù)據(jù)項(xiàng)的自身指示符向量相關(guān)聯(lián)(302),使得數(shù)據(jù)項(xiàng)指示(304)是否要向所涉及的鄰居路由器通告所涉及的前綴。對(duì)于每一個(gè)鄰居路由器,存在(303)處理指針,其指向與和該鄰居路由器有關(guān)的通告過(guò)程的狀態(tài)相關(guān)的前綴,以及隨著向該鄰居路由器通告前綴,處理指針在前綴的列表上向前移動(dòng)。由于不需要對(duì)于每一個(gè)鄰居路由器分別維護(hù)自身的前綴的列表,而僅維護(hù)指示符向量中的鄰居路由器特定的條目,所以可以實(shí)現(xiàn)所需存儲(chǔ)器空間的節(jié)省。
文檔編號(hào)H04L12/56GK102404198SQ20111027930
公開(kāi)日2012年4月4日 申請(qǐng)日期2011年9月15日 優(yōu)先權(quán)日2010年9月15日
發(fā)明者維萊·哈利沃里 申請(qǐng)人:特拉博斯股份有限公司