System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及數據處理,特別是涉及一種基于統一存儲訪問的并行多哈希表路由查表方法及設備。
技術介紹
1、路由查表是計算機網絡的基本問題,是路由器實現的核心技術。路由查表問題涉及一個路由表,其中每條表項由ip前綴和目的路由兩部分組成。其中ip前綴由ip地址和前綴掩碼定義,確定一條路由表項如何匹配。路由查表問題是從所有ip前綴中尋找網絡報文匹配的最長ip前綴,并返回對應的目的路由。
2、現今解決路由查表問題的方法有:特里(trie)樹方法、哈希表方法以及基于bloomfilter的方法等。trie樹方法由于須在節點中存儲子節點指針的問題,空間開銷較高,難以適用于大規模路由查表。哈希表方法面臨哈希表數量隨前綴長度增加而增長,軟件實現性能低,而硬件實現面臨多哈希表的存儲碎片化問題。基于bloom?filter的方法可有效提高平均路由查表性能,但是面臨著假陽性問題無法保證最差性能。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種能夠提高了存儲空間利用效率的基于統一存儲訪問的并行多哈希表路由查表方法及設備。
2、一種基于統一存儲訪問的并行多哈希表路由查表方法,所述方法包括:
3、在程序獲取由ip前綴定義的路由表之后自動構造多個哈希表,每個前綴長度的路由規則對應構造一個哈希表;
4、對待查詢的目的ip地址進行路由查表,所有哈希表根據統一訪問存儲模型進行并行查找,在一個哈希表中進行路由查找時,將目的ip地址與哈希表的前綴長度掩碼作與運算得到哈
5、在其中一個實施例中,統一訪問存儲模型指的是每一個哈希表均能夠訪問全局存儲,且所有哈希表能夠無沖突在相同時鐘進行索引查詢。
6、在其中一個實施例中,統一訪問存儲模型包括多個哈希表邏輯塊與多個存儲塊;多個哈希表邏輯塊與多個存儲塊之間通過crossbar全連接的結構進行連接,其中每一個哈希表邏輯塊產生的訪存地址傳輸給所有存儲塊,且每一個存儲塊的讀數據傳輸給所有哈希表邏輯塊。
7、在其中一個實施例中,哈希表邏輯塊與存儲塊均通過多路選擇器選擇唯一輸入。
8、在其中一個實施例中,所有哈希表根據統一訪問存儲模型進行并行查找的過程中,包括:
9、多個哈希表邏輯塊在任意時鐘訪問不同存儲塊時,根據沖突判定和固定預留策略生成無沖突哈希索引值,長度更大的哈希表生成哈希索引時,與所有更小長度哈希表索引進行沖突判定,無存儲塊訪問沖突發生時選擇生成的隨機索引,而當發生沖突時選擇其固定預留位置。
10、在其中一個實施例中,根據沖突判定與固定預留策略生成哈希索引值,包括:
11、基于任意初始哈希函數為n個哈希表的每一個哈希表生成原始哈希索引值h1、h2、...、hn,令哈希表1的哈希索引值確定為原始哈希索引值,即h1=h1。并為哈希表2到哈希表n預留n-1個固定位置分別為
12、h2_fix=h1+1,h3_fix=h1+2,...,hn_fix=h1+n-1;
13、對哈希表i,首先進行沖突判定,若其原始哈希索引值hi不在固定預留位置且不等于任意hj(1<=j<i),則令hi=hi,否則令hi=hi_fix,即選擇對應固定預留值。
14、一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現以下步驟:
15、在程序獲取由ip前綴定義的路由表之后自動構造多個哈希表,每個前綴長度的路由規則對應構造一個哈希表;
16、對待查詢的目的ip地址進行路由查表,所有哈希表根據統一訪問存儲模型進行并行查找,在一個哈希表中進行路由查找時,將目的ip地址與哈希表的前綴長度掩碼作與運算得到哈希表鍵;對哈希表鍵進行哈希表索引得到目的路由;將前綴長度最大的哈希表中得到目的路由作為最終目的路由。
17、上述基于統一存儲訪問的并行多哈希表路由查表方法及設備,本申請通過ip前綴定義的路由表自動構造多個哈希表,每個前綴長度的路由規則對應構造一個哈希表,然后所有哈希表在路由查找的過程中根據統一訪問存儲模型進行并行查找,統一存儲訪問模型中基于存儲與邏輯分離的核心思想,通過crossbar結構連接哈希表和存儲塊,使得并行多hash表具備全局統一存儲訪問的能力,多hash表通過沖突判定與固定預留的策略實現無沖突訪問不同存儲塊,大大提高了存儲空間利用效率,然后在路由過程中通過將目的ip地址與哈希表的前綴長度掩碼作與運算得到哈希表鍵;對哈希表鍵進行哈希表索引得到目的路由,能夠大大提高路由準確率,同時,相比于現有技術,本申請在硬件實現時能夠解決多hash表的存儲碎片化問題,每一個前綴長度的hash表項均能夠映射到全局存儲中,極大提高了存儲空間利用效率,能夠在受限硬件片上存儲資源條件下支持大規模路由查表。
本文檔來自技高網...【技術保護點】
1.一種基于統一存儲訪問的并行多哈希表路由查表方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述統一訪問存儲模型指的是每一個哈希表均能夠訪問全局存儲,且所有哈希表能夠無沖突在相同時鐘進行索引查詢。
3.根據權利要求1所述的方法,其特征在于,所述統一訪問存儲模型包括多個哈希表邏輯塊與多個存儲塊;所述多個哈希表邏輯塊與多個存儲塊之間通過crossbar全連接的結構進行連接,其中每一個哈希表邏輯塊產生的訪存地址傳輸給所有存儲塊,且每一個存儲塊的讀數據傳輸給所有哈希表邏輯塊。
4.根據權利要求3所述的方法,其特征在于,所述哈希表邏輯塊與存儲塊均通過多路選擇器選擇唯一輸入。
5.根據權利要求3所述的方法,其特征在于,所有哈希表根據統一訪問存儲模型進行并行查找的過程中,包括:
6.根據權利要求5所述的方法,其特征在于,根據沖突判定與固定預留策略生成哈希索引值,包括:
7.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至
...【技術特征摘要】
1.一種基于統一存儲訪問的并行多哈希表路由查表方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述統一訪問存儲模型指的是每一個哈希表均能夠訪問全局存儲,且所有哈希表能夠無沖突在相同時鐘進行索引查詢。
3.根據權利要求1所述的方法,其特征在于,所述統一訪問存儲模型包括多個哈希表邏輯塊與多個存儲塊;所述多個哈希表邏輯塊與多個存儲塊之間通過crossbar全連接的結構進行連接,其中每一個哈希表邏輯塊產生的訪存地址傳輸給所有存儲塊,且每一個存儲塊的讀數據傳輸給所...
【專利技術屬性】
技術研發人員:鐘金誠,楊惠,唐竹,呂高鋒,時向泉,原玉磊,全巍,劉汝霖,李存祿,林旭,
申請(專利權)人:中國人民解放軍國防科技大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。