国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于在分組轉(zhuǎn)發(fā)裝置中針對(duì)每個(gè)模塊在因特網(wǎng)協(xié)議切換模式之間進(jìn)行自動(dòng)選擇的方法...的制作方法

      文檔序號(hào):7849105閱讀:145來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):用于在分組轉(zhuǎn)發(fā)裝置中針對(duì)每個(gè)模塊在因特網(wǎng)協(xié)議切換模式之間進(jìn)行自動(dòng)選擇的方法 ...的制作方法
      技術(shù)領(lǐng)域
      本申請(qǐng)描述的主題涉及對(duì)因特網(wǎng)協(xié)議(IP)分組進(jìn)行路由。更具體地,本申請(qǐng)描述的主題涉及用于在分組轉(zhuǎn)發(fā)裝置中針對(duì)每個(gè)模塊在IP切換模式之間進(jìn)行自動(dòng)選擇的方法、系統(tǒng)以及計(jì)算機(jī)可讀介質(zhì)。
      背景技術(shù)
      傳統(tǒng)IP網(wǎng)絡(luò)設(shè)施硬件利用用于對(duì)IP分組進(jìn)行路由的兩種通用方式之一。在第一種方式(在下文中,稱(chēng)為“LPM模式”或“LPM方式”)中,每個(gè)分組的IP目的地地址被用作用于搜索包括可變長(zhǎng)度地址前綴的基于硬件的最長(zhǎng)前綴匹配(LPM)表的關(guān)鍵詞。硬件LPM表中的匹配產(chǎn)生了進(jìn)入IP鄰接表的索引,在該IP鄰接表中,獲得對(duì)分組進(jìn)行成功路由所需要的下一跳轉(zhuǎn)發(fā)信息。在第一種方式中,可使用與相鄰IP分組轉(zhuǎn)發(fā)裝置交換信息的一個(gè)或多個(gè)路由協(xié)議來(lái)填充硬件LPM表,或可經(jīng)由配置來(lái)填充硬件LPM表。在第二種方式(在下文中,稱(chēng)為“ IPFDB模式”或“ IPFDB方式”)中,每個(gè)分組的IP目的地地址被用作用于搜索以活動(dòng)主機(jī)的IP地址填充的、基于硬件的IP主機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(IPFDB)的關(guān)鍵詞。應(yīng)理解當(dāng)以IPFDB模式操作時(shí),活動(dòng)主機(jī)可包括直接連接的主機(jī)和遠(yuǎn)程位于網(wǎng)絡(luò)另一側(cè)的主機(jī)。硬件IPFDB中的匹配產(chǎn)生了對(duì)分組進(jìn)行成功路由所需要的下一跳轉(zhuǎn)發(fā)信息。在第二種方式中,活動(dòng)主機(jī)的IP地址基于“要求”被填充到IPFDB中。S卩,當(dāng)給定主機(jī)的流起動(dòng)時(shí),其IP地址初始沒(méi)有被存儲(chǔ)在IPFDB中并且必須被慢路處理(slowpathprocess),其中慢路處理包括使用中央處理器(CPU)處理分組。分組的成功的慢路處理導(dǎo)致活動(dòng)主機(jī)的IP地址被編入后續(xù)分組的硬件IPFDB中。例如,參見(jiàn)圖1,1/0模塊102么和106A可以以LPM模式或IPFDB模式操作。在LPM模式中,LPM表200和204可由與可變長(zhǎng)度地址前綴和用于達(dá)到目的地的下一跳相應(yīng)的條目進(jìn)行填充,并且IPFDB 202和206可由全長(zhǎng)32-或128-比特的主機(jī)條目進(jìn)行填充。在IPFDB模式中,LPM表200和204以及IPFDB 202和206可由全長(zhǎng)32-或128-比特主機(jī)條目進(jìn)行填充。此外,I/O模塊102A-102C和106A-106B可以以“混合模式”操作,在該混合模式中,對(duì)于每個(gè)I/O模塊,IPFDB可由直接連接的主機(jī)的全址條目進(jìn)行填充,并且LPM表可由可變長(zhǎng)度前綴和全主機(jī)地址的混合進(jìn)行填充。在于2005年12月23日遞交的、美國(guó)專(zhuān)利申請(qǐng)序列No. 11/317,665以及于2006年12月22日遞交的、美國(guó)專(zhuān)利申請(qǐng)序列No. 11/644,701中描述了關(guān)于此方面的額外細(xì)節(jié),這兩個(gè)美國(guó)申請(qǐng)的公開(kāi)內(nèi)容以引用方式全部?jī)?nèi)容并入本文。
      LPM方式的一個(gè)優(yōu)點(diǎn)是當(dāng)整個(gè)路由表可被包括在可用硬件LPM表中時(shí),幾乎數(shù)量不限的主機(jī)終端站可通過(guò)交換機(jī)通信,而沒(méi)有慢路干擾。相反,IPFDB方式的一個(gè)優(yōu)點(diǎn)是當(dāng)路由表與硬件LPM表不適應(yīng)(例如對(duì)于少量的主機(jī))時(shí),路由可以更快。例如,通過(guò)基于在位于每個(gè)I/O模塊上的基于硬件的IPFDB中的精確匹配查找對(duì)分組進(jìn)行路由,可使用較少的存儲(chǔ)器和CPU資源來(lái)對(duì)分組進(jìn)行慢路處理。換言之,當(dāng)整個(gè)路由表可被包括在可用硬件LPM表中時(shí),LPM方式更具有優(yōu)勢(shì);而當(dāng)整個(gè)路由表不能被包括在可用硬件LPM表中時(shí),IPFDB方式更具有優(yōu)勢(shì)。當(dāng)生產(chǎn)費(fèi)用敏感的網(wǎng)絡(luò)設(shè)備時(shí),硬件LPM表的大小對(duì)于某些應(yīng)用會(huì)受限。在一個(gè)示例場(chǎng)景中,邊緣模塊可支持512個(gè)LPM IPv4路由和2K個(gè)IPv4主機(jī),并且聚合模塊可支持512,000個(gè)LPM IPv4路由和16,000個(gè)IPv4主機(jī)。接著,考慮控制面路由表的大小為250,000個(gè)IPv4路由和1,000個(gè)直接連接的IPv4主機(jī)的網(wǎng)絡(luò)??衫斫?,這整個(gè)路由表不能被包括在邊緣模塊102A-102C的可用硬件LPM表中,然而可被整體包括在聚合模塊106A-106B的LPM表中。這樣,對(duì)于邊緣模塊102A-102C而言IPFDB-模式路由可能是適當(dāng)?shù)?,以避免不必要的慢路處理。由于邊緣模塊不能在大小為512的LPM表中存儲(chǔ)250,000 個(gè)路由,所以只將250,000個(gè)路由中的512個(gè)(即O. 2%)填充到此HW表中不會(huì)有太大的用處。因而,在分組轉(zhuǎn)發(fā)設(shè)備中,通過(guò)僅保持活動(dòng)主機(jī)的高速緩沖存儲(chǔ)器而不是整個(gè)路由表,IPFDB方式需要較少的存儲(chǔ)器和較少CPU功率。相反,LPM-模式路由對(duì)于聚合模塊106A-106B可能是適當(dāng)?shù)?,這是由于路由表在硬件范圍內(nèi),這是因?yàn)榭梢允褂糜布蘒PFDB路由到所有直接連接的主機(jī),并且可以使用硬件LPM表路由到所有經(jīng)由網(wǎng)關(guān)連接的主機(jī),而不需要對(duì)分組進(jìn)行慢路處理。與傳統(tǒng)分組轉(zhuǎn)發(fā)裝置相關(guān)聯(lián)的一個(gè)問(wèn)題是它們可能在特定條件下對(duì)某些I/O模塊使用低效方式。例如,在分組轉(zhuǎn)發(fā)裝置100中,如果I/O模塊102A和106A以LPM模式操作(默認(rèn)),則低容量I/O模塊102A可能存儲(chǔ)數(shù)個(gè)路由的實(shí)質(zhì)上無(wú)意義的片段,對(duì)分組轉(zhuǎn)發(fā)裝置100沒(méi)有增加任何性能優(yōu)點(diǎn)。另一個(gè)問(wèn)題是某些分組轉(zhuǎn)發(fā)設(shè)備可能不具有足夠的存儲(chǔ)器來(lái)以軟件保存全部路由表,也不具有足夠的CPU功率來(lái)處理所有的路由增加和刪除操作。例如,傳統(tǒng)LPM模式操作需要更多的存儲(chǔ)器和CPU功率來(lái)處理路由增加和刪除操作,而IPFDB模式并不需要,這是由于替代地,IPFDB模式僅保持了活動(dòng)主機(jī)的高速緩沖存儲(chǔ)器,而不是整個(gè)路由表。如上文所示,在IPFDB模式適當(dāng)而并未使用的場(chǎng)景下,傳統(tǒng)分組轉(zhuǎn)發(fā)裝置可次優(yōu)地操作。因此,存在對(duì)更有效地利用IP分組轉(zhuǎn)發(fā)裝置中的基于硬件的LPM表和IPFDB的改進(jìn)的方法、系統(tǒng)以及計(jì)算機(jī)可讀介質(zhì)的需求。

      發(fā)明內(nèi)容
      本申請(qǐng)描述的主題包括用于在分組轉(zhuǎn)發(fā)裝置中針對(duì)每個(gè)模塊在因特網(wǎng)協(xié)議切換模式之間進(jìn)行自動(dòng)選擇的方法、系統(tǒng)以及計(jì)算機(jī)可讀介質(zhì)。根據(jù)一個(gè)方案,本申請(qǐng)描述的主題包括一種分組轉(zhuǎn)發(fā)裝置,其包括至少一個(gè)輸入/輸出(I/o)模塊。至少一個(gè)I/O模塊包括最長(zhǎng)前綴匹配(LPM)表和因特網(wǎng)協(xié)議轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(IPFDB),并且分組轉(zhuǎn)發(fā)裝置包括IP路由表和IPFDB。當(dāng)I/O模塊以LPM模式操作時(shí),I/O模塊上的IPFDB填充有與活動(dòng)主機(jī)相對(duì)應(yīng)的條目,I/O模塊上的LPM表被填充具有從IP路由協(xié)議知悉的路由的IP路由表,并且使用I/o模塊的IPFDB和LPM表來(lái)路由I/O模塊所接收到的層3分組。自動(dòng)模式選擇模塊確定I/O模塊上的LPM表的容量。自動(dòng)模式選擇模塊還確定被存儲(chǔ)在IP路由表中的IP路由的總數(shù)量,并確定IP路由的總數(shù)量與LPM表的容量之間的關(guān)系。響應(yīng)于確定IP路由的總數(shù)量與LPM表的容量具有預(yù)定關(guān)系,自動(dòng)模式選擇模塊還將I/O模塊從LPM模式自動(dòng)切換到IPFDB模式,其中IPFDB和LPM表填充有與活動(dòng)主機(jī)相對(duì)應(yīng)的條目,并且使用I/O模塊的IPFDB和LPM表路由I/O模塊所接收到的層3分組。根據(jù)另一個(gè)方案,公開(kāi)了一種用于針對(duì)每個(gè)模塊自動(dòng)地選擇轉(zhuǎn)發(fā)方式的方法。該方法包括以LPM模式操作多輸入/輸出(I/O)模塊分組轉(zhuǎn)發(fā)裝置中的I/O模塊。I/O模塊包括最長(zhǎng)前綴匹配(LPM)表和因特網(wǎng)協(xié)議轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(IPFDB),并且分組轉(zhuǎn)發(fā)裝置包括IP路由表。以LPM模式操作I/O模塊包括用 與活動(dòng)主機(jī)相對(duì)應(yīng)的條目填充IPFDB,用來(lái)自具有從IP路由協(xié)議知悉的路由的IP路由表的條目填充LPM表,以及使用I/O模塊的IPFDB和LPM表對(duì)I/O模塊所接收到的層3分組進(jìn)行路由。確定LPM表的容量。確定存儲(chǔ)在IP路由表中的IP路由的總數(shù)量以及IP路由表中的IP路由的總數(shù)量與LPM表的容量之間的關(guān)系。響應(yīng)于確定IP路由表中的IP路由的總數(shù)量與LPM表的容量具有預(yù)定關(guān)系,將I/O模塊從LPM模式自動(dòng)切換到IPFDB模式,其中以IPFDB模式操作I/O模塊包括用與活動(dòng)主機(jī)相對(duì)應(yīng)的條目填充IPFDB和LPM表,并且使用I/O模塊的IPFDB和LPM表對(duì)I/O模塊接收到的層3分組進(jìn)行路由??梢杂糜布?、軟件、固件或其任意組合來(lái)實(shí)施本申請(qǐng)描述的用于在分組轉(zhuǎn)發(fā)裝置中針對(duì)每個(gè)模塊在因特網(wǎng)協(xié)議切換模式之間進(jìn)行自動(dòng)選擇的主題??墒褂靡杂行蔚摹⒎菚簳r(shí)性的計(jì)算機(jī)可讀介質(zhì)體現(xiàn)的計(jì)算機(jī)可執(zhí)行指令來(lái)實(shí)施本申請(qǐng)描述的主題。適于實(shí)施本申請(qǐng)描述的主題的示例非暫時(shí)性的計(jì)算機(jī)可讀介質(zhì)包括盤(pán)存儲(chǔ)裝置、芯片存儲(chǔ)裝置、可編程邏輯裝置以及專(zhuān)用集成電路。此外,實(shí)施本申請(qǐng)描述的主題的計(jì)算機(jī)程序產(chǎn)品可在單個(gè)裝置或計(jì)算平臺(tái)上實(shí)施,或可分布在多個(gè)裝置或計(jì)算平臺(tái)上。


      現(xiàn)在將參考附圖解釋本申請(qǐng)描述的主題,其中圖I為示出了根據(jù)本申請(qǐng)描述的主題的實(shí)施例的多模式層3分組轉(zhuǎn)發(fā)裝置的網(wǎng)絡(luò)圖,該分組轉(zhuǎn)發(fā)裝置包括連接到多個(gè)終端裝置的邊緣模塊和連接到一個(gè)或多個(gè)核心網(wǎng)絡(luò)裝置的聚合模塊;圖2為示出了根據(jù)本申請(qǐng)描述的主題的實(shí)施例的在IP路由的總數(shù)量與I/O模塊的基于硬件的LPM表的容量之間的示例關(guān)系的圖表,該關(guān)系用于在LPM轉(zhuǎn)發(fā)模式與IPFDB轉(zhuǎn)發(fā)模式之間進(jìn)行選擇;圖3為根據(jù)本申請(qǐng)描述的主題的實(shí)施例的示例多模式層3分組轉(zhuǎn)發(fā)裝置的方框圖,該分組轉(zhuǎn)發(fā)裝置包括可以以LPM轉(zhuǎn)發(fā)模式和IPFDB轉(zhuǎn)發(fā)模式之一進(jìn)行操作的I/O模塊;圖4為示出了根據(jù)本申請(qǐng)描述的主題的實(shí)施例的用于在多模式層3分組轉(zhuǎn)發(fā)裝置處路由分組的示例步驟的流程圖;以及圖5為示出了根據(jù)本申請(qǐng)描述的主題的實(shí)施例的用于在多模式層3分組轉(zhuǎn)發(fā)裝置處路由分組的示例步驟的更詳細(xì)流程圖。
      具體實(shí)施例方式如上文所述,由于傳統(tǒng)網(wǎng)絡(luò)裝置可能包括具有不同的基于硬件的LPM表大小的I/O模塊的混合,從而可能希望以LPM模式操作某些I/O模塊而以IPFDB模式操作其他模塊。根據(jù)本申請(qǐng)描述的主題,公開(kāi)了用于針對(duì)每個(gè)模塊在IP切換模式之間進(jìn)行自動(dòng)選擇的方法。該方法可包括確定位于多模塊IP分組轉(zhuǎn)發(fā)裝置(例如路由器)中的每個(gè)I/o模塊上的硬件LPM表的容量。接著,確定當(dāng)前存儲(chǔ)在軟件LPM表中(被所有I/O模塊共享)的路由的數(shù)量。如果軟件LPM表可被整體地存儲(chǔ)在I/O模塊的硬件LPM表內(nèi),則可為該I/O模塊自動(dòng)選擇LPM模式。反之,如果軟件LPM表的內(nèi)容不能存儲(chǔ)在特定I/O模塊的硬件LPM表內(nèi),則可以將該I/O模塊自動(dòng)轉(zhuǎn)換為以IPFDB模式操作,這可更有效的使用硬件資源。因而,可基于網(wǎng)絡(luò)條件最佳地自動(dòng)地操作包括具有不同硬件LPM表大小的I/O模塊的多模塊分組轉(zhuǎn)發(fā)裝置。在下文中,現(xiàn)將關(guān)于圖I描述包括多模塊IP分組轉(zhuǎn)發(fā)裝置的示例系統(tǒng)。 圖I為示出了根據(jù)本申請(qǐng)描述的主題的實(shí)施例用于針對(duì)每個(gè)模塊在IP切換模式之間進(jìn)行自動(dòng)選擇的多模塊IP分組轉(zhuǎn)發(fā)裝置的網(wǎng)絡(luò)圖。參見(jiàn)圖1,分組轉(zhuǎn)發(fā)裝置100可包括一個(gè)或多個(gè)I/o模塊102A-102C和106A-106B。例如,分組轉(zhuǎn)發(fā)裝置100可包括邊緣模塊 102A-102C,其連接到表示直接通信主機(jī)的終端104。例如,I/O模塊102B可連接到標(biāo)注了主機(jī)Ia-主機(jī)nA的任意數(shù)量的主機(jī)104。類(lèi)似地,I/O模塊102B可連接到標(biāo)注了主機(jī)Ib-主機(jī)nB的主機(jī)104,I/O模塊102C可連接到標(biāo)注了主機(jī)1。_主機(jī)η。的主機(jī)104。聚合模塊106Α和106Β可連接到核心網(wǎng)絡(luò)裝置108 (即標(biāo)注了核心I到核心η的任意數(shù)量的核心),核心網(wǎng)絡(luò)裝置108用于處理大量的網(wǎng)絡(luò)業(yè)務(wù)。由于核心網(wǎng)絡(luò)裝置108典型地與大量路由和較少直接連接的主機(jī)相關(guān)聯(lián),所以考慮到路由表大小和IP主機(jī)(直接和遠(yuǎn)程)的可能數(shù)量,可以對(duì)聚合模塊106Α和106Β進(jìn)行優(yōu)化,用于執(zhí)行最長(zhǎng)前綴匹配搜索。由于此原因,可以理解的是,邊緣模塊102A-102C也可被稱(chēng)為低容量I/O模塊,這是由于它們可能具有較小的IPFDB和LPM表大小,因此與大容量聚合模塊106Α-106Β相比,它們支持較少的主機(jī)和路由。此外,在低容量I/O模塊(邊緣模塊102A-102C)的種類(lèi)內(nèi),硬件IPFDB和LPM表的相對(duì)大小可以改變。為了對(duì)其進(jìn)行說(shuō)明,I/O模塊102Α在下文中可被稱(chēng)為“低容量” I/O模塊(例如支持512個(gè)路由和2,000個(gè)主機(jī)),I/O模塊102Β可被稱(chēng)為“較低容量”1/0模塊(例如支持256個(gè)路由和1,500個(gè)主機(jī)),并且I/O模塊102C可被稱(chēng)為“最低容量” I/O模塊(例如支持128個(gè)路由和1,000個(gè)主機(jī))。與低容量邊緣模塊102A-102C相反,聚合模塊106Α-106Β可具有明顯較大的硬件IPFDB和LPM表大小,因此可支持明顯較大量的主機(jī)和路由。聚合模塊106Α和106Β可連接到標(biāo)注了核心I到核心η的一個(gè)或多個(gè)核心網(wǎng)絡(luò)裝置108,因此可處理比邊緣模塊102A-102C大得多的業(yè)務(wù)量。聚合模塊106Α和106Β的每一個(gè)還可包括基于硬件的IPFDB和LPM表。聚合模塊106Α-106Β還可被稱(chēng)為高容量模塊,這是由于聚合模塊106Α-106Β的每一個(gè)例如支持約16,000個(gè)主機(jī)和250,000個(gè)路由。如上文所述,當(dāng)路由數(shù)量較少時(shí),所有的I/O模塊102A-102C和106Α-106Β都可從LPM轉(zhuǎn)發(fā)方式中受益。然而,隨著路由數(shù)量增加并越過(guò)預(yù)定閾值,僅高容量I/O模塊可從LPM轉(zhuǎn)發(fā)方式中受益。因此,本申請(qǐng)描述的主題提供了一旦路由數(shù)量超過(guò)閾值,就將低容量I/O模塊自動(dòng)地轉(zhuǎn)換到IPFDB轉(zhuǎn)發(fā)。結(jié)果是,到達(dá)給定I/O模塊的業(yè)務(wù)可以自動(dòng)地利用針對(duì)該模塊的最佳轉(zhuǎn)發(fā)方式(即LPM或IPFDB)。因此,包括以LPM和IPFDB轉(zhuǎn)發(fā)模式的混合進(jìn)行操作的多個(gè)I/O模塊的分組轉(zhuǎn)發(fā)裝置可被稱(chēng)作混合模式或多模式分組轉(zhuǎn)發(fā)裝置。本申請(qǐng)描述的自動(dòng)方式的一個(gè)優(yōu)點(diǎn)是其通過(guò)將硬件LPM表用作各個(gè)活動(dòng)主機(jī)的高速緩沖存儲(chǔ)器,來(lái)允許低容量I/o模塊中的更多HW轉(zhuǎn)發(fā)。并不是將整個(gè)路由表的無(wú)意義片段存儲(chǔ)在LPM表,相反低容量I/O模塊可在LPM表和IPFDB中都存儲(chǔ)活動(dòng)主機(jī),從而為盡可能多的主機(jī)提供更快的HW轉(zhuǎn)發(fā)。本申請(qǐng)描述的自動(dòng)方式的另一個(gè)優(yōu)點(diǎn)是其避免了強(qiáng)制用戶(hù)為每個(gè)I/O模塊正確地預(yù)配置適當(dāng)模式。為給定I/o模塊準(zhǔn)確地預(yù)測(cè)IP路由的數(shù)量可能是困難的,此外,IP路由的數(shù)量可隨著時(shí)間改變。結(jié)果是某些I/o模塊被低效地配置或者正確地配置每個(gè)I/O模塊所需要的時(shí)間對(duì)用戶(hù)是繁重地。通過(guò)允許分組轉(zhuǎn)發(fā)裝置針對(duì)每個(gè)模塊自動(dòng)地選擇最佳分組轉(zhuǎn)發(fā)方式,所有I/o模塊都有效地操作而不會(huì)對(duì)用戶(hù)造成負(fù)擔(dān)。圖2A-2D為示出了根據(jù)本申請(qǐng)描述的主題的實(shí)施例的在IP路由的總數(shù)量與基于硬件的LPM表的容量之間的示例關(guān)系的圖表,所述關(guān)系用于在LPM轉(zhuǎn)發(fā)模式與IPFDB轉(zhuǎn)發(fā)模式之間進(jìn)行選擇。具體地,圖2A和圖2B示出了低容量I/O模塊和高容量I/O模塊的相 對(duì)的表大小。圖2C和圖2D分別示出了用于區(qū)分LPM模式和IPFDB模式對(duì)于在圖2A和圖2B中所示的示例低容量I/O和高容量I/O模塊而言何時(shí)為最優(yōu)的示例閾值。如同在本申請(qǐng)所使用的,低容量I/o模塊可以指具有相對(duì)較小的HW LPM表大小的I/O模塊。相反,高容量I/O模塊可以指具有相對(duì)較大的HW LPM表大小的I/O模塊。如上文所述,邊緣模塊典型地為低容量I/O模塊,并且聚合模塊典型地為高容量I/O模塊。然而,可理解在低容量和高容量I/O模塊之間,可能存在硬件LPM表大小中的進(jìn)一步變化。例如,在生產(chǎn)費(fèi)用敏感的網(wǎng)絡(luò)設(shè)備中,某些低容量I/O模塊可包括支持最大為256個(gè)路由的基于硬件的LPM表,而其他低容量I/O模塊可包括支持最大為512個(gè)路由的基于硬件的LPM表。圖2A示出了用于低容量I/O模塊102A的基于硬件的LPM表和IPFDB的示例大小。參見(jiàn)圖2A,低容量I/O模塊102A可包括HW LPM表200和HW IPFDB 202。LPM表200的容量可以根據(jù)能夠被存儲(chǔ)在該表中的路由的數(shù)量來(lái)測(cè)量,如圖2A的左欄所示。相反,IPFDB202的容量可以通過(guò)能夠存儲(chǔ)的最大數(shù)量的主機(jī)條目來(lái)測(cè)量,如圖右欄所示。例如,LPM表200可存儲(chǔ)多達(dá)512個(gè)路由并且IPFDB 202可存儲(chǔ)多達(dá)2,000個(gè)主機(jī)??梢岳斫獾氖牵瑘D2A-圖2D的各方面可不按照比例進(jìn)行顯示。類(lèi)似地,圖2B示出了用于高容量I/O模塊106A的基于硬件的LPM表和IPFDB的示例大小。高容量I/o模塊106A可以比低容量I/O模塊102A支持相對(duì)較大數(shù)量的路由和/或主機(jī)。例如,HW LPM表204可支持最大250,000個(gè)路由并且HW IPFDB 206可支持最大16,000個(gè)主機(jī)。接著,考慮分組轉(zhuǎn)發(fā)裝置100的軟件路由表當(dāng)前存儲(chǔ)25,000個(gè)路由的場(chǎng)景。由于25,000個(gè)路由可被整體存儲(chǔ)在高容量I/O模塊106A上的HWLPM表204內(nèi)(SP25,000〈250,000),所以可能希望以LPM模式操作(或繼續(xù)操作)高容量I/O模塊106A。相反,由于25,000個(gè)路由不能被存儲(chǔ)在低容量I/O模塊102A上的HW LPM表200內(nèi)(SP25,000>512),所以可能希望以IPFDB模式操作低容量I/O模塊102A。在下文中,將關(guān)于圖2C和圖2D更詳細(xì)的描述這些場(chǎng)景中的每個(gè)場(chǎng)景。圖2C和圖2D分別示出了 HW LPM表200和204的容量與存儲(chǔ)在軟件中的路由數(shù)量之間的示例關(guān)系。具體地,圖2C中示出的圖表與圖2A中示出的低容量I/O模塊102A相對(duì)應(yīng),而圖2D中示出的圖表與圖2B中示出的高容量I/O模塊106A相對(duì)應(yīng)。參見(jiàn)圖2C,可以理解的是,隨著存儲(chǔ)在軟件中的路由數(shù)量增加,存儲(chǔ)路由所需要的HW LPM表200的百分比也增加。對(duì)于HW LPM表200,達(dá)到在512個(gè)路由時(shí)達(dá)到表容量的100%,如點(diǎn)208所示。在一個(gè)實(shí)施例中,對(duì)于少于512個(gè)的路由數(shù)量和/或小于100%的容量利用比而言,以LPM模式操作低容量I/O模塊102A可能是最佳的。在其他實(shí)施例中,用于操作低容量I/O模塊102A的最佳值可以小于或大于512個(gè)路由/100%容量利用率。一個(gè)示例閾值點(diǎn)(在該點(diǎn)下LPM模式對(duì)于低容量I/O模塊102A可為最佳)可由陰影區(qū)域210表示。相反地,對(duì)于大于512個(gè)路由/100%容量利用率的值(或無(wú)論選擇哪個(gè)閾值),IPFDB模式可為最佳,如無(wú)陰影區(qū)域212所示。繼續(xù)上面描述的軟件路由表當(dāng)前存儲(chǔ)25,000個(gè)路由的示例場(chǎng)景,可以理解的是,25,000個(gè)路由遠(yuǎn)在表示LPM模式何時(shí)最佳的陰影區(qū)域210之外。如數(shù)據(jù)點(diǎn)214所示,25,000個(gè)路由與HW LPM表200的容量的約4,882%相對(duì)應(yīng)?;蛘?,以其他方式表達(dá),HW LPM表200僅能夠存儲(chǔ)軟件表中所存儲(chǔ)的路由的總數(shù)量的2% (未示出)。
      參見(jiàn)圖2D,可以理解的是,類(lèi)似圖2C,隨著存儲(chǔ)在軟件中的路由數(shù)量增加,存儲(chǔ)路由所需要的HW LPM表204的百分比也增加。對(duì)于HW LPM表204,在250,000個(gè)路由處達(dá)到表容量的100%,如點(diǎn)216所示。因此,與低容量I/O模塊102A相反,可以在大得多的路由數(shù)量處實(shí)現(xiàn)相同的利用百分比閾值。例如,如果軟件表(未示出)中的路由數(shù)量小于與小于100%的容量利用百分比相對(duì)應(yīng)的250,000個(gè)路由,則以LPM模式操作高容量I/O模塊106A可能是最佳的。類(lèi)似圖2C,LPM模式對(duì)于高容量I/O模塊106A可為最佳的值可由陰影區(qū)域218表示,而IPFDB模式可為最佳的值可以由無(wú)陰影區(qū)域220表示。返回到上面描述的軟件表存儲(chǔ)25,000個(gè)路由的示例場(chǎng)景,與圖2C相反,可以理解的是,25,000個(gè)路由很好地在表示何時(shí)LPM模式最佳的陰影區(qū)域218內(nèi)。如數(shù)據(jù)點(diǎn)222所示,25,000個(gè)路由與HW LPM表106A的容量的約10%相對(duì)應(yīng)。因此,可為高容量I/O模塊106A自動(dòng)選擇LPM模式,而可為低容量I/O模塊102A自動(dòng)選擇IPFDB。圖3為示出了根據(jù)本申請(qǐng)描述的主題的實(shí)施例的多模式層3分組轉(zhuǎn)發(fā)裝置的示例組件的方框圖。參見(jiàn)圖3,分組轉(zhuǎn)發(fā)裝置100可包括經(jīng)由交換機(jī)結(jié)構(gòu)連接在一起的一個(gè)或多個(gè)I/O模塊和管理模塊。例如,分組轉(zhuǎn)發(fā)裝置100可包括低容量I/O模塊102A和高容量I/O模塊106A。模塊102A可包括用于處理由I/O模塊102A接收的分組的分組轉(zhuǎn)發(fā)硬件300。分組轉(zhuǎn)發(fā)硬件300可包括轉(zhuǎn)發(fā)引擎302 ;硬件LPM表200,用于存儲(chǔ)來(lái)自從IP路由協(xié)議(即可變長(zhǎng)度前綴和下一跳地址)知悉的IP路由表(即軟件LPM表312)的條目;以及硬件IPFDB 202,用于存儲(chǔ)與本地和/或遠(yuǎn)程主機(jī)相對(duì)應(yīng)的條目??梢岳斫獾氖牵蓮奈挥诠芾砟K304上的IP路由表接收在每個(gè)I/O模塊的LPM表中包含的路由。類(lèi)似地,I/O模塊106A可包括分組轉(zhuǎn)發(fā)硬件300,其包括轉(zhuǎn)發(fā)引擎302、硬件實(shí)現(xiàn)的LPM表204以及硬件實(shí)現(xiàn)的IPFDB 206??衫斫猓瑸榱撕?jiǎn)化在圖3中沒(méi)有示出額外I/O模塊(例如I/O模塊102B、102C以及106B),但是在分組轉(zhuǎn)發(fā)裝置100中可以包括額外I/O模塊,而不會(huì)偏離在本申請(qǐng)描述的主題的范圍。還可以理解,硬件LPM表和硬件IPFDB可以是或者可以不是相同的硬件結(jié)構(gòu)。例如,某些轉(zhuǎn)發(fā)硬件結(jié)構(gòu)可以將單個(gè)表用于LPM和主機(jī)條目。單個(gè)表可以容納路由和/32個(gè)直接主機(jī),或者如果存在太多主機(jī)的話,則該表可自動(dòng)切換到容納/32個(gè)本地和遠(yuǎn)程主機(jī)。
      在一個(gè)實(shí)現(xiàn)中,轉(zhuǎn)發(fā)引擎302可首先在IPFDB 202/206中執(zhí)行查找,以確定將所接收到的分組轉(zhuǎn)發(fā)到何處。如果IPFDB 202/206中的查找失敗,則在LPM表200/204中執(zhí)行查找。如果LPM表200/204中的查找失敗,則可以將分組轉(zhuǎn)發(fā)到管理模塊304,管理模塊304在軟件表312和/或314中執(zhí)行查找以轉(zhuǎn)發(fā)分組。除了 I/O模塊102A和106A之外,分組轉(zhuǎn)發(fā)裝置100可包括管理模塊304和交換機(jī)結(jié)構(gòu)306。交換機(jī)結(jié)構(gòu)306在I/O模塊102AU06A和管理模塊304之間切換分組。管理模塊304可控制I/O模塊102A和106A的全部操作。此外,管理模塊304可包括控制其操作的CPU 308以及存儲(chǔ)軟件實(shí)現(xiàn)的LPM表312 (即IP路由表)和軟件實(shí)現(xiàn)的IPFDB 314的存儲(chǔ)器310。具體地,軟件LPM表312可包括通過(guò)參與IP路由協(xié)議(例如路由信息協(xié)議(RIP)和開(kāi)放式最短路優(yōu)先(OSPF))或經(jīng)由配置知悉的條目。管理模塊304還可包括自動(dòng)模式選擇模塊316,其用于自動(dòng)選擇用以操作I/O模塊102A和106A中的每一個(gè)的IP切換模式(即LPM模式或IPFDB模式)。在一個(gè)實(shí)施例中,管理模塊304可包括控制軟件IPFDB 314的更新的IPFDB更新控制器(未示出)。在一個(gè)實(shí)施例中,IPFDB更新控制器(未示出)可以維持分組轉(zhuǎn)發(fā)查找未 命中的計(jì)數(shù),這些分組查找未命中需要由CPU308在軟件LPM表312和軟件IPFDB 314中進(jìn)行查找。如上文所示,軟件LPM表312和軟件IPFDB 314可包括被知悉但是還沒(méi)有被填充到硬件的條目。當(dāng)使用模塊102A或106A中的一個(gè)模塊上的分組轉(zhuǎn)發(fā)硬件300發(fā)生未命中時(shí),可以將分組轉(zhuǎn)發(fā)到管理模塊304進(jìn)行轉(zhuǎn)發(fā)。管理模塊304可在軟件LPM表312或軟件IPFDB 314中執(zhí)行查找并轉(zhuǎn)發(fā)分組。根據(jù)再一個(gè)可能的實(shí)施例,IPFDB更新控制器(未示出)可與分組未命中計(jì)數(shù)表(未示出)通信,以追蹤分組轉(zhuǎn)發(fā)硬件查找導(dǎo)致未命中的分組的數(shù)量。通過(guò)對(duì)分組進(jìn)行采樣以及僅當(dāng)滿(mǎn)足特定條件時(shí)才向IPFDB 314添加主機(jī),IPFDB更新控制器(未示出)可避免不必要地用主機(jī)條目填充IPFDB 314。在2005年12月23日遞交的、美國(guó)專(zhuān)利申請(qǐng)序列No. 11/317, 665以及名稱(chēng)為“Method and System for AutomaticExpansion and Contraction of IP Host Forwarding Database,,、代理方案號(hào)為 2717P146的繼續(xù)美國(guó)專(zhuān)利申請(qǐng)中描述了此方面的額外細(xì)節(jié)。除了上述基于“機(jī)架”的實(shí)施例之外,本申請(qǐng)描述的主題還可應(yīng)用于基于“堆棧”的實(shí)施例。如在本申請(qǐng)使用的,“堆棧”可包括多個(gè)單獨(dú)的交換機(jī)(每個(gè)交換機(jī)被完全封入金屬片中),這些交換機(jī)可經(jīng)由電纜連接在一起以形成一個(gè)邏輯交換機(jī)。堆棧中的每個(gè)交換機(jī)可被稱(chēng)作“節(jié)點(diǎn)”,其中堆棧中的每個(gè)節(jié)點(diǎn)可以像圖3中示出的機(jī)架實(shí)施例中的1/0模塊102A-106A 一樣進(jìn)行行動(dòng)。類(lèi)似地,在交換機(jī)之一上運(yùn)行的軟件可執(zhí)行例如管理模塊304所執(zhí)行的那些功能之類(lèi)的功能,并且將交換機(jī)互連的電纜可執(zhí)行與交換機(jī)結(jié)構(gòu)306的功能類(lèi)似的功能。圖4為示出了根據(jù)本申請(qǐng)描述的主題的實(shí)施例用于在分組轉(zhuǎn)發(fā)裝置中針對(duì)每個(gè)模塊在IP切換模式之間進(jìn)行自動(dòng)選擇的示例步驟的流程圖。參見(jiàn)圖4,在步驟400中,確定基于硬件的LPM表的容量,其中,確定該容量包括確定可以存儲(chǔ)在基于硬件的LPM表中的IP路由的最大數(shù)量。例如,可以確定硬件LPM表200的容量為支持最大為512個(gè)路由。類(lèi)似地,可以確定硬件LPM表204的容量為支持最大為250,000個(gè)路由。在步驟402中,可以確定存儲(chǔ)在基于軟件的LPM表中的IP路由的數(shù)量。例如,基于軟件的LPM表312可以存儲(chǔ)25,000個(gè)路由??梢岳斫?,與在步驟400中進(jìn)行的確定相反,存儲(chǔ)在軟件LPM表312中的路由的數(shù)量可能不等于軟件表的容量(實(shí)際上,對(duì)于軟件表的容量并不存在限制),而是等于分組轉(zhuǎn)發(fā)裝置100所處理的路由的數(shù)量。例如,可以通過(guò)處理路由協(xié)議更新向軟件表312添加路由,或者使用配置指令添加路由。結(jié)果是,存儲(chǔ)在軟件表312中的路由的數(shù)量可以隨時(shí)間而改變。在步驟404中,可以確定存儲(chǔ)在基于軟件的LPM表中的IP路由的總數(shù)量與基于硬件的LPM表的容量之間的關(guān)系。該關(guān)系可包括特定I/O模塊的硬件LPM表的容量的閾值百分比。例如,512個(gè)路由可為L(zhǎng)PM表200的容量的100%,但是僅為L(zhǎng)PM表204的容量的O. 2%。替代地,該關(guān)系可包括路由的閾值數(shù)量,其可以或可以不與容量利用的特定百分比相對(duì)應(yīng)。該關(guān)系可包括將路由數(shù)量與硬件LPM表所支持的路由數(shù)量相比較。例如,25,000個(gè)路由可大于LPM表200所支持的512個(gè)路由,但是可小于LPM表204所支持的250,000個(gè)路由。在步驟406中,響應(yīng)于確定IP路由的總數(shù)量與基于硬件的LPM表的容量具有預(yù)定關(guān)系,可以以IPFDB模式自動(dòng)操作I/O模塊,其中以IPFDB模式操作I/O模塊包括用與主機(jī)相對(duì)應(yīng)的條目填充基于硬件的IPFDB和基于硬件的LPM表,以及使用I/O模塊的IPFDB和 LPM表對(duì)由I/O模塊接收的層3分組進(jìn)行路由,并且其中,與主機(jī)相對(duì)應(yīng)的條目包括主機(jī)的全I(xiàn)P地址。例如,可以確定這些數(shù)量的路由是否可以被全部存儲(chǔ)在給定I/O模塊的基于硬件的LPM表內(nèi)。換言之,可以將該關(guān)系表示為硬件LPM表的容量的閾值利用百分比。在其他實(shí)施例中,在路由的數(shù)量超過(guò)與硬件LPM表的100%相對(duì)應(yīng)的閾值之前,I/O模塊可在LPM與IPFDB模式之間進(jìn)行切換。例如,隨著軟件路由表變得填充有額外路由,可能希望在達(dá)到512個(gè)路由之前(例如500個(gè)路由)將低容量I/O模塊102A切換到IPFDB模式。例如,這可能是由于當(dāng)LPM表200達(dá)到90%容量時(shí)性能下降所引起的??商娲?,可能希望在達(dá)到512個(gè)路由之后(的某個(gè)點(diǎn)例如520個(gè)路由)將低容量I/O模塊102A切換到IPFDB模式。例如,如果LPM表200基于網(wǎng)絡(luò)條件一直存儲(chǔ)大約510到515個(gè)路由,那么可能希望避免重復(fù)刷新LPM表200并用主機(jī)條目替換它,直到LPM表200被明顯淹沒(méi)為止(例如5,000個(gè)路由)。此外,應(yīng)理解,除了上面描述的用于確定可存儲(chǔ)在容量為已知或固定量的硬件表中的路由的最大數(shù)量的方法之外,還可以存在容量是依賴(lài)于數(shù)據(jù)(又名“算法的”)的其他類(lèi)型的硬件表。本申請(qǐng)描述的主題還可應(yīng)用于算法硬件LPM表,而不偏離本申請(qǐng)描述的主題的范圍。在一個(gè)可能的實(shí)施例中,可以使用通知機(jī)制來(lái)指示不能添加特定路由,這是由于其不適應(yīng)硬件LPM表??梢栽贚PM與IPFDB模式之間進(jìn)行轉(zhuǎn)換的決策過(guò)程中使用這種通知。例如,LPM與IPFDB模式之間的轉(zhuǎn)換可在第一通知為“滿(mǎn)”時(shí)被執(zhí)行,或者某些數(shù)量的路由超過(guò)了它。如上文所述,本申請(qǐng)描述的自動(dòng)模式選擇方式的一個(gè)優(yōu)點(diǎn)是其通過(guò)將硬件LPM表用作各個(gè)活動(dòng)主機(jī)的高速緩沖存儲(chǔ)器,來(lái)允許低容量I/o模塊中的更多HW轉(zhuǎn)發(fā)。并不是將整個(gè)路由表的無(wú)意義片段存儲(chǔ)在LPM表中,相反低容量I/O模塊可以在LPM表和IPFDB兩者中存儲(chǔ)活動(dòng)主機(jī),從而為盡可能多的主機(jī)提供更快的HW轉(zhuǎn)發(fā)。此外,通過(guò)允許分組轉(zhuǎn)發(fā)裝置針對(duì)每個(gè)模塊自動(dòng)地選擇最佳分組轉(zhuǎn)發(fā)方式,所有的I/O模塊都可以有效地操作,而不會(huì)通過(guò)為每個(gè)I/O模塊配置操作模式而增加用戶(hù)的負(fù)擔(dān)。圖5為示出了根據(jù)本申請(qǐng)描述的主題的實(shí)施例用于在分組轉(zhuǎn)發(fā)裝置中針對(duì)每個(gè)模塊在IP切換模式之間進(jìn)行自動(dòng)選擇的示例步驟的更詳細(xì)流程圖。參見(jiàn)圖5,在步驟500處,所有I/O模塊初始可以以LPM模式操作。例如,分別位于I/O模塊102A和106A上的硬件LPM表200和204可填充有與可變長(zhǎng)度因特網(wǎng)協(xié)議(IP)地址和下一跳地址相對(duì)應(yīng)的條目。分別位于I/O模塊102A和106A上的硬件IPFDB 202和206可填充有包括全長(zhǎng)IP地址(例如32-位IPv4或128-位IPv6)的與主機(jī)相對(duì)應(yīng)的條目。最后,以LPM模式操作所有I/O模塊可包括使用硬件LPM表200和204以及硬件IPFDB 202和206對(duì)I/O模塊102A和106A所接收的層3分組進(jìn)行路由。在步驟502中,確定IP路由的數(shù)量是否超過(guò)預(yù)定閾值。例如,對(duì)于低容量模塊102A,可確定存儲(chǔ)在軟件LPM表312中的IP路由的數(shù)量是否超過(guò)512個(gè)路由。應(yīng)理解,可以針對(duì)每個(gè)模塊來(lái)進(jìn)行這種確定,以考慮位于每個(gè)I/O模塊上的基于硬件的LPM表的容量的潛在差異。因而,對(duì)于高容量模塊106A,可確定存儲(chǔ)在軟件LPM表312中的IP路由的數(shù)量是否超過(guò)250,000個(gè)路由。如果在步驟502中確定IP路由數(shù)量沒(méi)有超過(guò)預(yù)定閾值,則控制可返回到步驟502,在步驟502中,I/O模塊可繼續(xù)以LPM模式操作并且可再次確定IP路由的數(shù)量是否沒(méi)有超過(guò)預(yù)定閾值。
      然而,如果在步驟502中確定IP路由數(shù)量超過(guò)預(yù)定閾值,則控制可進(jìn)行到步驟504,在步驟504中,可以將低容量I/O模塊轉(zhuǎn)換為以IPFDB模式操作??梢岳斫獾氖?,使用低容量和高容量模塊僅僅旨在進(jìn)行說(shuō)明而不是限制,這是因?yàn)殡m然低容量模塊可首先轉(zhuǎn)換為IPFDB模式,然而如果路由表充分增加則高容量模塊也可轉(zhuǎn)換為IPFDB模式。由于低容量I/O模塊之前是以LPM模式操作的(即步驟500),所以轉(zhuǎn)換為以IPFDB模式操作的過(guò)程初始可包括刪除存儲(chǔ)在硬件LPM表中的路由,除了本地傳遞所需要的直接交互路由之外。在IPFDB模式中,仍然可以在I/O模塊的硬件IPFDB中存儲(chǔ)任何本地主機(jī)和遠(yuǎn)程主機(jī)??梢岳斫獾氖?,當(dāng)從LPM模式轉(zhuǎn)換成IPFDB模式時(shí),可以不刪除子網(wǎng)路由、刪除一些子網(wǎng)路由或刪除所有子網(wǎng)路由。刪除一些而不是所有的子網(wǎng)路由將給出較大的主機(jī)高速緩沖存儲(chǔ)器空間,而在LPM表中留有一些子網(wǎng)路由用以進(jìn)行LPM轉(zhuǎn)發(fā)。例如可通過(guò)硬件“命中位”來(lái)確定要保留或刪除的精確路由,“命中位”表示當(dāng)轉(zhuǎn)發(fā)分組時(shí)是否使用一個(gè)路由進(jìn)行查找??梢詣h除在某個(gè)時(shí)間段上沒(méi)有被“命中”的路由,以為L(zhǎng)PM表中的主機(jī)獲得更多空間。在步驟506中,當(dāng)以IPFDB模式操作時(shí),I/O模塊可根據(jù)需要安裝額外主機(jī)。例如,可基于采樣的慢路轉(zhuǎn)發(fā)的分組來(lái)添加主機(jī)。再次參見(jiàn)圖3,慢路處理可包括在I/O模塊102A處接收分組、確定目的地地址并未位于IPFDB 202或LPM表200中、以及經(jīng)由交換機(jī)結(jié)構(gòu)306將分組轉(zhuǎn)發(fā)到管理模塊304。管理模塊304可在處理之后將與分組相對(duì)應(yīng)的主機(jī)條目添加到軟件IPFDB 314。管理模塊304接著可將主機(jī)條目信息添加到硬件IPFDB 202和/ 或 206。在步驟508中,對(duì)于以IPFDB模式操作的I/O模塊,確定是否退出IPFDB模式。例如,可以確定路由數(shù)量是否降到了第二閾值以下。可以理解的是,在一個(gè)實(shí)施例中,第二閾值可小于第一閾值,以避免顛簸(thrashing),其可能由在LPM模式與IPFDB模式之間來(lái)回重復(fù)以及從而重復(fù)刪除和再次填充基于硬件的表200-206所導(dǎo)致。例如,繼續(xù)上面描述的當(dāng)路由數(shù)量超過(guò)512個(gè)路由(即第一閾值)時(shí)進(jìn)入IPFDB模式的實(shí)例,僅當(dāng)路由數(shù)量下降到低于400個(gè)路由(即第二閾值)時(shí),才可退出IPFDB模式。然而,可以理解的是,在其他實(shí)施例中,第一和第二閾值可以相同,而不偏離本申請(qǐng)描述的主題的范圍。如果在步驟508中確定路由數(shù)量沒(méi)有下降到低于第二閾值,則控制可返回到步驟508,在步驟508中,可再次確定路由數(shù)量是否下降到低于第二閾值。可替代地,如果路由數(shù)量已經(jīng)下降到低于第二閾值,則存在退出IPFDB模式的數(shù)個(gè)選項(xiàng)之一。第一選項(xiàng)可包括如果滿(mǎn)足步驟508中的條件則迅速退出IPFDB模式。換言之,路由數(shù)量是否已經(jīng)下降到低于第二閾值可為退出IPFDB模式的唯一條件。其他選項(xiàng)可包括在退出IPFDB模式之前的額外條件。如圖5所示,第二選項(xiàng)可包括在步驟510中確定除了路由數(shù)量低于第二閾值之外是否已經(jīng)過(guò)去了預(yù)定的時(shí)段。例如,僅在路由數(shù)量低于400個(gè)路由(即第二閾值)持續(xù)30秒之后,才可以退出IPFDB模式??梢岳斫獾氖?,時(shí)段可為預(yù)配置的或動(dòng)態(tài)的或者可針對(duì)每個(gè)模塊定制。因而,可為每個(gè)I/O模塊設(shè)定30秒的時(shí)段,低容量模塊可具有15秒的時(shí)段,并且高容量I/O模塊可具有45秒的時(shí)段,或者可基于網(wǎng)絡(luò)條件或其他因素動(dòng)態(tài)調(diào)節(jié)時(shí)段。第三選項(xiàng)可包括在步驟512中確定路由數(shù)量是否低于第二閾值(即步驟508)并且 是否移除或禁止了所有的低容量模塊。例如,在路由數(shù)量下降到低于400個(gè)路由(第二閾值)并且物理地或通過(guò)管理員配置移除或禁止了低容量I/O模塊102A-102C之后,可以退出IPFDB模式。如果在步驟512中使用試探法,并且接著插入或使能低容量I/O模塊,則可用所有IP路由和主機(jī)更新低容量I/O模塊(即填充的其硬件LPM表和IPFDB),并且初始可以以LPM模式操作低容量I/O模塊??梢岳斫獾氖牵旧暾?qǐng)描述的主題可以應(yīng)用在單一的機(jī)器范圍的操作模式中,或者可以用在以下情況中單獨(dú)地考慮每個(gè)I/O模塊,并基于該模塊的最佳操作將該模塊置于其自己的操作模式中。退出IPFDB模式514可包括一個(gè)或多個(gè)步驟。在一個(gè)實(shí)施例中,如果使用在步驟508或510中描述的試探法,則退出IPFDB模式514可以包括在步驟516中用非直接路由更新所有低容量I/O模塊,以及在步驟518中移除不再需要的遠(yuǎn)程主機(jī)。例如,由于在轉(zhuǎn)換回LPM模式期間硬件LPM表200中的主機(jī)條目被路由取代,所以某些路由可消除在硬件IPFDB 202中存儲(chǔ)某些遠(yuǎn)程主機(jī)條目的需要,從而也可將這些遠(yuǎn)程主機(jī)條目移除。應(yīng)理解的是,可改變本發(fā)明的各種細(xì)節(jié)而不偏離本發(fā)明的范圍。此外,前述描述僅是為了說(shuō)明的目的,而不是為了限制的目的。
      權(quán)利要求
      1.一種用于針對(duì)每個(gè)模塊自動(dòng)地選擇轉(zhuǎn)發(fā)方式的方法,所述方法包括 對(duì)于多輸入/輸出(I/o)模塊分組轉(zhuǎn)發(fā)裝置中的I/O模塊,所述I/O模塊包括最長(zhǎng)前綴匹配(LPM)表和因特網(wǎng)協(xié)議轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(IPFDB); 以LPM模式操作所述I/O模塊,其中以LPM模式操作所述I/O模塊包括用與活動(dòng)主機(jī)相對(duì)應(yīng)的條目填充所述IPFDB,用來(lái)自具有從IP路由協(xié)議知悉的路由的IP路由表的條目填充所述LPM表,以及使用所述I/O模塊的所述IPFDB和所述LPM表對(duì)所述I/O模塊接收到的層3分組進(jìn)行路由; 確定所述LPM表的容量; 確定所述IP路由表中的IP路由的總數(shù)量; 確定所述IP路由表中的IP路由的總數(shù)量與所述LPM表的容量之間的關(guān)系;以及 響應(yīng)于確定所述IP路由表中的IP路由的總數(shù)量與所述LPM表的容量具有預(yù)定關(guān)系,自動(dòng)地將所述I/O模塊從所述LPM模式切換到IPFDB模式,其中所述IPFDB和所述LPM表填充有與活動(dòng)主機(jī)相對(duì)應(yīng)的條目,并且使用所述I/O模塊的所述IPFDB和所述LPM表對(duì)所述I/O模塊接收到的層3分組進(jìn)行路由。
      2.如權(quán)利要求I所述的方法,其中所述LPM表的容量包括固定的已知的量。
      3.如權(quán)利要求2所述的方法,其中確定所述LPM表的容量包括確定所述LPM表所支持的地址空間的大小和所述LPM表所支持的路由的最大數(shù)量中的一個(gè)。
      4.如權(quán)利要求2所述的方法,其中確定IP路由的總數(shù)量與所述LPM表的容量之間的關(guān)系包括確定IP路由的數(shù)量是否為以下中的一個(gè)小于第一閾值、超過(guò)所述第一閾值或等于所述第一閾值。
      5.如權(quán)利要求4所述的方法,其中所述第一閾值包括以下中的一個(gè)比所述LPM表的容量少的預(yù)定的路由數(shù)量、比所述LPM表的容量多的預(yù)定的路由數(shù)量以及等于所述LPM表的容量。
      6.如權(quán)利要求4所述的方法,其中所述第一閾值包括能夠存儲(chǔ)在所述LPM表中的IP路由的數(shù)量。
      7.如權(quán)利要求I所述的方法,其中所述LPM表的容量包括取決于存儲(chǔ)在所述LPM表中的數(shù)據(jù)的通過(guò)算法確定的量。
      8.如權(quán)利要求7所述的方法,包括響應(yīng)于確定IP路由的總數(shù)量與所述LPM表的容量具有預(yù)定關(guān)系而生成通知,以及響應(yīng)于所述通知,自動(dòng)地將所述I/O模塊從所述LPM模式切換到所述IPFDB模式。
      9.如權(quán)利要求7所述的方法,其中確定IP路由的總數(shù)量與所述LPM表的容量之間的關(guān)系包括確定IP路由的數(shù)量是否為以下中的一個(gè)小于第一閾值、超過(guò)所述第一閾值或等于所述第一閾值。
      10.如權(quán)利要求9所述的方法,其中所述第一閾值包括以下中的一個(gè)比所述LPM表的容量少的預(yù)定的路由數(shù)量、比所述LPM表的容量多的預(yù)定的路由數(shù)量以及等于所述LPM表的容量。
      11.如權(quán)利要求9所述的方法,其中所述第一閾值包括能夠存儲(chǔ)在所述LPM表中的IP路由的數(shù)量。
      12.如權(quán)利要求I所述的方法,包括確定所述IP路由表中的IP路由的數(shù)量是否小于第二閾值;以及響應(yīng)于確定所述IP路由表中的IP路由的數(shù)量小于所述第二閾值,從IPFDB模式切換到LPM模式。
      13.如權(quán)利要求12所述的方法,還包括 確定所述IP路由表中的IP路由的數(shù)量小于所述第二閾值是否持續(xù)了預(yù)定的時(shí)段;以及 響應(yīng)于確定所述IP路由表中的IP路由的數(shù)量小于所述第二閾值持續(xù)了預(yù)定的時(shí)段,從IPFDB模式切換到LPM模式。
      14.如權(quán)利要求I所述的方法,其中自動(dòng)地從LPM模式切換到IPFDB模式包括從所述LPM表中刪除路由。
      15.一種分組轉(zhuǎn)發(fā)裝置,所述裝置包括 至少一個(gè)輸入/輸出(I/o)模塊,其包括 最長(zhǎng)如綴匹配(LPM)表; 因特網(wǎng)協(xié)議轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(IPFDB); 其中,所述I/O模塊以LPM模式操作,其中以LPM模式操作所述I/O模塊包括用與活動(dòng)主機(jī)相對(duì)應(yīng)的條目填充所述IPFDB,用來(lái)自從IP路由協(xié)議知悉的IP路由表的條目填充所述LPM表,以及使用所述I/O模塊的所述IPFDB和所述LPM表對(duì)所述I/O模塊接收到的層3分組進(jìn)行路由; 自動(dòng)模式選擇模塊,其用于 確定所述LPM表的容量; 確定所述IP路由表中的IP路由的總數(shù)量;確定所述IP路由表中的IP路由的總數(shù)量與所述LPM表的容量之間的關(guān)系;以及響應(yīng)于確定所述IP路由表中的IP路由的總數(shù)量與所述LPM表的容量具有預(yù)定關(guān)系,自動(dòng)地將所述I/O模塊從所述LPM模式切換到IPFDB模式,其中操作的所述IPFDB和所述LPM表填充有與活動(dòng)主機(jī)相對(duì)應(yīng)的條目,并且所述I/O模塊接收到的層3分組是使用所述I/O模塊的所述IPFDB和所述LPM表進(jìn)行路由的。
      16.如權(quán)利要求15所述的分組轉(zhuǎn)發(fā)裝置,其中所述LPM表的容量包括固定的已知的量。
      17.如權(quán)利要求16所述的分組轉(zhuǎn)發(fā)裝置,其中所述自動(dòng)模式選擇模塊被配置為確定所述LPM表所支持的地址空間的大小和所述LPM表所支持的路由的最大數(shù)量中的一個(gè)。
      18.如權(quán)利要求16所述的分組轉(zhuǎn)發(fā)裝置,其中所述自動(dòng)模式選擇模塊被配置為確定IP路由的數(shù)量是否為以下中的一個(gè)小于第一閾值、超過(guò)所述第一閾值或等于所述第一閾值。
      19.如權(quán)利要求18所述的分組轉(zhuǎn)發(fā)裝置,其中所述第一閾值包括以下中的一個(gè)比所述LPM表的容量少的預(yù)定的路由數(shù)量、比所述LPM表的容量多的預(yù)定的路由數(shù)量以及等于所述LPM表的容量。
      20.如權(quán)利要求18所述的分組轉(zhuǎn)發(fā)裝置,其中所述第一閾值包括能夠存儲(chǔ)在所述LPM表中的IP路由的數(shù)量。
      21.如權(quán)利要求15所述的分組轉(zhuǎn)發(fā)裝置,其中所述LPM表的容量包括取決于存儲(chǔ)在所述LPM表中的數(shù)據(jù)的通過(guò)算法確定的量。
      22.如權(quán)利要求21所述的分組轉(zhuǎn)發(fā)裝置,其中所述自動(dòng)模式選擇模塊被配置為響應(yīng)于確定IP路由的總數(shù)量與所述LPM表的容量具有預(yù)定關(guān)系而生成通知,以及響應(yīng)于所述通知,自動(dòng)地將所述I/O模塊從所述LPM模式切換到所述IPFDB模式。
      23.如權(quán)利要求21所述的分組轉(zhuǎn)發(fā)裝置,其中所述自動(dòng)模式選擇模塊被配置為確定IP路由的數(shù)量是否為以下中的一個(gè)小于第一閾值、超過(guò)所述第一閾值或等于所述第一閾值。
      24.如權(quán)利要求23所述的分組轉(zhuǎn)發(fā)裝置,其中所述第一閾值包括以下中的一個(gè)比所述LPM表的容量少的預(yù)定的路由數(shù)量、比所述LPM表的容量多的預(yù)定的路由數(shù)量以及等于所述LPM表的容量。
      25.如權(quán)利要求23所述的分組轉(zhuǎn)發(fā)裝置,其中所述第一閾值包括能夠存儲(chǔ)在所述LPM表中的IP路由的數(shù)量。
      26.如權(quán)利要求15所述的分組轉(zhuǎn)發(fā)裝置,其中所述自動(dòng)模式選擇模塊確定所述IP路由表中的IP路由的數(shù)量是否小于第二閾值,并且響應(yīng)于確定所述IP路由表中的IP路由的數(shù)量小于所述第二閾值,從所述IPFDB模式切換到所述LPM模式。
      27.如權(quán)利要求15所述的分組轉(zhuǎn)發(fā)裝置,其中所述自動(dòng)模式選擇模塊確定所述IP路由表中的IP路由的數(shù)量小于所述第二閾值是否持續(xù)了預(yù)定的時(shí)段,并且響應(yīng)于確定所述IP路由表中的IP路由的數(shù)量小于所述第二閾值持續(xù)了預(yù)定的時(shí)段,從所述IPFDB模式切換到所述LPM模式。
      28.如權(quán)利要求16所述的分組轉(zhuǎn)發(fā)裝置,其中當(dāng)以IPFDB模式操作所述I/O模塊時(shí)所述自動(dòng)模式選擇模塊從所述LPM表中刪除IP路由。
      29.一種計(jì)算機(jī)程序產(chǎn)品,包括體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行包括以下的步驟 對(duì)于多輸入/輸出(I/O)模塊分組轉(zhuǎn)發(fā)裝置中的I/O模塊,所述I/O模塊包括最長(zhǎng)前綴匹配(LPM)表和因特網(wǎng)協(xié)議轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(IPFDB),所述I/O模塊; 以LPM模式操作所述I/O模塊,其中以LPM模式操作所述I/O模塊包括用與主機(jī)相對(duì)應(yīng)的條目填充所述IPFDB,用來(lái)自具有從IP路由協(xié)議知悉的路由的IP路由表的條目填充所述LPM表,以及使用所述I/O模塊的所述IPFDB和所述LPM表對(duì)所述I/O模塊接收到的層3分組進(jìn)行路由; 確定所述LPM表的容量; 確定所述IP路由表中的IP路由的總數(shù)量; 確定所述IP路由表中的IP路由的總數(shù)量與所述LPM表的容量之間的關(guān)系;以及 響應(yīng)于確定所述IP路由表中的IP路由的總數(shù)量與所述LPM表的容量具有預(yù)定關(guān)系,自動(dòng)地從所述LPM模式切換到IPFDB模式,其中所述IPFDB和所述LPM表填充有與活動(dòng)主機(jī)相對(duì)應(yīng)的條目,并且所述I/O模塊接收到的層3分組是使用所述I/O模塊的所述IPFDB和所述LPM表進(jìn)行路由的。
      全文摘要
      本申請(qǐng)描述的主題包括用于在分組轉(zhuǎn)發(fā)裝置中針對(duì)每個(gè)模塊在因特網(wǎng)協(xié)議切換模式之間進(jìn)行自動(dòng)選擇的方法、系統(tǒng)以及計(jì)算機(jī)可讀介質(zhì)。根據(jù)一個(gè)方案,本申請(qǐng)描述的主題包括分組轉(zhuǎn)發(fā)裝置,其包括至少一個(gè)輸入/輸出(I/O)模塊。至少一個(gè)I/O模塊包括最長(zhǎng)前綴匹配(LPM)表和因特網(wǎng)協(xié)議轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)(IPFDB),并且分組轉(zhuǎn)發(fā)裝置包括IP路由表和IPFDB。當(dāng)I/O模塊以LPM模式操作時(shí),I/O模塊上的IPFDB填充有與活動(dòng)主機(jī)相對(duì)應(yīng)的條目填充,I/O模塊上的LPM表填充有具有從IP路由協(xié)議知悉的路由的IP路由表,并且由I/O模塊接收的層3分組是使用I/O模塊的IPFDB和LPM表進(jìn)行路由的。自動(dòng)模式選擇模塊確定I/O模塊上的LPM表的容量。自動(dòng)模式選擇模塊還確定存儲(chǔ)在IP路由表中的IP路由的總數(shù)量,并確定IP路由的總數(shù)量與LPM表的容量之間的關(guān)系。響應(yīng)于確定IP路由的總數(shù)量與LPM表的容量具有預(yù)定關(guān)系,自動(dòng)模式選擇模塊還自動(dòng)地將I/O模塊從LPM模式切換到IPFDB模式,其中IPFDB和LPM表填充有與活動(dòng)主機(jī)相對(duì)應(yīng)的條目,并且由I/O模塊接收到的層3分組是使用I/O模塊的IPFDB和LPM表進(jìn)行路由的。
      文檔編號(hào)H04L29/06GK102845033SQ201180018665
      公開(kāi)日2012年12月26日 申請(qǐng)日期2011年3月15日 優(yōu)先權(quán)日2010年3月15日
      發(fā)明者D·B·小格羅塞爾, E·J·瑞芙娜, O·L·斯托克斯 申請(qǐng)人:極進(jìn)網(wǎng)絡(luò)公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1