專(zhuān)利名稱(chēng):基于最長(zhǎng)前綴匹配算法的過(guò)濾器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及基于計(jì)算機(jī)的通信網(wǎng)絡(luò),更具體的是,涉及用于例如上述網(wǎng)絡(luò)的路由決策的執(zhí)行最長(zhǎng)前綴匹配(LPM)查找的系統(tǒng)和方法。
背景技術(shù):
通信網(wǎng)絡(luò),例如因特網(wǎng),使用包報(bào)頭中的尋址信息將包在網(wǎng)絡(luò)之間向目的節(jié)點(diǎn)轉(zhuǎn)發(fā)。典型地,路由信息實(shí)際上是分層的,這樣目的地址包括托管(host)目的節(jié)點(diǎn)的網(wǎng)絡(luò)和任何子網(wǎng)絡(luò)的地址。這種分層路由信息類(lèi)似于10位數(shù)字的電話號(hào)碼,其中前三位數(shù)字表示服務(wù)地區(qū)的地區(qū)代碼,第二個(gè)三位數(shù)字表示該地區(qū)中的一個(gè)特定交換機(jī),后面的四位數(shù)字代表一個(gè)該交換機(jī)服務(wù)的終端用戶。因此,當(dāng)呼叫被呼叫發(fā)起者發(fā)出后,該呼叫者連接的交換機(jī)僅需要確定地區(qū)代碼,以將該呼叫接到該國(guó)家的適當(dāng)?shù)貐^(qū)。類(lèi)似地,路由器通常查看IP地址中的分層路由信息以確定下一跳,而不關(guān)心目的節(jié)點(diǎn)的詳細(xì)地址。與電話號(hào)碼不同的是,IP地址中前綴的長(zhǎng)度并不是固定的,這使得查找更加復(fù)雜。
當(dāng)對(duì)因特網(wǎng)服務(wù)的期望增加時(shí),提高帶寬的需求也隨之增加。有很多因素影響數(shù)據(jù)流過(guò)因特網(wǎng)的速度,例如線路速率,數(shù)據(jù)服務(wù)質(zhì)量等。一個(gè)規(guī)定性能的主要因素是路由決策所花費(fèi)的時(shí)間。對(duì)于線路速率是典型的瓶頸的低速撥號(hào)業(yè)務(wù)來(lái)說(shuō),當(dāng)改善路由決策不會(huì)顯著地增加總的業(yè)務(wù)傳輸時(shí),路由決策的速度變成限制快速傳輸媒體(如光鏈路)帶寬的因素,因此,本算法就應(yīng)運(yùn)而生了。
當(dāng)因特網(wǎng)用戶的數(shù)量增加時(shí),對(duì)唯一地址的需求也在增加。因此,提供最多223個(gè)唯一地址的IPv4 32位地址空間也在迅速地耗盡。雖然已經(jīng)提出了例如網(wǎng)絡(luò)地址轉(zhuǎn)換的技術(shù),以擴(kuò)展IPv4地址空間的可用性,但這些解決方案卻破壞了透明的端到端連接。具有128位地址字段的IPv6已被部分引入,以改善地址空間問(wèn)題。
增加地址報(bào)頭的最終結(jié)果是每一個(gè)路由器必須潛在地查看非常長(zhǎng)的地址,以做出路由決策。此外,能夠?qū)Ω喙?jié)點(diǎn)尋址意味著IPv6路由表可潛在地包含比IPv4可能包含的更多的路由。
如前所述,分層尋址方案使路由器能夠?qū)⒐?jié)點(diǎn)分組成網(wǎng)絡(luò)。這減少了路由器的轉(zhuǎn)發(fā)表中記錄的數(shù)量,因?yàn)槁酚善骺苫谥黄ヅ涞刂返木W(wǎng)絡(luò)部分、前綴做出路由決策,而無(wú)需整個(gè)地址。
前綴匹配包含將部分地址與路由表中的記錄進(jìn)行比較。當(dāng)然,一個(gè)精確的路由算法可以快速給出最佳的路由信息,但典型地,這種查找要求路由表不切實(shí)際地大,且難于更新。確定最長(zhǎng)前綴匹配的技術(shù)已經(jīng)發(fā)展成為一個(gè)解決方案。
當(dāng)路由器以較高速度轉(zhuǎn)發(fā)時(shí),轉(zhuǎn)發(fā)算法的時(shí)間效率能對(duì)系統(tǒng)性能產(chǎn)生重大的影響。更有效率的算法,例如本發(fā)明提供的算法,會(huì)允許達(dá)到更高的系統(tǒng)吞吐量。
應(yīng)當(dāng)注意,本算法雖是針對(duì)IPv6的,但沒(méi)有理由認(rèn)為它不能用于IPv4或者任何其他需要LPM查找的應(yīng)用。
涉及IP路由查找的現(xiàn)有技術(shù)包括美國(guó)專(zhuān)利6,018,524,其于2000年1月25日公開(kāi),發(fā)明人為特納(Turner)等。特納等人的專(zhuān)利公開(kāi)了一種使用哈希表對(duì)前綴長(zhǎng)度進(jìn)行折半查找的算法。為了方便使用哈希表的折半查找,必須在哈希表中插入標(biāo)記,以指示路由表中較長(zhǎng)前綴長(zhǎng)度的記錄存在。標(biāo)記提供表中存在較長(zhǎng)前綴的指示,該較長(zhǎng)前綴可提供更好的匹配,還可包含用于較短前綴的下一跳信息,該較短前綴已被發(fā)現(xiàn)導(dǎo)致當(dāng)前查找失敗。這些標(biāo)記占據(jù)哈希表的重要部分,能占據(jù)哈希表內(nèi)容的10%到60%(典型地為30%),導(dǎo)致更頻繁的哈希沖突。在IPv6的情況下,使用該算法需要多達(dá)7次的哈希查找,不包括沖突。還有其它方案能稍微降低哈希查找的次數(shù),但是是以額外的處理和額外的表作為代價(jià)。
第二個(gè)現(xiàn)有技術(shù)的方案在達(dá)瑪普里卡爾(Dharmapurikar)等人的題為“Longest Prefix Matching Using Bloom Filter(使用Bloom過(guò)濾器的最長(zhǎng)前綴匹配)”的論文中描述。該論文于2003年8月25-29日在德國(guó)卡爾斯魯厄(Karlsruhe)的SIGCOMM03上發(fā)表。論文描述了使用一組過(guò)濾器(哈希功能)來(lái)確定地址應(yīng)歸入哪一組前綴長(zhǎng)度。然后在哈希表中按線性順序搜索該組長(zhǎng)度。為了確定哪些前綴長(zhǎng)度可用于某個(gè)特定地址,對(duì)于路由表中的每一個(gè)前綴長(zhǎng)度都必須使用一個(gè)過(guò)濾器??紤]到IPv6的任何可能的路由表,必須有128個(gè)過(guò)濾器。為了有效地進(jìn)行過(guò)濾,該算法限于具有大的晶體管/門(mén)數(shù)量的硬件實(shí)現(xiàn),以獲得期望的并行處理的水平。
執(zhí)行哈希查找是個(gè)代價(jià)高的操作,特別是對(duì)于IPv6。哈希功能需要應(yīng)用到關(guān)鍵字上,并且一部分結(jié)果用于索引存儲(chǔ)器中的記錄。由于哈希并不是一對(duì)一的映射,因此必須進(jìn)行沖突檢測(cè),這需要在每一個(gè)哈希表的記錄中存儲(chǔ)最初的16字節(jié)(128比特)IPv6地址或者一部分地址。沖突可以用許多方法解決,但典型地這些方法都需要另外的存儲(chǔ)器存取,以及每個(gè)哈希記錄中的附加信息。總之,每個(gè)哈希查找必須承擔(dān)大概20個(gè)字節(jié)的純開(kāi)銷(xiāo)。作為使用哈希表的性能結(jié)果,其目標(biāo)是降低哈希查找的次數(shù),以及降低哈希記錄的數(shù)量。
目前大多數(shù)其他的IP轉(zhuǎn)發(fā)算法是基于樹(shù)的。因此,它們的性能特點(diǎn)直接取決于地址中的比特?cái)?shù)和路由表中記錄的數(shù)量。由于IPv6地址的長(zhǎng)度,現(xiàn)有基于樹(shù)的IPv4轉(zhuǎn)發(fā)算法不能在存儲(chǔ)器存儲(chǔ)量和存儲(chǔ)器存取方面較好地按比例增加到IPv6規(guī)模的地址。使用這些算法會(huì)導(dǎo)致路由表數(shù)據(jù)結(jié)構(gòu)的大小激增,以及執(zhí)行查找所需的存儲(chǔ)器等待時(shí)間增加。此外,現(xiàn)有的查找算法沒(méi)有利用IPv6地址的一些用于簡(jiǎn)化IPv6轉(zhuǎn)發(fā)的特性,例如分層尋址。事實(shí)上,這些IPv6尋址特性更可能降低現(xiàn)有IPv4查找算法的性能而不是增加。
發(fā)明內(nèi)容
本發(fā)明尋求克服現(xiàn)有技術(shù)的限制,采用一種不同的方法以降低執(zhí)行最長(zhǎng)前綴匹配所需哈希查找的次數(shù)。使用部分地址過(guò)濾以降低哈希查找的次數(shù)。與最接近的現(xiàn)有技術(shù)相比較,減少過(guò)濾器和過(guò)濾操作的數(shù)量具有使LPM算法更快及實(shí)現(xiàn)成本更低的優(yōu)點(diǎn)。為進(jìn)一步地改善性能,一些實(shí)施例使用其它的過(guò)濾器,例如理想偏移過(guò)濾器,其從正在處理的IP地址中提取固定大小的滑動(dòng)窗口來(lái)進(jìn)一步地縮小查找結(jié)果。
因此,根據(jù)本發(fā)明的第一個(gè)方面,提供了一種執(zhí)行最長(zhǎng)前綴匹配的方法,包括下述步驟a)將關(guān)鍵字過(guò)濾成多個(gè)過(guò)濾字段,每一個(gè)過(guò)濾字段與各自的過(guò)濾表相關(guān)聯(lián);b)在各自的過(guò)濾表中對(duì)每一個(gè)過(guò)濾字段執(zhí)行最長(zhǎng)前綴匹配(LPM)操作,其中每個(gè)LPM操作產(chǎn)生一個(gè)指示一組潛在匹配所述關(guān)鍵字的前綴的長(zhǎng)度的結(jié)果;c)交叉所述結(jié)果,以進(jìn)一步減少潛在前綴長(zhǎng)度組;d)基于先前指示的潛在前綴長(zhǎng)度執(zhí)行一系列的哈希查找,從最長(zhǎng)的潛在前綴長(zhǎng)度開(kāi)始,向逐步更短的潛在前綴長(zhǎng)度進(jìn)行,直到找到匹配前綴,所述匹配前綴是匹配所述關(guān)鍵字的最長(zhǎng)前綴。
根據(jù)本發(fā)明的第二個(gè)方面,提供一種執(zhí)行最長(zhǎng)前綴匹配的系統(tǒng),包括多個(gè)過(guò)濾字段,每個(gè)過(guò)濾字段都通過(guò)過(guò)濾關(guān)鍵字產(chǎn)生,并與過(guò)濾表相關(guān)聯(lián);用于在各自的過(guò)濾表中對(duì)每一個(gè)過(guò)濾字段執(zhí)行最長(zhǎng)前綴匹配(LPM)操作的裝置,其中,每個(gè)LPM操作產(chǎn)生一個(gè)指示一組用于匹配所述關(guān)鍵字的最長(zhǎng)前綴的潛在前綴長(zhǎng)度的結(jié)果;用于交叉所述結(jié)果以減少潛在前綴長(zhǎng)度組的裝置;以及基于先前指示的潛在前綴長(zhǎng)度執(zhí)行一系列哈希查找的裝置,從最長(zhǎng)的潛在前綴長(zhǎng)度開(kāi)始,向逐步更短的潛在前綴長(zhǎng)度進(jìn)行,直到找到匹配前綴,所述匹配前綴是匹配所述關(guān)鍵字的最長(zhǎng)前綴。
參考附圖,對(duì)本發(fā)明進(jìn)行更為詳細(xì)的描述,其中圖1示出了基本的比特交織過(guò)濾器;圖2提供了根據(jù)本發(fā)明的查找算法和數(shù)據(jù)結(jié)構(gòu)的示意圖;圖3說(shuō)明了包括部分過(guò)濾器的過(guò)程的變形;圖4示出了用于選擇理想比特分組的固定大小的滑動(dòng)窗口;
圖5示出了另一個(gè)實(shí)施例,其中過(guò)濾器基于理想偏移。
具體實(shí)施例方式
本發(fā)明利用了一種稱(chēng)為過(guò)濾的過(guò)程,其一般的操作是從某一字段中選擇一些比特并將其按原始順序串連,形成過(guò)濾字段。由于保持了比特的順序,因此地址中包含的前綴信息被傳遞到過(guò)濾字段中,每一個(gè)過(guò)濾字段都有自己更小的前綴。因此,相關(guān)過(guò)濾字段表中過(guò)濾字段的最長(zhǎng)前綴匹配在邏輯上是原始查找關(guān)鍵字的部分匹配。該部分匹配指示一組前綴長(zhǎng)度,對(duì)于這些前綴長(zhǎng)度,可能有匹配查找關(guān)鍵字的前綴??墒褂萌我鈹?shù)量的過(guò)濾字段,每一個(gè)過(guò)濾字段都與自己的過(guò)濾字段表相關(guān)聯(lián)。每一個(gè)過(guò)濾字段可以使用不同的方法從查找關(guān)鍵字中提取比特。
實(shí)現(xiàn)這一過(guò)程的一種具體的過(guò)濾器稱(chēng)為比特交織過(guò)濾器。比特交織是選取一個(gè)地址并將其分成過(guò)濾字段的過(guò)程,這樣該地址的第一個(gè)比特變成第一個(gè)過(guò)濾字段的第一個(gè)比特,地址的第二個(gè)比特變成第二個(gè)過(guò)濾字段的第一個(gè)比特,地址的第三個(gè)比特變成第一個(gè)過(guò)濾字段的第二個(gè)比特,地址的第四個(gè)比特變成第二個(gè)過(guò)濾字段的第二個(gè)比特,等等。圖1示出了這個(gè)比特交織過(guò)程。陰影區(qū)域表示關(guān)鍵字和產(chǎn)生的過(guò)濾字段的前綴部分。
本發(fā)明能分解成四個(gè)步驟。圖2示出了本發(fā)明的總體視圖和執(zhí)行本算法所包括的步驟。
如圖2所示,本算法的第一步是過(guò)濾字段的提取步驟。其采用多個(gè)過(guò)濾字段的提取方法過(guò)濾查找關(guān)鍵字或IP地址,以產(chǎn)生一組過(guò)濾字段。每個(gè)過(guò)濾字段就像用于其關(guān)聯(lián)過(guò)濾表的小關(guān)鍵字。
第二步包括使用步驟1得到的過(guò)濾字段,在各自的過(guò)濾表中并行地對(duì)每個(gè)字段執(zhí)行LPM查找。可以使用任何LPM算法以執(zhí)行這些查找,包括直線排列查找或任意樹(shù)查找。查找算法的選擇取決于過(guò)濾字段的大小和數(shù)量。每個(gè)查找的結(jié)果是一個(gè)比特字段,在IPv6的情況下,是128比特長(zhǎng),其中每個(gè)比特指示一個(gè)前綴長(zhǎng)度,對(duì)于該前綴長(zhǎng)度,有潛在匹配查找關(guān)鍵字的前綴。作為這些查找的結(jié)果,確定了幾組潛在前綴長(zhǎng)度。這幾組潛在前綴長(zhǎng)度可以通過(guò)找到這些組的交集進(jìn)一步減少,以產(chǎn)生確定的一組前綴長(zhǎng)度。這最后一組潛在前綴長(zhǎng)度可包含一個(gè)或多個(gè)設(shè)置比特(set bit),這些比特可進(jìn)一步分類(lèi)。其中一個(gè)設(shè)置比特潛在地指示最長(zhǎng)匹配前綴的長(zhǎng)度,任何高于該比特的比特都是誤報(bào)(false positive),所有低于該比特的比特指示更短的匹配前綴以及其它的誤報(bào)。重要的是注意過(guò)濾過(guò)程從來(lái)不會(huì)導(dǎo)致漏報(bào)(false negative),在漏報(bào)中,實(shí)際的匹配前綴不會(huì)在最后一組潛在前綴長(zhǎng)度中指示其長(zhǎng)度。
在交叉的結(jié)果之后,進(jìn)行一系列的哈希查找,在這個(gè)過(guò)程中使用可能的前綴長(zhǎng)度,在通過(guò)長(zhǎng)度邏輯聚集前綴的哈希表中,查找匹配關(guān)鍵字的前綴。為簡(jiǎn)化,如圖2所示,采用線性查找從最長(zhǎng)的潛在前綴長(zhǎng)度開(kāi)始確定匹配前綴。線性查找持續(xù)到出現(xiàn)第一次匹配,這就是最長(zhǎng)匹配前綴。應(yīng)當(dāng)理解,也可以使用其他的查找算法代替線性查找。
除了執(zhí)行LPM查找算法以外,本發(fā)明還包括插入和刪除路由規(guī)則的過(guò)程。插入新的路由就像查找地址一樣簡(jiǎn)單和快速。首先,將路由加入對(duì)應(yīng)前綴長(zhǎng)度的哈希表中。然后過(guò)濾前綴,過(guò)濾字段用作關(guān)聯(lián)過(guò)濾表中的關(guān)鍵字。然后根據(jù)相關(guān)的LPM算法更新過(guò)濾字段表,與關(guān)鍵字相關(guān)的記錄有適當(dāng)?shù)谋忍亟M(bit set),以指示新路由的前綴長(zhǎng)度的存在。
刪除路由規(guī)則比插入稍微復(fù)雜一些。幸運(yùn)的是,這個(gè)過(guò)程可以分成兩個(gè)部分一部分能很快發(fā)生,并且確保路由立即從所考慮的地方除去,另一部分作為內(nèi)務(wù)功能不經(jīng)常發(fā)生,以減少過(guò)濾誤報(bào)的次數(shù)。為刪除路由,只需要將其從哈希表中除去。這將保證查找時(shí)絕不會(huì)找到該路由。如果刪除的路由是某個(gè)特定前綴長(zhǎng)度的唯一實(shí)例,則過(guò)濾表可以在常規(guī)地址查找中錯(cuò)誤指示潛在命中該前綴長(zhǎng)度。由于該算法用于處理例如上述的誤報(bào),因此誤報(bào)只對(duì)查找性能有輕微的負(fù)面影響。為減少誤報(bào)的次數(shù),過(guò)濾表必須更新。這是處理稍微加強(qiáng)的工作,但可以有幾種方式來(lái)完成,每種方式都有其優(yōu)點(diǎn)。最明顯的優(yōu)點(diǎn)是只周期性地重建過(guò)濾表,周期可用路由更新的次數(shù)或者時(shí)間表示。不過(guò),這涉及遍歷(traverse)整個(gè)路由規(guī)則表。
其它執(zhí)行更新的選擇包括使用計(jì)數(shù)過(guò)濾器計(jì)算引起某個(gè)特定長(zhǎng)度出現(xiàn)在過(guò)濾表中的前綴的數(shù)量,或遍歷按層表示的樹(shù),以及只查看給定長(zhǎng)度的路由。所幸的是,這個(gè)復(fù)雜的工作僅需要盡最大的努力進(jìn)行即可。
本發(fā)明可以有幾種變形,每一種都有自己的性能特點(diǎn)。每一種變形都是由過(guò)濾器的數(shù)量和定義確定。通過(guò)替換部分算法(例如哈希查找、線性查找等)的其他變形也是可以的。
一個(gè)變形包括部分地址過(guò)濾。在IPv6中,過(guò)濾每一個(gè)比特會(huì)導(dǎo)致或者過(guò)濾字段太多,或者過(guò)濾字段太大。在部分地址過(guò)濾方案中,僅對(duì)一部分IPv6地址(例如前64個(gè)比特)進(jìn)行過(guò)濾。這可通過(guò)4個(gè)16比特的過(guò)濾器產(chǎn)生四個(gè)字段來(lái)進(jìn)行。這些過(guò)濾器從比特位置0、1、2和3開(kāi)始,并選擇每第四個(gè)比特。圖3示出了這種過(guò)濾器的實(shí)例。
另一個(gè)變形包括理想偏移過(guò)濾器,其在2003年11月24日遞交的待決美國(guó)專(zhuān)利申請(qǐng)中有更為詳盡的描述。該待決美國(guó)專(zhuān)利申請(qǐng)的內(nèi)容在此作為參考引入本申請(qǐng)中。圖4示出了固定大小的滑動(dòng)窗口,用于選擇理想的比特分組以最佳地將地址分組,以減少組內(nèi)前綴長(zhǎng)度的數(shù)量。在這個(gè)實(shí)施例中,來(lái)自滑動(dòng)窗口的比特用作額外的過(guò)濾器。這個(gè)方案進(jìn)一步有兩個(gè)方面,第一是只利用滑動(dòng)窗口的理想位置的統(tǒng)計(jì)值構(gòu)建過(guò)濾器。在這種情況下,如圖5所示,滑動(dòng)窗口的位置是固定的。第二是基于當(dāng)前的路由表動(dòng)態(tài)地確定窗口的理想位置。
本申請(qǐng)?zhí)岢龅乃惴梢圆捎糜布?、軟件或軟硬件結(jié)合輕易地實(shí)現(xiàn)??晒┻x擇的例子包括ASICS、FPGAs、GPPs和NPs。顯然,本領(lǐng)域的技術(shù)人員也可以采用其他的平臺(tái)來(lái)實(shí)現(xiàn)。
本發(fā)明可以使最長(zhǎng)前綴匹配的實(shí)現(xiàn)有很低的成本和特別高的速度,可有效地改變關(guān)鍵字長(zhǎng)度和前綴的數(shù)量。當(dāng)應(yīng)用于IPv6時(shí),本發(fā)明利用了IPv6地址的特性,避免了IPv6的可伸縮性問(wèn)題。
通過(guò)對(duì)本發(fā)明的具體實(shí)施例的描述和說(shuō)明,很顯然,本領(lǐng)域的技術(shù)人員在不偏離基本思想的前提下,可以進(jìn)行許許多多的變化。不過(guò)應(yīng)當(dāng)理解,這些變化將落入所附權(quán)利要求限定的本發(fā)明的范圍之內(nèi)。
權(quán)利要求
1.一種執(zhí)行最長(zhǎng)前綴匹配的方法,包括下述步驟a)將關(guān)鍵字過(guò)濾成多個(gè)過(guò)濾字段,每一個(gè)過(guò)濾字段都與各自的過(guò)濾表相關(guān)聯(lián);b)在各自的過(guò)濾表中,對(duì)每一個(gè)過(guò)濾字段進(jìn)行最長(zhǎng)前綴匹配(LPM)操作,其中每個(gè)LPM操作產(chǎn)生一個(gè)指示潛在匹配所述關(guān)鍵字的前綴的長(zhǎng)度的結(jié)果;c)交叉所述結(jié)果,以獲得一組潛在前綴長(zhǎng)度;以及d)基于先前指示的潛在前綴長(zhǎng)度,執(zhí)行一系列的哈希查找,從最長(zhǎng)的潛在前綴長(zhǎng)度開(kāi)始,向逐步更短的潛在前綴長(zhǎng)度進(jìn)行,直到找到匹配前綴,所述匹配前綴就是匹配所述關(guān)鍵字的最長(zhǎng)前綴。
2.根據(jù)權(quán)利要求1所述的方法,其中每次過(guò)濾可以使用不同的方法進(jìn)行過(guò)濾字段的提取。
3.根據(jù)權(quán)利要求1所述的方法,其中所述關(guān)鍵字是IP地址。
4.根據(jù)權(quán)利要求3所述的方法,其中所述哈希查找用于路由決策。
5.根據(jù)權(quán)利要求3所述的方法,其中所述多個(gè)過(guò)濾字段通過(guò)從所述IP地址中提取比特構(gòu)建。
6.根據(jù)權(quán)利要求5所述的方法,其中所述提取的比特被串連成過(guò)濾字段,每個(gè)過(guò)濾字段作為用于所述關(guān)聯(lián)過(guò)濾表的關(guān)鍵字。
7.根據(jù)權(quán)利要求1所述的方法,其中所述對(duì)每個(gè)過(guò)濾字段和關(guān)聯(lián)過(guò)濾表的最長(zhǎng)前綴匹配操作是并行執(zhí)行的。
8.根據(jù)權(quán)利要求7所述的方法,其中使用查找表執(zhí)行LPM操作。
9.根據(jù)權(quán)利要求7所述的方法,其中使用樹(shù)查找執(zhí)行LPM操作。
10.根據(jù)權(quán)利要求1所述的方法用于執(zhí)行將新路由插入哈希表中。
11.根據(jù)權(quán)利要求1所述的方法用于從哈希表中刪除路由。
12.根據(jù)權(quán)利要求11所述的方法,其中更新所述哈希表以刪除路由。
13.根據(jù)權(quán)利要求3所述的方法,其中只有部分IP地址被過(guò)濾成過(guò)濾字段。
14.根據(jù)權(quán)利要求3所述的方法,其中所述IP地址長(zhǎng)度為128比特。
15.根據(jù)權(quán)利要求3所述的方法,其中所述IP地址長(zhǎng)度為32比特。
16.根據(jù)權(quán)利要求3所述的方法,其中采用了理想偏移過(guò)濾器。
17.一種執(zhí)行最長(zhǎng)前綴匹配的系統(tǒng),包括多個(gè)過(guò)濾字段,每個(gè)過(guò)濾字段通過(guò)過(guò)濾關(guān)鍵字構(gòu)建,并與各自的過(guò)濾表相關(guān)聯(lián);用于在各自的過(guò)濾表中對(duì)每一個(gè)過(guò)濾字段進(jìn)行最長(zhǎng)前綴匹配(LPM)操作的裝置,其中每個(gè)LPM操作產(chǎn)生指示匹配所述關(guān)鍵字的最長(zhǎng)前綴的潛在前綴長(zhǎng)度的結(jié)果;用于交叉所述結(jié)果以獲得一組潛在前綴長(zhǎng)度的裝置;以及用于在多個(gè)邏輯哈希表中采用線性方式查找最長(zhǎng)前綴匹配的裝置,其中每個(gè)哈希表與特定前綴長(zhǎng)度相關(guān)聯(lián),所述查找使用所述一組潛在前綴長(zhǎng)度進(jìn)行,從最長(zhǎng)的潛在前綴長(zhǎng)度開(kāi)始,向逐步更短的潛在前綴長(zhǎng)度進(jìn)行,直到找到匹配前綴。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述過(guò)濾字段是比特交織過(guò)濾器。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述關(guān)鍵字是IP地址。
20.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述LPM操作在查找表中執(zhí)行。
21.根據(jù)權(quán)利要求19所述的系統(tǒng),其中所述IP地址長(zhǎng)度為符合IPv6的128比特。
22.根據(jù)權(quán)利要求19所述的系統(tǒng),其中所述IP地址長(zhǎng)度為符合IPv4的32比特。
全文摘要
本發(fā)明提出了關(guān)于最長(zhǎng)前綴匹配的方法和關(guān)于IP地址查找的系統(tǒng)。所述方法和系統(tǒng)具體涉及IPv6,包括對(duì)一個(gè)IP地址查找最長(zhǎng)前綴匹配(LPM)。本發(fā)明方法導(dǎo)致使用過(guò)濾器進(jìn)行LPM。在本發(fā)明的實(shí)施例中,采用部分地址過(guò)濾以進(jìn)一步降低過(guò)濾要求。與現(xiàn)有技術(shù)方法相比,減少過(guò)濾操作的次數(shù)具有使LPM算法更快和實(shí)現(xiàn)成本更低的優(yōu)點(diǎn)。還描述了“理想偏移過(guò)濾器”,其從正在處理的IP地址中提取固定大小滑動(dòng)窗口的比特。
文檔編號(hào)H04L12/56GK1655533SQ20051000775
公開(kāi)日2005年8月17日 申請(qǐng)日期2005年2月16日 優(yōu)先權(quán)日2004年2月9日
發(fā)明者D·J·威爾松, B·S·布-迪亞布 申請(qǐng)人:阿爾卡特公司