專利名稱:路由器,管理數(shù)據(jù)傳送路徑的方法及其計(jì)算機(jī)程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及路由器,具體地,涉及一種用于通過(guò)使用樹(shù)型結(jié)構(gòu)來(lái)管理關(guān)于數(shù)據(jù)傳輸路徑的信息的裝置。本發(fā)明還涉及該裝置的方法和計(jì)算機(jī)實(shí)現(xiàn)該方法的程序。
圖1是常規(guī)路由器的方框圖。
圖1中示出的路由器50包括第一路由引擎(RE)10;第二路由引擎(RE)11;第三路由引擎(RE)12;守護(hù)程序(demon)路由軟件核心(RS-CORE)13,它將第一到第三路由引擎10到12提供的路徑合并,并且將該路徑寄存到后面提及的內(nèi)核14中;和內(nèi)核14,它將路由軟件核心13提供的路徑存儲(chǔ)在轉(zhuǎn)發(fā)路徑表中,進(jìn)而執(zhí)行路由控制。
第一至第三路由引擎10、11和12按照彼此不同的單點(diǎn)傳送協(xié)議來(lái)運(yùn)行。
路由軟件內(nèi)核(RS-CORE)13包括第一樹(shù)10A,存儲(chǔ)第一路由引擎10檢索的路徑;第二樹(shù)11A,存儲(chǔ)第二路由引擎11檢索的路徑;第三樹(shù)12A,存儲(chǔ)第三路由引擎12檢索的路徑;和最優(yōu)樹(shù)13A,存儲(chǔ)在存儲(chǔ)的第一到第三樹(shù)10A、11A和12A中發(fā)現(xiàn)的最佳路徑。
下面參考圖2到圖6解釋路由器50的工作情況。
圖2示出了七個(gè)路由器A到G通過(guò)網(wǎng)絡(luò)R1到R8彼此連接的網(wǎng)絡(luò)結(jié)構(gòu)。
當(dāng)路由器A將分組傳送到圖2所示的網(wǎng)絡(luò)結(jié)構(gòu)中的網(wǎng)絡(luò)R8時(shí),可以通過(guò)下面的三條路徑傳送分組。在第一路徑中,通過(guò)路由器B和E將分組傳送到網(wǎng)絡(luò)R8。在第二條路徑中,通過(guò)路由器C和E將分組傳送到網(wǎng)絡(luò)R8。在第三條路徑中,通過(guò)路由器D、F和E將分組傳送到網(wǎng)絡(luò)R8。
第一到第三路由引擎10到12按照彼此不同的路由協(xié)議來(lái)運(yùn)行。第一路由引擎10按照路由協(xié)議S檢索NEXTTHOP(B),作為去向目的地的路徑,也就是去向網(wǎng)絡(luò)R8的路徑,并且將該路徑NEXTTHOP(B)存儲(chǔ)到路由軟件核心13的第一樹(shù)10A中。第二路由引擎11按照路由協(xié)議T檢索NEXTTHOP(C),作為去向目的地的路徑,也就是去向網(wǎng)絡(luò)R8的路徑,并且將該路徑NEXTTHOP(C)存儲(chǔ)到路由軟件核心13的第二樹(shù)11A中。第三路由引擎12按照路由協(xié)議U檢索NEXTTHOP(D),作為去向目的地的路徑,也就是去向網(wǎng)絡(luò)R8的路徑,并且將該路徑NEXTTHOP(D)存儲(chǔ)到路由軟件核心13的第三樹(shù)12A中。
以下設(shè)在路由軟件核心13中第二路由引擎11具有最高優(yōu)先權(quán),第一路由引擎10具有第二最高優(yōu)先權(quán),而第三路由引擎12具有最低的優(yōu)先權(quán)。還設(shè)最佳路徑樹(shù)13A開(kāi)始沒(méi)有存儲(chǔ)路徑。
如圖3所示,當(dāng)?shù)谝宦酚梢?0將已經(jīng)由第一路由引擎10檢索的去向網(wǎng)絡(luò)R8的路徑NEXTTHOP(B)存儲(chǔ)在路由軟件核心13中時(shí),將該路徑NEXTTHOP(B)存儲(chǔ)在與第一路由引擎10相關(guān)的第一樹(shù)10A中。然后,將該路徑NEXTTHOP(B)存儲(chǔ)在最佳路徑樹(shù)13A中。由于在最佳路徑樹(shù)13A中沒(méi)有存儲(chǔ)去向網(wǎng)絡(luò)R8的路徑,所以將已經(jīng)由第一路由引擎10檢索的路徑NEXTTHOP(B)存儲(chǔ)在最佳樹(shù)13A中,而不執(zhí)行后面提及的比較。還將路徑NEXTTHOP(B)存儲(chǔ)在內(nèi)核14中。
如圖4所述,當(dāng)?shù)谌酚梢?2將已經(jīng)由第三路由引擎12檢索的去向網(wǎng)絡(luò)R8的路徑NEXTTHOP(D)存儲(chǔ)到路由軟件核心13中時(shí),將路徑NEXTTHOP(D)存儲(chǔ)在與第三路由引擎12有關(guān)的第三樹(shù)12A中。然后,路由軟件核心13試圖將該路徑NEXTTHOP(D)存儲(chǔ)在最佳路徑樹(shù)13A中。但是,由于由第一路由引擎10檢索的路徑NEXTTHOP(B)已經(jīng)存儲(chǔ)在最佳路徑樹(shù)13A中,路由軟件核心13比較第三路由引擎12的優(yōu)先權(quán)和第一路由引擎10的優(yōu)先權(quán)。由于第三路由引擎12的優(yōu)先權(quán)低于第一路由引擎10的優(yōu)先權(quán),所以不將第三路由引擎12檢索的路徑NEXTTHOP(D)存儲(chǔ)在最佳路徑樹(shù)13A中。
如圖5所示,當(dāng)?shù)诙酚梢?1將已經(jīng)由第二路由引擎11檢索的去向網(wǎng)絡(luò)R8的路徑NEXTTHOP(C)存儲(chǔ)到路由軟件核心13中時(shí),將路徑NEXTTHOP(C)存儲(chǔ)在與第二路由引擎11有關(guān)的第二樹(shù)11A中。然后,路由軟件核心13試圖將該路徑NEXTTHOP(C)存儲(chǔ)在最佳路由樹(shù)13A中。但是,由于由第一路由引擎10檢索的路徑NEXTTHOP(B)已經(jīng)存儲(chǔ)在最佳路徑樹(shù)13A中,路由軟件核心13比較第二路由引擎11的優(yōu)先權(quán)和第一路由引擎10的優(yōu)先權(quán)。由于第二路由引擎11的優(yōu)先權(quán)高于第一路由引擎10的優(yōu)先權(quán),所以路由軟件核心13將路徑NEXTTHOP(B)從最佳路徑樹(shù)13A中刪除,并且將已經(jīng)由第二路由引擎11檢索的路徑NEXTTHOP(C)存儲(chǔ)在最佳路徑樹(shù)13A中,作為去向網(wǎng)絡(luò)R8的最佳路徑。然后,將已經(jīng)由第一路由引擎10檢索的路徑NEXTTHOP(B)從內(nèi)核14中刪除,并且將第二路由引擎11檢索的路徑NEXTTHOP(C)存儲(chǔ)在內(nèi)核14中,作為去向網(wǎng)絡(luò)R8的最佳路徑。
下面解釋從最佳路徑樹(shù)13A中刪除已經(jīng)由第二路由引擎11檢索到的路徑NEXTTHOP(C)的過(guò)程。
首先,檢索第二樹(shù)11A,以確定路徑NEXTTHOP(C)存儲(chǔ)在第二樹(shù)11A中何處。然后,如圖6所示,從第二樹(shù)11A中刪除路徑NEXTTHOP(C)。
然后,檢索最佳樹(shù)13A,以確定路徑NEXTTHOP(C)存儲(chǔ)在最佳路徑樹(shù)13A中的何處。然后,如圖6所示,從最佳路徑樹(shù)13A中刪除路徑NEXTTHOP(C)。
由于僅僅由第二路由引擎11檢索的路徑NEXTTHOP(C)被存儲(chǔ)在最佳路徑樹(shù)13A中,在從最佳路徑樹(shù)13A中刪除路徑NEXTTHOP(C)之后,沒(méi)有去向網(wǎng)絡(luò)R8的最佳路徑存儲(chǔ)在最佳路徑樹(shù)13A中。由于任何去向網(wǎng)絡(luò)R8的最佳路徑都不再被存儲(chǔ)在最佳路徑樹(shù)13A中,所以從內(nèi)核14中刪除已經(jīng)由第二路由引擎11檢索的路徑NEXTTHOP(C)。
在此之后,在分別與第一和第三路由引擎10和12相關(guān)的第一和第三樹(shù)10A和12A中檢索去向網(wǎng)絡(luò)R8的路徑。然后,將通過(guò)檢索第一和第三樹(shù)10A和12A而找到的去向網(wǎng)絡(luò)R8的路徑存儲(chǔ)在最佳路徑樹(shù)13A,作為最佳路徑。
但是,圖1中所示上面提及的常規(guī)路由器50有一個(gè)問(wèn)題,如果從最佳路徑樹(shù)13A中刪除去向目的地的最佳路徑,則在新的最佳路徑存儲(chǔ)在最佳路徑樹(shù)13A中之前,將不可能向目的地傳送分組。因此,如果花費(fèi)較多的時(shí)間檢索新的最佳路徑并將其存儲(chǔ)在最佳路徑樹(shù)13A中,則經(jīng)過(guò)較長(zhǎng)的時(shí)間,分組都不會(huì)被傳送到目的地,這導(dǎo)致路由器50可靠性變差。
如果在巨大的網(wǎng)絡(luò)中檢索最佳路徑,則找到的最佳路徑樹(shù)也非常大。因此,不得不在這種巨大的樹(shù)中檢索去向目的地的路徑,并且必須在最佳路徑樹(shù)13A中檢索存儲(chǔ)被檢索的路徑的存儲(chǔ)區(qū)域。因此將該路徑存儲(chǔ)在最佳路徑13A中被檢索的存儲(chǔ)區(qū)域內(nèi)。
圖1中所示的上面提及的常規(guī)路由器50還有下面的問(wèn)題。如果多個(gè)路由引擎將去向共同目的地的路徑存儲(chǔ)在與路由引擎相關(guān)的樹(shù)中,則要從樹(shù)中刪除全部的路徑。這造成不必要地執(zhí)行將路徑存儲(chǔ)在內(nèi)核14中并且將路徑從內(nèi)核14中刪除的步驟。
例如,如果從第二樹(shù)11A和最佳路徑樹(shù)13A中刪除作為最佳路徑的、由第二路由引擎11檢索的并被存儲(chǔ)在最佳路徑樹(shù)13A中的路徑,則檢索與第一到第三路由引擎10和12相關(guān)的第一和第三樹(shù)10A和12A,以找到已經(jīng)由第一和第三路由引擎10和12檢索的路徑,作為最佳路徑候選者。如果與第一路由引擎10相關(guān)的第一樹(shù)10A包括的去向網(wǎng)絡(luò)R8的路徑的數(shù)目比與第三路由引擎12相關(guān)的第三樹(shù)12A的多,則首先檢索與第三路由引擎12相關(guān)的第三樹(shù)12A,因?yàn)榈谌酚梢?2的優(yōu)先權(quán)比第一路由引擎10的優(yōu)先權(quán)低。如果首先在與第三路由引擎12相關(guān)的第三樹(shù)12A中找到了去向目的地的路徑,也就是去向網(wǎng)絡(luò)R8的路徑,則將該路徑存儲(chǔ)在最佳路徑樹(shù)13A中,作為最佳路徑,并進(jìn)一步將其存儲(chǔ)在內(nèi)核14中。
如果在與第一路由引擎10相關(guān)的第一樹(shù)10A中找到了去向目的地的路徑,也就是去向網(wǎng)絡(luò)R8的路徑,則將已經(jīng)由第三路由引擎12檢索的路徑從最佳路徑樹(shù)13A中刪除,并且將已經(jīng)由第一路由引擎10檢索的路徑存儲(chǔ)在最佳路徑樹(shù)13A中,作為新的最佳路徑。在此之后,將已經(jīng)由第三路由引擎12檢索的路徑從內(nèi)核14中刪除,并且將由第一路由引擎10檢索的路徑存儲(chǔ)在內(nèi)核14中。
如上所述,常規(guī)的路由器50有這樣的問(wèn)題,當(dāng)將舊的最佳路徑從最佳路徑樹(shù)13A中刪除并且要將新的最佳路徑存儲(chǔ)在最佳路徑樹(shù)13A中時(shí),它要花費(fèi)相當(dāng)多的時(shí)間來(lái)檢索新的最佳路徑。
鑒于按照多點(diǎn)協(xié)議傳送數(shù)據(jù)所通過(guò)的多點(diǎn)路徑中的增加的問(wèn)題,為了減少施加在內(nèi)核上的負(fù)擔(dān)的目的,本發(fā)明的受讓人提出一種用于將路徑寄存在多點(diǎn)路由器中的系統(tǒng)。該系統(tǒng)包括多點(diǎn)傳送協(xié)議引擎,從毗鄰的節(jié)點(diǎn)接收多點(diǎn)路徑;內(nèi)核,僅存儲(chǔ)路徑、每當(dāng)接收到多點(diǎn)傳送分組就將路徑信息發(fā)送到多點(diǎn)傳送協(xié)議引擎、以及控制接收的多點(diǎn)傳送分組的傳送;應(yīng)用網(wǎng)關(guān)守護(hù)程序,它將該路徑存儲(chǔ)在內(nèi)核中;和傳送引擎,它并行地從內(nèi)核接收路徑信息,并且在本地傳送多點(diǎn)傳送分組。
日本公開(kāi)專利申請(qǐng)No.11-503881按照基于1994年3月16提交的美國(guó)專利申請(qǐng)08/213,710的國(guó)際申請(qǐng)PCT/US95/1313提出了一種包括多個(gè)交換節(jié)點(diǎn)的通信網(wǎng),這些交換節(jié)點(diǎn)相互連接到與一個(gè)或者多個(gè)輸入鏈路相連接的通信鏈路上,所述的通信網(wǎng)從輸入鏈路接收數(shù)據(jù)并且將接收的數(shù)據(jù)傳送到輸出鏈路。每個(gè)交換節(jié)點(diǎn)包括第一裝置,用于提供確定通過(guò)交換節(jié)點(diǎn)的數(shù)據(jù)路由的關(guān)于樹(shù)路由的信息;第二裝置,用于確定一系列時(shí)間段,每個(gè)時(shí)間段都與一個(gè)或者多個(gè)樹(shù)路由有關(guān);第三裝置,用于檢索與每個(gè)時(shí)間段的一個(gè)或者多個(gè)樹(shù)路由有關(guān)的信息;和第四裝置,用于按照每個(gè)時(shí)間段中從第三裝置接收到的信息將來(lái)自輸入鏈路子集的數(shù)據(jù)定向到輸出鏈路的子集。
日本專利申請(qǐng)No.6-261078提出一種檢索包括路由器的通信系統(tǒng)中的表的方法,該路由器包括多個(gè)網(wǎng)絡(luò),與多個(gè)終端相連接;多個(gè)網(wǎng)絡(luò)接口,用于將網(wǎng)絡(luò)彼此相連接。每個(gè)網(wǎng)絡(luò)接口包括路由表和用于檢索路由表的高速緩存器。該方法包括以下步驟檢索與在連接到不同網(wǎng)絡(luò)的終端中進(jìn)行的通信相關(guān)的信息;從接收的分組中查找目的地址;使用被用作檢索關(guān)鍵字的目的地址來(lái)檢索路由表;和將信息發(fā)送到其它的網(wǎng)絡(luò)。該方法還包括以下步驟(a)將可以獲得指向路由表入口的指針的目的地址存儲(chǔ)在高速緩存器的CAM中;(b)將該指針存儲(chǔ)在具有與CAM的入口鏈接的入口的對(duì)應(yīng)表中;(c)當(dāng)為了已經(jīng)檢索的目的地址而再次檢索檢索路由表時(shí),比較目的地址和存儲(chǔ)在CAM中的目的地址;(d)如果CAM存儲(chǔ)了目的地址,獲得指向與存儲(chǔ)了目的地址的入口相鏈接的對(duì)應(yīng)表的項(xiàng)之外的路由表。
日本專利申請(qǐng)No.2000-49857提出一種路由器,包括(a)檢索存儲(chǔ)器,具有存儲(chǔ)目的網(wǎng)絡(luò)的IP地址列表和路徑號(hào)列表的第一區(qū)域和存儲(chǔ)目的主機(jī)的IP地址列表和路徑列表的第二區(qū)域;和(b)檢索器,它檢索存儲(chǔ)在檢索存儲(chǔ)器中的目的IP地址列表,以便找到與包括在接收的分組中的目的IP地址相同的目的主機(jī)地址,或者包括目的主機(jī)地址的目的網(wǎng)絡(luò)地址,以及將接收的分組發(fā)送到與檢索的目的主機(jī)地址或者目的網(wǎng)絡(luò)地址相關(guān)的路徑。在檢索目的主機(jī)地址或目的網(wǎng)絡(luò)地址中,檢索器通過(guò)將包括在接收的分組中的目的IP地址的最大長(zhǎng)度作為參數(shù)來(lái)檢索存儲(chǔ)在檢索存儲(chǔ)器中的目的IP地址。
但是,即使在上面提及的裝置和方法中也仍舊沒(méi)有解決上面提及的問(wèn)題。
本發(fā)明的另一個(gè)目的是提供一種管理傳送數(shù)據(jù)的路徑的方法和實(shí)現(xiàn)該方法的計(jì)算機(jī)程序。
在本發(fā)明的一個(gè)方面,提供一種路由器,包括(a)多個(gè)單點(diǎn)傳送協(xié)議引擎,每個(gè)單點(diǎn)傳送協(xié)議引擎都從毗鄰的節(jié)點(diǎn)接收單點(diǎn)傳送路徑;(b)路由軟件核心,它將單點(diǎn)傳送路徑存儲(chǔ)在與單點(diǎn)傳送協(xié)議引擎相關(guān)的樹(shù)中,按照分配給單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),從單點(diǎn)傳送協(xié)議引擎接收的單點(diǎn)傳送路徑中選擇最佳路徑,并且將最佳路徑存儲(chǔ)在最佳路徑樹(shù)中;(c)內(nèi)核,從路由軟件核心接收最佳路徑,以執(zhí)行路由控制,其中,當(dāng)多個(gè)尋址到共同目的地的路徑被存儲(chǔ)在樹(shù)中時(shí),路由軟件核心將具有最高優(yōu)先權(quán)的單點(diǎn)傳送協(xié)議引擎接收的路徑寄存在最佳路徑樹(shù)中,作為最佳路徑,按照分配給單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),將優(yōu)先權(quán)應(yīng)用到由其它單點(diǎn)傳送協(xié)議引擎檢索的路徑,以及將該路徑與最佳路徑一起寄存在最佳路徑樹(shù)中,作為最佳路徑候選者。
下面說(shuō)明由前述的本發(fā)明所取得的優(yōu)點(diǎn)。
在本發(fā)明的路由器中,將至少一個(gè)第二最佳路與去向目的地的最佳路徑一起預(yù)先存儲(chǔ)在最佳路徑樹(shù)中。因此,即使變得不需要交換最佳路徑,也不再需要重新檢索新的最佳路徑。因此,有可能節(jié)省檢索新的最佳路徑所需要的時(shí)間。
在圖1所述的常規(guī)路由器中,在已經(jīng)從最佳路由樹(shù)13A中刪除最佳路徑之后,檢索第一和第三樹(shù)10A和12A,用于尋找新的最佳路徑。如果與優(yōu)先權(quán)比第三路由引擎12的優(yōu)先權(quán)高的第一路由引擎10相關(guān)的第一樹(shù)10A,以比存儲(chǔ)在與第三路由引擎12相關(guān)的第三樹(shù)12A中的路徑大的數(shù)量來(lái)存儲(chǔ)該路徑,則首先將第三路由引擎12檢索的路徑存儲(chǔ)在最佳路由樹(shù)13A中,并且進(jìn)一步存儲(chǔ)在內(nèi)核14中,以及,在此之后立即將由第一路由引擎10檢索的路徑存儲(chǔ)在最佳路徑樹(shù)13A中,并且進(jìn)一步存儲(chǔ)在內(nèi)核14中。因此,重復(fù)進(jìn)行將最佳路徑存儲(chǔ)在內(nèi)核14中和將最佳路徑從內(nèi)核14中刪除。
相反,在本發(fā)明的路由器中,至少一個(gè)第二最佳路徑與去向目的地的最佳路徑一起預(yù)先存儲(chǔ)在最佳路徑樹(shù)中。選擇第二最佳路徑,作為優(yōu)先權(quán)比其它路由引擎高的路由引擎檢索的路徑。因此,并不將優(yōu)先權(quán)比特定的路由引擎的優(yōu)先權(quán)低的路由引擎檢索的路徑選擇為最佳路徑,這造成了能夠防止重復(fù)將最佳路徑存儲(chǔ)在內(nèi)核中和將最佳路徑從內(nèi)核中刪除。
另外,由于最佳路徑事先已知,所以當(dāng)最佳路徑改變時(shí)需要僅僅檢索既存儲(chǔ)下一最佳路徑的樹(shù)又檢索存儲(chǔ)最佳路徑的樹(shù)。即使多個(gè)路徑被存儲(chǔ)在樹(shù)中時(shí),也不再需要檢索所有的樹(shù)。這保證了可以縮短檢索樹(shù)需要的時(shí)間。
圖2示出了網(wǎng)絡(luò)的例子。
圖3與圖1相似,是常規(guī)路由器的方框圖,示出了該路由器的操作情況。
圖4與圖1相似,是常規(guī)路由器的方框圖,示出了該路由器的操作情況。
圖5與圖1相似,是常規(guī)路由器的方框圖,示出了該路由器的操作情況。
圖6與圖1相似,是常規(guī)路由器的方框圖,示出了該路由器的操作情況。
圖7是本發(fā)明第一實(shí)施例的路由器的方框圖。
圖8示出了網(wǎng)絡(luò)的例子。
圖9與圖7相似,是本發(fā)明優(yōu)選實(shí)施例的路由器的方框圖,示出了該路由器的操作情況。
圖10與圖7相似,是本發(fā)明優(yōu)選實(shí)施例的路由器的方框圖,示出了該路由器的操作情況。
圖11與圖7相似,是本發(fā)明優(yōu)選實(shí)施例的路由器的方框圖,示出了該路由器的操作情況。
圖12與圖7相似,是本發(fā)明優(yōu)選實(shí)施例的路由器的方框圖,示出了該路由器的操作情況。
該路由器60包括第一路由引擎(RE)1;第二路由引擎(RE)2;第三路由引擎(RE)3;守護(hù)程序路由軟件核心(RS-CORE)4,它將每個(gè)目的地的路徑合并,并且將該路徑寄存到后面提及的內(nèi)核5中;和內(nèi)核5,它將路由軟件核心4提供的路徑存儲(chǔ)在轉(zhuǎn)發(fā)路徑表(未示出)中,進(jìn)而執(zhí)行路由控制。
第一到第三路由引擎1、2和3的每個(gè)都包括單點(diǎn)傳送協(xié)議引擎,并且按照彼此不同的路由協(xié)議來(lái)運(yùn)行。
路由軟件核心(RS-CORE)4包括第一樹(shù)1A,存儲(chǔ)第一路由引擎1檢索的路徑;第二樹(shù)2A,存儲(chǔ)第二路由引擎2檢索的路徑;第三樹(shù)3A,存儲(chǔ)第三路由引擎3檢索的路徑;和最優(yōu)樹(shù)4A,存儲(chǔ)在存儲(chǔ)的第一到第三樹(shù)1A、2A和3A中發(fā)現(xiàn)的最佳路徑。
第一到第三路由引擎1、2和3按照路由協(xié)議從毗鄰的節(jié)點(diǎn)接收單點(diǎn)傳送路徑,并且將接收的單點(diǎn)傳送路徑分別存儲(chǔ)在相關(guān)的樹(shù)1A、2A和3A中。
路由軟件核心4管理第一到第三路由引擎1、2和3檢索的單點(diǎn)傳送路徑,并且將其存儲(chǔ)在第一到第三樹(shù)1A、2A和3A中。另外,路由軟件核心4按照應(yīng)用到每個(gè)第一到第三路由引擎1、2和3的優(yōu)先權(quán)將去向每個(gè)目的地的路徑合并,從存儲(chǔ)在第一到第三樹(shù)1A、2A和3A中的路徑中尋找最佳路徑,并且將找到的最佳路徑存儲(chǔ)在最佳路徑樹(shù)4A中。
具體而言,如下選擇要被存儲(chǔ)在最佳路徑樹(shù)4A中的最佳路徑。
當(dāng)?shù)谝坏降谌酚梢?到3檢索到去向共同目的地的多個(gè)路徑時(shí),將第一到第三路由引擎中優(yōu)先權(quán)最高的路由引擎檢索的路徑選擇為最佳路徑。將因此選擇的最佳路徑存儲(chǔ)在最佳路徑樹(shù)4A中?,F(xiàn)在,隨著將最佳路徑存儲(chǔ)到最佳路徑樹(shù)4A中,還將第二最佳路徑NEXTTHOP存儲(chǔ)在最佳路徑樹(shù)4A中,作為與最佳路徑有關(guān)的最佳路徑候選者。這里,第二最佳路徑表示第一到第三路由引擎1到3中有第二最高優(yōu)先權(quán)的路徑。第二最佳路徑NEXTTHOP存儲(chǔ)在最佳路徑樹(shù)4A中,作為與最佳路徑有著相同的地址或者目的地的路徑。在存儲(chǔ)在最佳路徑樹(shù)4A中的最佳路徑和第二最佳路徑中,僅僅最佳路徑被寄存在內(nèi)核5中。
下面參考圖8到圖12解釋路由器60的工作情況。
圖8示出了七個(gè)路由器A到G通過(guò)網(wǎng)絡(luò)R1到R8彼此連接的網(wǎng)絡(luò)結(jié)構(gòu)。
當(dāng)路由器A將分組傳送到圖8所示的網(wǎng)絡(luò)結(jié)構(gòu)中的網(wǎng)絡(luò)R8時(shí),可以通過(guò)下面的三條路徑傳送分組。在第一路徑中,通過(guò)路由器B和E將分組傳送到網(wǎng)絡(luò)R8。在第二條路徑中,通過(guò)路由器C和E將分組傳送到網(wǎng)絡(luò)R8。在第三條路徑中,通過(guò)路由器D、F和E將分組傳送到網(wǎng)絡(luò)R8。
第一到第三路由引擎1到3按照彼此不同的路由協(xié)議來(lái)運(yùn)行。第一路由引擎1按照路由協(xié)議S檢索NEXTTHOP(B),作為去向目的地的路徑,也就是去向網(wǎng)絡(luò)R8的路徑,并且將該路徑NEXTTHOP(B)存儲(chǔ)到路由軟件核心4的第一樹(shù)1A中。第二路由引擎2按照路由協(xié)議T檢索NEXTTHOP(C),作為去向目的地的路徑,也就是去向網(wǎng)絡(luò)R8的路徑,并且將該路徑NEXTTHOP(C)存儲(chǔ)到路由軟件核心4的第二樹(shù)2A中。第三路由引擎3按照路由協(xié)議U檢索NEXTTHOP(D),作為去向目的地的路徑,也就是去向網(wǎng)絡(luò)R8的路徑,并且將該路徑NEXTTHOP(D)存儲(chǔ)到路由軟件核心4的第三樹(shù)3A中。
以下設(shè)在路由軟件核心4中第二路由引擎2具有最高優(yōu)先權(quán),第一路由引擎1具有第二最高優(yōu)先權(quán),而第三路由引擎3具有最低的優(yōu)先權(quán)。還設(shè)最佳路徑樹(shù)4A開(kāi)始沒(méi)有存儲(chǔ)路徑。
如圖9所示,當(dāng)?shù)谝宦酚梢?將已經(jīng)由第一路由引擎1檢索的、尋址到網(wǎng)絡(luò)R8的路徑NEXTTHOP(B)存儲(chǔ)在路由軟件核心4中時(shí),將路徑NEXTTHOP(B)存儲(chǔ)在與第一路由引擎1相關(guān)的第一樹(shù)1A中。然后,將該路徑NEXTTHOP(B)存儲(chǔ)在最佳路徑樹(shù)4A中。由于在最佳路徑樹(shù)4A中沒(méi)有存儲(chǔ)去向網(wǎng)絡(luò)R8的路徑,所以將已經(jīng)由第一路由引擎1檢索的路徑NEXTTHOP(B)存儲(chǔ)在最佳樹(shù)4A中,而不執(zhí)行后面提及的比較。還將路徑NEXTTHOP(B)從最佳路徑樹(shù)4A存儲(chǔ)在內(nèi)核14中。
如圖10所述,當(dāng)?shù)谌酚梢?將已經(jīng)由第三路由引擎3檢索的去向網(wǎng)絡(luò)R8的路徑NEXTTHOP(D)存儲(chǔ)到路由軟件核心4中時(shí),將路徑NEXTTHOP(D)存儲(chǔ)在與第三路由引擎3有關(guān)的第三樹(shù)3A中。
然后,路由軟件核心4試圖將該路徑NEXTTHOP(D)存儲(chǔ)在最佳路由樹(shù)4A中。但是,由于由第一路由引擎10檢索的路徑NEXTTHOP(B)已經(jīng)存儲(chǔ)在最佳路徑樹(shù)4A中,路由軟件核心4比較第三路由引擎3的優(yōu)先權(quán)和第一路由引擎1的優(yōu)先權(quán)。由于第三路由引擎3的優(yōu)先權(quán)低于第一路由引擎1的優(yōu)先權(quán),將由第三路由引擎3檢索的路徑NEXTTHOP(D)存儲(chǔ)在最佳路徑樹(shù)4A中,作為最佳路徑候選者或者去向網(wǎng)絡(luò)R8的第二最佳路徑。因此,將路徑NEXTTHOP(B)存儲(chǔ)在最佳路徑樹(shù)4A中,作為最佳路徑,并且將路徑NEXTTHOP(D)存儲(chǔ)在最佳路徑樹(shù)4A中,作為第二最佳路徑。
如圖11所示,當(dāng)?shù)诙酚梢?將已經(jīng)由第二路由引擎2檢索的去向網(wǎng)絡(luò)R8的路徑NEXTTHOP(C)存儲(chǔ)到路由軟件核心4中時(shí),將路徑NEXTTHOP(C)存儲(chǔ)在與第二路由引擎2有關(guān)的第二樹(shù)2A中。
然后,路由軟件核心4試圖將該路徑NEXTTHOP(C)存儲(chǔ)在最佳路由樹(shù)4A中。但是,由于由第一路由引擎1檢索的路徑NEXTTHOP(B)已經(jīng)存儲(chǔ)在最佳路徑樹(shù)4A中,路由軟件核心4比較第二路由引擎2的優(yōu)先權(quán)和第一路由引擎1的優(yōu)先權(quán)。由于第二路由引擎2的優(yōu)先權(quán)高于第一路由引擎1的優(yōu)先權(quán),所以將已經(jīng)由第一路由引擎檢索的路徑NEXTTHOP(C)存儲(chǔ)在最佳路徑樹(shù)4A中,作為去向網(wǎng)絡(luò)R8的最佳路徑。
將已經(jīng)由第一路由引擎1檢索的路徑NEXTTHOP(B)和已經(jīng)由第三路由引擎檢索的路徑NEXTTHOP(D)存儲(chǔ)在最佳路徑樹(shù)4A中,作為第二最佳路徑。具體地,將已經(jīng)由第二路由引擎2檢索的路徑NEXTTHOP(C)存儲(chǔ)在最佳路徑樹(shù)4A中,作為去向網(wǎng)絡(luò)R8的最佳路徑,同時(shí),按照應(yīng)用在第一和第三路由引擎1和3的優(yōu)先權(quán),使用應(yīng)用到它們的優(yōu)先權(quán),也將路徑NEXTTHOP(B)和路徑NEXTTHOP(D)存儲(chǔ)在最佳路徑樹(shù)4A中。
由于應(yīng)用到第一路由引擎1的優(yōu)先權(quán)高于應(yīng)用到第三路由引擎3的優(yōu)先權(quán),如果將作為去向網(wǎng)絡(luò)R8的最佳路徑而存儲(chǔ)在最佳路徑樹(shù)4A中的路徑NEXTTHOP(C)從最佳路徑樹(shù)4A中刪除,將已經(jīng)由第一路由引擎1檢索的路徑NEXTTHOP(B)新選擇為去向網(wǎng)絡(luò)R8的最佳路徑。此外,由于由第一路由引擎檢索1的路徑NEXTTHOP(B)和由第二路由引擎檢索2的路徑NEXTTHOP(C)不同,所以還將第一路由引擎1檢索的路徑NEXTTHOP(B)存儲(chǔ)在內(nèi)核5中。
下面解釋將已經(jīng)由第二路由引擎2檢索到的路徑NEXTTHOP(C)從最佳路徑樹(shù)4A中刪除的過(guò)程。
首先,檢索第二樹(shù)2A,以確定路徑NEXTTHOP(C)存儲(chǔ)在第二樹(shù)2A中何處。然后,如圖12所示,將路徑NEXTTHOP(C)從第二樹(shù)2A中刪除。
然后,檢索最佳路徑樹(shù)4A,以確定路徑NEXTTHOP(C)存儲(chǔ)在最佳路徑樹(shù)4A中的何處。然后,如圖12所示,將路徑NEXTTHOP(C)從最佳路徑樹(shù)4A中刪除。在將路徑NEXTTHOP(C)從最佳路徑樹(shù)4A中刪除的同時(shí),將新選擇的最佳路徑存儲(chǔ)在最佳路徑樹(shù)4A中。
在這個(gè)階段,將已經(jīng)由第一路由引擎1檢索的路徑NEXTTHOP(B)和已經(jīng)由第三路由引擎檢索的路徑NEXTTHOP(D)存儲(chǔ)在最佳路徑樹(shù)4A中,作為第二最佳樹(shù)。因此,有可能同時(shí)在目前存儲(chǔ)在最佳路徑樹(shù)4A中刪除最佳路徑,并且僅僅通過(guò)檢索當(dāng)前存儲(chǔ)在最佳路徑樹(shù)4A中的最佳路徑,將已經(jīng)存儲(chǔ)在最佳路徑樹(shù)4A中的新的最佳路徑選擇為第二最佳路徑。具體地,有可能同時(shí)將已經(jīng)由第二路由引擎2檢索的路徑NEXTTHOP(C)從最佳路徑樹(shù)4A中刪除,并且選擇由第一路由引擎1檢索的路徑NEXTTHOP(B)作為新的最佳路徑。
在將路徑NEXTTHOP(C)從最佳路徑樹(shù)4A中刪除和選擇路徑NEXTTHOP(B)作為新的最佳路徑之后,將路徑NEXTTHOP(B)寄存在內(nèi)核5中。
如上所述,在第一實(shí)施例的路由器60中,將至少一個(gè)第二最佳路與去向目的地的最佳路徑一起預(yù)先存儲(chǔ)在最佳路徑樹(shù)4A中。因此,即使變得不需要交換最佳路徑,也不再需要檢索新的最佳路徑。因此,有可能節(jié)省檢索新的最佳路徑所需要的時(shí)間。
如前所述,在圖1所述的常規(guī)路由器50中,在已經(jīng)從最佳路由樹(shù)13A中刪除最佳路徑之后,檢索第一和第三樹(shù)10A和12A,用于尋找新的最佳路徑。如果與優(yōu)先權(quán)比第三路由引擎12的優(yōu)先權(quán)高的第一路由引擎10相關(guān)的第一樹(shù)10A,以比存儲(chǔ)在與第三路由引擎12相關(guān)的第三樹(shù)12A中的路徑大的數(shù)量來(lái)存儲(chǔ)該路徑,則首先將第三路由引擎12檢索的路徑存儲(chǔ)在最佳路由樹(shù)13A中,并且進(jìn)一步存儲(chǔ)在內(nèi)核14中,以及,在此之后立即將由第一路由引擎10檢索的路徑存儲(chǔ)在最佳路徑樹(shù)13A中,并且進(jìn)一步存儲(chǔ)在內(nèi)核14中。因此,重復(fù)進(jìn)行將最佳路徑存儲(chǔ)在內(nèi)核14中和將最佳路徑從內(nèi)核14中刪除。
相反,在本發(fā)明第一實(shí)施例的路由器60中,至少一個(gè)第二最佳路徑與去向目的地的最佳路徑一起預(yù)先存儲(chǔ)在最佳路徑樹(shù)中。選擇第二最佳路徑,作為優(yōu)先權(quán)比其它路由引擎高的路由引擎檢索的路徑。因此,并不將優(yōu)先權(quán)比特定的路由引擎的優(yōu)先權(quán)低的路由引擎檢索的路徑選擇為最佳路徑,這造成了能夠防止重復(fù)將最佳路徑存儲(chǔ)在內(nèi)核中和將最佳路徑從內(nèi)核中刪除。
另外,由于下一最佳路徑事先已知,所以當(dāng)最佳路徑改變時(shí)需要僅僅檢索既存儲(chǔ)下一最佳路徑的樹(shù)的樹(shù)又檢索存儲(chǔ)最佳路徑樹(shù)4A。即使多個(gè)路徑被存儲(chǔ)在樹(shù)中時(shí),也不再需要檢索所有的樹(shù)。這保證了可以縮短檢索樹(shù)需要的時(shí)間。
路由軟件核心4具有上面提及的那種結(jié)構(gòu),并且以上面提及的方式運(yùn)行。
路由軟件核心4可以由諸如個(gè)人計(jì)算機(jī)或者工作站之類的數(shù)據(jù)處理器和執(zhí)行路由軟件核心4的功能的程序來(lái)實(shí)現(xiàn)。這種程序可以通過(guò)計(jì)算機(jī)可讀的記錄介質(zhì)來(lái)出現(xiàn)。當(dāng)數(shù)據(jù)處理器開(kāi)始工作時(shí),這種程序也可以從數(shù)據(jù)處理器中讀出。通過(guò)控制數(shù)據(jù)處理器的操作,可以在數(shù)據(jù)處理器中實(shí)現(xiàn)該路由軟件核心4。
路由軟件核心4的性能可以通過(guò)包括各種指令的程序來(lái)實(shí)現(xiàn),并且通過(guò)計(jì)算機(jī)可讀的記錄介質(zhì)來(lái)實(shí)現(xiàn)。
在說(shuō)明書中,術(shù)語(yǔ)“記錄介質(zhì)”意指可以記錄數(shù)據(jù)的任何介質(zhì)。
權(quán)利要求
1.一種路由器,包括(a)多個(gè)單點(diǎn)傳送協(xié)議引擎,每個(gè)單點(diǎn)傳送協(xié)議引擎都從毗鄰的節(jié)點(diǎn)接收單點(diǎn)傳送路徑;(b)路由軟件核心,它將所述單點(diǎn)傳送路徑存儲(chǔ)在與單點(diǎn)傳送協(xié)議引擎相關(guān)的樹(shù)中,按照分配給所述單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),從所述單點(diǎn)傳送協(xié)議引擎接收的單點(diǎn)傳送路徑中選擇最佳路徑,并且將所述最佳路徑存儲(chǔ)在最佳路徑樹(shù)中;和(c)內(nèi)核,從所述路由軟件核心接收所述最佳路徑,以執(zhí)行路由控制,其特征在于,當(dāng)多個(gè)尋址到共同目的地的路徑被存儲(chǔ)在所述樹(shù)中時(shí),所述路由軟件核心將具有最高優(yōu)先權(quán)的單點(diǎn)傳送協(xié)議引擎檢索的路徑寄存在所述最佳路徑樹(shù)中,作為最佳路徑,按照分配給所述單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),將優(yōu)先權(quán)應(yīng)用到由其它單點(diǎn)傳送協(xié)議引擎檢索的路徑,以及將所述路徑與所述最佳路徑一起寄存在最佳路徑樹(shù)中,作為最佳路徑候選者。
2.根據(jù)權(quán)利要求1所述的路由器,其特征在于,當(dāng)刪除寄存在所述最佳路徑樹(shù)中的所述最佳路徑時(shí),從寄存在所述最佳路徑樹(shù)中的最佳路徑候選者中選擇有最高優(yōu)先權(quán)的最佳路徑候選者,作為新的最佳路徑。
3.一種管理傳送數(shù)據(jù)的路徑的方法,包括以下步驟(a)通過(guò)多個(gè)單點(diǎn)傳送協(xié)議引擎從毗鄰的節(jié)點(diǎn)接收單點(diǎn)傳送路徑;(b)將所述單點(diǎn)傳送路徑存儲(chǔ)在與所述單點(diǎn)傳送協(xié)議引擎相關(guān)的樹(shù)中;(c)按照分配給所述單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),從所述單點(diǎn)傳送協(xié)議引擎接收的單點(diǎn)傳送路徑中選擇最佳路徑;和(d)根據(jù)所述最佳路徑執(zhí)行路由控制,其中所述的步驟(c)包括以下步驟(c1)當(dāng)尋址到共同目的地的多個(gè)路徑被存儲(chǔ)在所述樹(shù)中時(shí),將由具有最高優(yōu)先權(quán)的單點(diǎn)傳送協(xié)議引擎檢索的路徑寄存在所述最佳樹(shù)中,作為最佳路徑;(c2)按照分配給所述單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),將優(yōu)先權(quán)應(yīng)用到由其它的單點(diǎn)傳送協(xié)議引擎檢索的路徑;和(c3)將所述路徑與所述最佳路徑一起寄存在所述的最佳路徑樹(shù)中,作為最佳路徑候選者。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括以下步驟當(dāng)刪除寄存在所述最佳路徑樹(shù)中的所述最佳路徑時(shí),從寄存在所述最佳路徑樹(shù)中的最佳路徑候選者中選擇有最高優(yōu)先權(quán)的最佳路徑候選者,作為新的最佳路徑。
5.一種用于使計(jì)算機(jī)執(zhí)行管理傳送數(shù)據(jù)的路徑的方法的計(jì)算機(jī)可讀程序,所述的程序執(zhí)行以下步驟(a)通過(guò)多個(gè)單點(diǎn)傳送協(xié)議引擎都從毗鄰的節(jié)點(diǎn)接收單點(diǎn)傳送路徑;(b)將所述單點(diǎn)傳送路徑存儲(chǔ)在與單點(diǎn)傳送協(xié)議引擎相關(guān)的樹(shù)中;(c)按照分配給所述單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),從所述單點(diǎn)傳送協(xié)議引擎接收的單點(diǎn)傳送路徑中選擇最佳路徑;和(d)根據(jù)所述最佳路徑執(zhí)行路由控制,其中所述的步驟(c)包括以下步驟(c1)當(dāng)尋址到共同目的地的多個(gè)路徑被存儲(chǔ)在所述樹(shù)中時(shí),將由具有最高優(yōu)先權(quán)的單點(diǎn)傳送協(xié)議引擎檢索的路徑寄存在所述最佳樹(shù)中,作為最佳路徑;(c2)按照分配給所述單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),將優(yōu)先權(quán)應(yīng)用到由其它的單點(diǎn)傳送協(xié)議引擎檢索的路徑;和(c3)將所述路徑與所述最佳路徑一起寄存在所述的最佳路徑樹(shù)中,作為最佳路徑候選者。
6.根據(jù)權(quán)利要求5所述的程序,其特征在于所述程序還執(zhí)行以下步驟當(dāng)刪除寄存在所述最佳路徑樹(shù)中的所述最佳路徑時(shí),從寄存在所述最佳路徑樹(shù)中的最佳路徑候選者中選擇有最高優(yōu)先權(quán)的最佳路徑候選者,作為新的最佳路徑。
全文摘要
一種路由器60,包括單點(diǎn)傳送協(xié)議引擎1-3,每個(gè)單點(diǎn)傳送協(xié)議引擎都從毗鄰的節(jié)點(diǎn)接收單點(diǎn)傳送路徑;路由軟件核心4,將該單點(diǎn)傳送路徑存儲(chǔ)在與該單點(diǎn)傳送協(xié)議引擎相關(guān)的樹(shù)中,按照分配給該單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),從單點(diǎn)傳送路徑中選擇最佳路徑,并且將該最佳路徑存儲(chǔ)在最佳路徑樹(shù)中;內(nèi)核5,從路由軟件核心接收最佳路徑,以執(zhí)行路由控制。當(dāng)將去向共同目的地的多個(gè)尋址路徑存儲(chǔ)在樹(shù)1A-3A中時(shí),路由軟件核心4將最高優(yōu)先權(quán)的單點(diǎn)傳送協(xié)議引擎檢索的路徑寄存在最佳路徑樹(shù)4A中,作為最佳路徑,按照分配給單點(diǎn)傳送協(xié)議引擎的優(yōu)先權(quán),將優(yōu)先權(quán)應(yīng)用到剩余的路徑上,并且將該路徑與最佳路徑一起存儲(chǔ)在最佳路徑樹(shù)中,作為最佳路徑候選者。
文檔編號(hào)H04L12/56GK1441582SQ0310646
公開(kāi)日2003年9月10日 申請(qǐng)日期2003年2月26日 優(yōu)先權(quán)日2002年2月27日
發(fā)明者蒲池計(jì)紀(jì) 申請(qǐng)人:日本電氣株式會(huì)社