国产精品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>

      一種實現(xiàn)高速路由查找的方法和系統(tǒng)的制作方法

      文檔序號:7941103閱讀:229來源:國知局
      專利名稱:一種實現(xiàn)高速路由查找的方法和系統(tǒng)的制作方法
      技術領域
      本發(fā)明涉及路由查找 技術領域,特別是指一種基于哈希(Hash)函數(shù)和Bloom Filter(BF)實現(xiàn)高速路由查找的方法和系統(tǒng)。
      背景技術
      隨著互聯(lián)網(wǎng)(Internet)的迅猛發(fā)展,用于主干網(wǎng)絡互聯(lián)的核心路由器的接口速率已經(jīng)達到lOOGbps,該速率要求核心路由器在支持大容量路由表的情況下路由查找,即 IP查找的速率達到每秒幾百萬次。IP查找需要得到最長匹配前綴,由于高速查找的需要,軟件查找的方式已經(jīng)不適用,近年來研究人員提出了多種硬件查找方法以提高查找速率,其中以查找樹(Trie)結構和三態(tài)內容尋址存儲器(Ternary Content Addressable Memory, TCAM)最為流行。Trie以樹形結構為基礎,通過流水處理能夠得到較高的吞吐率。由于樹結構的特殊性,使得每級流水難以達到存儲平衡,且每個樹結點都要維護子結點信息,造成存儲需求很大。利用一些優(yōu)化方法可以達到存儲平衡,但容易造成流水級數(shù)過多,難以維護。TCAM是目前查找模塊中利用較為廣泛的技術,查找過程簡單,但要滿足IOOGbps 的查找速率要求需要多片TCAM調度查找,功耗與發(fā)熱量將成為嚴重問題。

      發(fā)明內容
      有鑒于此,本發(fā)明的主要目的在于提供一種實現(xiàn)高速路由查找的方法和系統(tǒng),能夠快速、穩(wěn)定的實現(xiàn)大容量路由表的查詢。為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的本發(fā)明提供了一種實現(xiàn)高速路由查找的方法,所述方法包括利用哈希(Hash)函數(shù)和Bloom Filter (BF)將路由表項編碼并儲存;利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,找到最長前綴匹配的路由表項。其中,所述利用Hash和Bloom Filter將路由表項編碼,包括隨機生成各級哈希函數(shù)并儲存;按照路由前綴長度,對表項進行分組;在同一長度內,針對表項的起始地址根據(jù)哈希結果編碼得到哈希BF(HBF);針對HBF中各個表項的偏移地址編碼得到分類BF (CBF);對每個表項計算摘要,并根據(jù)CBF編碼結果組織摘要和完整路由表項的儲存。其中,在CBF編碼之后,所述方法還包括進行CBF驗證,確保組內各CBF不沖突, 否則隨機更換哈希函數(shù),重新編碼HBF和CBF。其中,所述利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,包括根據(jù)輸入IP地址經(jīng)過哈希查詢HBF,得到一組表項的起始地址;同時,根據(jù)輸入IP 地址經(jīng)過哈希查詢CBF,得到偏移地址;將起始地址加上偏移地址得到唯一的命中表項;根據(jù)命中表項讀取摘要,與輸入IP地址計算出的摘要進行對比,如果相同,則找到最長前綴匹配的路由表項;如果不同,則將所述輸入IP地址存儲在緩存(Cache)中。其中,在利用Hash和Bloom Filter對輸入IP地址進行查詢匹配之前,所述方法還包括根據(jù)輸入IP地址查詢Cache,如果命中則表示路由表項中沒有所述輸入IP地址, 否則利用Hash和Bloom Filter對輸入IP地址進行查詢匹配。其中,在所述 HBF編碼之前,所述方法還包括針對各個路由前綴長度編碼生成查詢 BF (QBF);在根據(jù)輸入IP地址經(jīng)過哈希查詢HBF之前,所述方法還包括根據(jù)輸入IP地址經(jīng)過哈希查詢QBF。本發(fā)明還提供了一種實現(xiàn)高速路由查找的系統(tǒng),所述系統(tǒng)包括路由表項編碼儲存模塊和路由表項查詢模塊;其中,所述路由表項編碼儲存模塊,用于利用Hash函數(shù)和Bloom Filter將路由表項編碼并儲存;所述路由表項查詢模塊,用于利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,找到最長前綴匹配的路由表項。其中,所述路由表項編碼儲存模塊利用Hash和Bloom Filter將路由表項編碼,包括隨機生成各級哈希函數(shù)并儲存;按照路由前綴長度,對表項進行分組;在同一長度內,針對表項的起始地址根據(jù)哈希結果編碼得到HBF ;針對HBF中各個表項的偏移地址編碼得到CBF ;對每個表項計算摘要,并根據(jù)CBF編碼結果組織摘要和完整路由表項的儲存。其中,所述路由表項編碼儲存模塊,在CBF編碼之后,還用于進行CBF驗證,確保組內各CBF不沖突,否則隨機更換哈希函數(shù),重新編碼HBF和CBF。其中,所述路由表項查詢模塊利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,包括根據(jù)輸入IP地址經(jīng)過哈希查詢HBF,得到一組表項的起始地址;同時,根據(jù)輸入IP 地址經(jīng)過哈希查詢CBF,得到偏移地址;將起始地址加上偏移地址得到唯一的命中表項;根據(jù)命中表項讀取摘要,與輸入IP地址計算出的摘要進行對比,如果相同,則找到最長前綴匹配的路由表項;如果不同,則將所述輸入IP地址存儲在Cache中。其中,所述路由表項查詢模塊在利用Hash和Bloom Filter對輸入IP地址進行查詢匹配之前,還用于根據(jù)輸入IP地址查詢Cache,如果命中則表示路由表項中沒有所述輸入IP地址,否則利用Hash和Bloom Filter對輸入IP地址進行查詢匹配。其中,所述路由表項編碼儲存模塊在所述HBF編碼之前,還用于針對各個路由前綴長度編碼生成QBF ;所述路由表項查詢模塊,在根據(jù)輸入IP地址經(jīng)過哈希查詢HBF之前,還用于根據(jù)輸入IP地址經(jīng)過哈希查詢QBF。本發(fā)明所提供的實現(xiàn)高速路由查找的方法和系統(tǒng),利用Hash函數(shù)和BloomFilter 將路由表項編碼并儲存;利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,找到最長前綴匹配的路由表項。本發(fā)明提供的路由查找方法,與現(xiàn)有的查找方法相比,有以下優(yōu)點一是查找過程快速、穩(wěn)定。因算法主要操作由哈希與BF讀取構成,可流水進行查詢,通常Trie樹或TCAM等方案需要多節(jié)拍完成一次IP地址查詢,而本發(fā)明流水操作平均可每節(jié)拍完成一次完整的IP地址查詢,在小于IO-"1的情況下因不命中導致多次查詢,但可以使用 Cache避免此情況再次發(fā)生,平均查找速度快速穩(wěn)定。二是存儲消耗較小,可容納路由表項數(shù)目大。本發(fā)明片內存儲空間復雜度為O(Iog(I)n),其中1為同長度前綴的最多表項數(shù)量, η為總表項數(shù)量。片外存儲空間復雜度為0(m),其中m為總表項比特數(shù)。


      圖1為Bl oom Filter的基本原理示意圖;圖2為Bloom Filter多長度查詢引擎示意圖;圖3為本發(fā)明一種實現(xiàn)高速路由查找的方法流程示意圖;圖4為PCBre基本體系結構示意圖;圖5為本發(fā)明一種實現(xiàn)高速路由查找的系統(tǒng)結構示意圖。
      具體實施例方式為了更好的理解本發(fā)明,首先介紹一下Bloom Filter(BF)。BF是一個空間效率很高的數(shù)據(jù)結構,它由一個位數(shù)組和一組哈希(Hash)映射函數(shù)組成。BF可以用于檢索一個元素是否在一個集合中,它的優(yōu)點是空間效率和查詢時間都遠遠超過一般的算法,缺點是有一定的誤識別率。圖1為Bloom Filter的基本原理示意圖,如圖1所示,BF的主要部分由一個m比特向量和k個哈希函數(shù)組成,每個哈希函數(shù)能夠將集合中的一個元素映射到區(qū)間
      上的一個整數(shù),對應m比特向量上的一位。由集合構造BF時,首先將m比特向量初始化為全0,每個集合元素經(jīng)過k個哈希函數(shù)映射到不超過k個比特位上,將對應位設置為1。查詢某元素是否屬于該集合時,同樣經(jīng)由k個哈希函數(shù)將查詢元素映射到不超過k 個bit位,只需判斷這些bit位是否均為1 若均為1,元素可能屬于集合,若有至少一位為 0,則元素一定不屬于該集合。圖中hi (s)、h2 (s)為哈希函數(shù),si、s2為元素集合,si和s2 構成的集合經(jīng)由哈希函數(shù)hi (s)、h2 (s)映射到三個比特位上。當X為查詢輸入時,經(jīng)由哈希函數(shù)hi (s)、h2 (s)映射到兩個比特位上均為1,則X可能屬于集合;當Y為查詢輸入時, 經(jīng)由哈希函數(shù)hi (s)、h2 (s)映射到兩個比特位上,一個比特位為1,另一個比特位為0,則Y 一定不屬于該集合。使用Bloom Filter時不會漏判但有可能出現(xiàn)誤判,這種情況稱為正誤識(False Positive, FP),其概率被稱為錯誤判對率(False Positive Rate, FPR),對給定的k、m、η, 可計算如下f = (l-exp(-kn/m))k前述Bloom Filter的缺點,最主要的一是存在FPR,二是不能確定所命中串。但實際上二者相互關聯(lián),若能確定命中串,則只需要一次串比較即可排除FPR,使Bloom Filter 變?yōu)榫_匹配。本發(fā)明應用Bloom Filte的基本原理為對于輸入字符串中命中普通BF的元素, 首先利用另一組BF的命中位置對輸入字符串進行初步分類,此時可匹配到一個小規(guī)模的特征串集合,即擴展BF(Extended Bloom Filter, EBF)。其中k個鏈表對應特征串構成的集合,設該集合元素數(shù)量為v,當k= 1時該BF退化為普通的Hash,故稱此組Bloom Filter 為HBF,稱原始BF為查詢BF(Query BF, QBF)。之后再利用多組Bloom Filter命中結果對輸入字符串細致分類,使其對應到唯一可能匹配的特征串,若不匹配該特征串則輸入字符串也不可能匹配集合內的其他任何特征串,再進行一次比較驗證以確定是否為該特征串, 即可精確匹配。細致分類的基本方法為將相互沖突的特征串編碼,依照每bit位的編碼結果分為不同組,利用多組Bloom Filter結果逐步減小命中集合。例如對沖突集合[a,b,c,d],依次編碼為00、01、10、11。使用BFO、BFl兩個BF分類。對應將[b,d]存儲于BFO中,而[c, d]存儲于BFl中。同時查詢(BF0,BF1)的命中結果可能為(0,0),(0,1), (1,0), (1,1)四種之一,與編碼對應,則將可能的命中集合縮小到[a,b,c, d]之一。稱此類Bloom Filter 為分類 BF (Classify BF, CBF)。

      上述是一種編碼BF時沒有發(fā)生錯誤命中的理想情況,實際中可能由于FI3R而出現(xiàn)例如輸入字符串a(chǎn)命中BF0,或輸入字符串b同時命中BF0、BF1之類錯誤情況。為避免編碼錯誤,需在每次計算生成編碼后遍歷同長度所有沖突的特征串進行驗證。若發(fā)生錯誤沖突, 需要隨機生成新的Hash函數(shù)并重新編碼,此過程可以由軟件自動完成,一旦編碼除非更新特征串否則無需再更換Hash函數(shù)。因此只要將總體錯誤概率控制在較低水平即可保證其成功率與硬件實現(xiàn)的可行性。無需擔心的是,不屬于特征集合的輸入字符串如果錯誤命中,并不會對最后查詢結果產(chǎn)生影響,實際流量中的輸入字符串無論是否錯誤命中BFO或BF1,也只能分類后對應到[a,b,c,d]之一,再取出該特征串進行一次比較驗證即可排除FP。假設輸入字符串X命中結果為(0,0),則X或者等于特征串a(chǎn),或者不匹配[a,b,c, d]任何特征串,在與a比較后排除FP,故該分類能夠較好的實現(xiàn)精確匹配。這種方法的一個不足是對每個長度需要1呢2 (ν)個CBF,雖然每個BF存儲元素數(shù)量少,總體資源占用不多,但實現(xiàn)較復雜。一種改進方案是利用每個長度均需要一組BF的特點,使用一個輸入字符串的不同長度前綴子串進行分類,從而使每長度僅需要1個CBF, 而代價是每長度串的前綴串最多跨越(ν)個不同長度。例如,長度為6的特征串,Hash 后同時有8個串相互沖突,則將6字節(jié)串的4、5、6字節(jié)前綴串存儲于CBF4-6中,輸入字符串查詢CBF4-6后可由結果得到3位2進制編碼對應串0-7。不同長度前綴CBF組成的集合可稱為前綴分類BF (Prefix Classify BF,PCBF),整套系統(tǒng)應用多級多組BF,稱其為前綴分類 BF 組(Prefix Classify BF Group,PCBFG)。BF應用于路由查找時,需對每個前綴長度設置一組BF,同時查詢所有長度,其結構如圖2所示。根據(jù)上述原理可知本發(fā)明的基本思想是利用Hash函數(shù)和Bloom Filter將路由表項編碼并儲存;利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,找到最長前綴匹配的路由表項。下面結合附圖和具體實施例對本發(fā)明的技術方案進一步詳細闡述。圖3為本發(fā)明一種實現(xiàn)高速路由查找的方法流程示意圖,如圖3所示,所述方法包括以下步驟步驟301,利用哈希(Hash)函數(shù)和Bloom Filter將路由表項編碼并儲存;具體的,所述利用Hash和Bloom Filter將路由表項編碼,包括隨機生成各級哈希函數(shù)并儲存;按照路由前綴長度,對表項進行分組;在同一長度內,針對表項的起始地址(base_address)根據(jù)哈希結果編 碼HBF ;針對HBF中各個表項的偏移地址(offset)編碼 CBF ;對每個表項計算摘要,并根據(jù)CBF編碼結果組織摘要和完整路由表項的儲存。其中,根據(jù)CBF編碼結果組織摘要和完整路由表項的儲存,具體為在片內存儲表項的一個摘要用于初步驗證,用片外DDR3存儲完整的表項。進一步的,在HBF編碼之前,所述方法還包括針對各個路由前綴長度編碼生成 QBF。具體的,針對各個不同的路由前綴長度進行QBF編碼的目的在于,可以在查詢中過濾大部分流量,減少后續(xù)比較次數(shù)以降低系統(tǒng)功耗。該級BF容量很小,且并非必要。進一步的,在CBF編碼之后,所述方法還包括進行CBF驗證,確保組內各CBF不沖突,否則隨機更換哈希函數(shù),重新編碼HBF和CBF。步驟302,利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,找到最長前綴匹配的路由表項。具體的,所述利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,包括根據(jù)輸入IP地址經(jīng)過哈希查詢HBF,得到一組表項的起始地址;同時,根據(jù)輸入IP地址經(jīng)過哈希查詢CBF,得到偏移地址;將起始地址加上偏移地址得到唯一的命中表項;根據(jù)命中表項讀取摘要,與輸入IP地址計算出的摘要進行對比,如果相同,則找到最長前綴匹配的路由表項;如果不同,則將所述輸入IP地址存儲在Cache中。進一步的,在利用Hash和Bloom Filter對輸入IP地址進行查詢匹配之前,所述方法還包括根據(jù)輸入IP地址查詢緩存(Cache),如果命中則讀取Cache中的結果,否則執(zhí)行步驟302。其中,所述讀取Cache中的結果表示所述輸入IP地址對應的表項信息沒有存儲在本表中,查表結果為“No Result”。進一步的,在根據(jù)輸入IP地址經(jīng)過哈希查詢HBF之前,所述方法還包括根據(jù)輸入IP地址經(jīng)過哈希查詢QBF。通過QBF可以根據(jù)前綴長度進行分類,在查詢過程中每個長度中最多命中一個表項,取最長命中長度從片外DDR3取出該可能命表項,進行一次直接比較。在不命中情況下,使用Cache以防止查找速度再次下降。本發(fā)明主要分為多級多組結構,圖4為PCBre基本體系結構示意圖,如圖4所示, 所述結構中第一級(Stepl)為QBF,該級與普通BF相同,其實是否設計此級QBF對于系統(tǒng)的準確性和吞吐率并無影響,其作用僅為過濾大部分流量,減少后續(xù)比較次數(shù)以降低系統(tǒng)功耗, 該級BF容量很小,且并非必要,故后文進行計算存儲消耗時并沒有將此計算在內。當QBF 命中時,對命中長度進行第二級查詢,若有多長度命中則利用硬件系統(tǒng)特性并行查詢。假設在極端情況下,沒有QBF或QBF同時命中所有長度,則并行查詢所有后續(xù)BF組,仍然對系統(tǒng)性能無影響。第二級(St印2)查詢HBF,即為表H(Table. H),得到基礎地址(base_addr)。第三級(St印3)為PCBF,查詢一組BF得到編碼,即偏移地址,與基礎地址相加得特征串地址addr,為圖中Step 3。該級可與HBF并行,也可待HBF命中確定后查詢以減少讀存儲次數(shù)。第四級(Step4)根據(jù)特征串地址,由特征串表(Table. S)中取出該串與輸出串直接比較,即St印4。若比較成功,則提交特征串地址與報文至軟件層進行后續(xù)處理,否則當前命中為FP,輸入下一字節(jié)進行下一次匹配。對通常每長度串數(shù)為IO3 IO4數(shù)量級的DPI特征串集合,片上存儲已足夠,該引擎無需使用片外存儲,系統(tǒng)工作頻率可盡量高。進行多字節(jié)匹配擴展時,可共享多端口存儲,或多個匹配引擎并行。存儲相對并行帶寬的擴展代價為線性增長或更低。以上表明該系統(tǒng)頻率方面僅受限于當前技術可達到的工作頻率上限,帶寬方面僅受限于成線性增長的存儲,故非常易 于實現(xiàn)高速DPI系統(tǒng)以滿足骨干網(wǎng)線速要求。本發(fā)明的基本思想是試圖根據(jù) Hash結果匹配特征串,如前所述這種思路的難點在于如何處理沖突。本發(fā)明并不力求避免沖突,而是在存在沖突的前提下,將輸入字符串分類定位到唯一可能的特征串再進行匹配。圖5為本發(fā)明一種實現(xiàn)高速路由查找的系統(tǒng)結構示意圖,如圖5所示,所述系統(tǒng)包括路由表項編碼儲存模塊51和路由表項查詢模塊52 ;其中,所述路由表項編碼儲存模塊51,用于利用Hash函數(shù)和Bloom Filter將路由表項編碼并儲存;具體的,所述路由表項編碼儲存模塊51利用Hash和Bloom Filter將路由表項編碼,包括隨機生成各級哈希函數(shù)并儲存;按照路由前綴長度,對表項進行分組;在同一長度內,針對表項的起始地址根據(jù)哈希結果編碼HBF ;針對HBF中各個表項的偏移地址編碼 CBF ;對每個表項計算摘要,并根據(jù)CBF編碼結果組織摘要和完整路由表項的儲存。其中,根據(jù)CBF編碼結果組織摘要和完整路由表項的儲存,具體為在片內存儲表項的一個摘要用于初步驗證,用片外DDR3存儲完整的表項。進一步的,所述路由表項編碼儲存模塊51,在HBF編碼之前,還用于針對各個路由前綴長度編碼生成QBF。具體的,針對各個不同的路由前綴長度進行QBF編碼的目的在于,可以在查詢中過濾大部分流量,減少后續(xù)比較次數(shù)以降低系統(tǒng)功耗。該級BF容量很小,且并非必要。進一步的,所述路由表項編碼儲存模塊51,在CBF編碼之后,還用于進行CBF驗證, 確保組內各CBF不沖突,否則隨機更換哈希函數(shù),重新編碼HBF和CBF。所述路由表項查詢模塊52,用于利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,找到最長前綴匹配的路由表項。具體的,所述路由表項查詢模塊52利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,包括根據(jù)輸入IP地址經(jīng)過哈希查詢HBF,得到一組表項的起始地址;同時,根據(jù)輸入IP地址經(jīng)過哈希查詢CBF,得到偏移地址;將起始地址加上偏移地址得到唯一的命中表項;根據(jù)命中表項讀取摘要,與輸入IP地址計算出的摘要進行對比,如果相同,則找到最長前綴匹配的路由表項;如果不同,則將所述輸入IP地址存儲在Cache中。進一步的,所述路由表項查詢模塊52,在利用Hash和Bloom Filter對輸入IP 地址進行查詢匹配之前,還用于根據(jù)輸入IP地址查詢Cache,如果命中則讀取Cache中的結果,否則利用Hash和Bloom Filter對輸入IP地址進行查詢匹配。其中,所述讀取 Cache中的結果表示所述輸入IP地址對應的表項信息沒有存儲在本表中,查表結果為“No Result,,。進一步的,所述路由表項查詢模塊52,在根據(jù)輸入IP地址經(jīng)過哈希查詢HBF之前, 還用于根據(jù)輸入IP地址經(jīng)過哈希查詢QBF。通過QBF可以根據(jù)前綴長度進行分類,在查詢過程中每個長度中最多命中一個表項,取最長命中長度從片外DDR3取出該可能命表項,進行一次直接比較。在不命中情況下,使用Cache以防止 查找速度再次下降。 以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
      權利要求
      1.一種實現(xiàn)高速路由查找的方法,其特征在于,所述方法包括利用哈希(Hash)函數(shù)和Bloom Filter(BF)將路由表項編碼并儲存;利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,找到最長前綴匹配的路由表項。
      2.根據(jù)權利要求1所述的方法,其特征在于,所述利用Hash和BloomFilter將路由表項編碼,包括隨機生成各級哈希函數(shù)并儲存;按照路由前綴長度,對表項進行分組;在同一長度內, 針對表項的起始地址根據(jù)哈希結果編碼得到哈希BF(HBF);針對HBF中各個表項的偏移地址編碼得到分類BF (CBF);對每個表項計算摘要,并根據(jù)CBF編碼結果組織摘要和完整路由表項的儲存。
      3.根據(jù)權利要求2所述的方法,其特征在于,在CBF編碼之后,所述方法還包括進行 CBF驗證,確保組內各CBF不沖突,否則隨機更換哈希函數(shù),重新編碼HBF和CBF。
      4.根據(jù)權利要求2所述的方法,其特征在于,所述利用Hash和BloomFilter對輸入 IP地址進行查詢匹配,包括根據(jù)輸入IP地址經(jīng)過哈希查詢HBF,得到一組表項的起始地址;同時,根據(jù)輸入IP地址經(jīng)過哈希查詢CBF,得到偏移地址;將起始地址加上偏移地址得到唯一的命中表項;根據(jù)命中表項讀取摘要,與輸入IP地址計算出的摘要進行對比,如果相同,則找到最長前綴匹配的路由表項;如果不同,則將所述輸入IP地址存儲在緩存(Cache)中。
      5.根據(jù)權利要求4所述的方法,其特征在于,在利用Hash和BloomFilter對輸入IP 地址進行查詢匹配之前,所述方法還包括根據(jù)輸入IP地址查詢Cache,如果命中則表示路由表項中沒有所述輸入IP地址,否則利用Hash和Bloom Filter對輸入IP地址進行查詢匹配。
      6.根據(jù)權利要求4所述的方法,其特征在于,在所述HBF編碼之前,所述方法還包括 針對各個路由前綴長度編碼生成查詢BF(QBF);在根據(jù)輸入IP地址經(jīng)過哈希查詢HBF之前,所述方法還包括根據(jù)輸入IP地址經(jīng)過哈希查詢QBF。
      7.一種實現(xiàn)高速路由查找的系統(tǒng),其特征在于,所述系統(tǒng)包括路由表項編碼儲存模塊和路由表項查詢模塊;其中,所述路由表項編碼儲存模塊,用于利用Hash函數(shù)和Bloom Filter將路由表項編碼并儲存;所述路由表項查詢模塊,用于利用Hash和Bloom Filter對輸入IP地址進行查詢匹配, 找到最長前綴匹配的路由表項。
      8.根據(jù)權利要求7所述的系統(tǒng),其特征在于,所述路由表項編碼儲存模塊利用Hash和 Bloom Filter將路由表項編碼,包括隨機生成各級哈希函數(shù)并儲存;按照路由前綴長度,對表項進行分組;在同一長度內, 針對表項的起始地址根據(jù)哈希結果編碼得到HBF ;針對HBF中各個表項的偏移地址編碼得到CBF ;對每個表項計算摘要,并根據(jù)CBF編碼結果組織摘要和完整路由表項的儲存。
      9.根據(jù)權利要求8所述的系統(tǒng),其特征在于,所述路由表項編碼儲存模塊,在CBF編碼之后,還用于進行CBF驗證,確保組內各CBF不沖突,否則隨機更換哈希函數(shù),重新編碼HBF禾口 CBF0
      10.根據(jù)權利要求8所述的系統(tǒng),其特征在于,所述路由表項查詢模塊利用Hash和 Bloom Filter對輸入IP地址進行查詢匹配,包括根據(jù)輸入IP地址經(jīng)過哈希查詢HBF,得到一組表項的起始地址;同時,根據(jù)輸入IP地址經(jīng)過哈希查詢CBF,得到偏移地址;將起始地址加上偏移地址得到唯一的命中表項;根據(jù)命中表項讀取摘要,與輸入IP地址計算出的摘要進行對比,如果相同,則找到最長前綴匹配的路由表項;如果不同,則將所述輸入IP地址存儲在Cache中。
      11.根據(jù)權利要求10所述的系統(tǒng),其特征在于,所述路由表項查詢模塊在利用Hash和 Bloom Filter對輸入IP地址進行查詢匹配之前,還用于根據(jù)輸入IP地址查詢Cache,如果命中則表示路由表項中沒有所述輸入IP地址,否則利用Hash和Bloom Filter對輸入IP 地址進行查詢匹配。
      12.根據(jù)權利要求10所述的系統(tǒng),其特征在于,所述路由表項編碼儲存模塊在所述HBF 編碼之前,還用于針對各個路由前綴長度編碼生成QBF ;所述路由表項查詢模塊,在根據(jù)輸入IP地址經(jīng)過哈希查詢HBF之前,還用于根據(jù)輸入 IP地址經(jīng)過哈希查詢QBF。
      全文摘要
      本發(fā)明公開了一種實現(xiàn)高速路由查找的方法,利用哈希(Hash)函數(shù)和Bloom Filter將路由表項編碼并儲存;利用Hash和Bloom Filter對輸入IP地址進行查詢匹配,找到最長前綴匹配的路由表項。本發(fā)明還公開了一種實現(xiàn)高速路由查找的系統(tǒng),通過上述方法和系統(tǒng),能夠快速、穩(wěn)定的實現(xiàn)大容量路由表的查詢,并且降低了存儲消耗,提高了可容納路由表項數(shù)目。
      文檔編號H04L12/56GK102333036SQ201110314798
      公開日2012年1月25日 申請日期2011年10月17日 優(yōu)先權日2011年10月17日
      發(fā)明者全成斌, 劉博巖, 孫遠航, 李彧, 程晨, 趙有健 申請人:中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1