專利名稱:一種前綴匹配的方法、裝置和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信技術領域,尤其涉及一種前綴匹配的方法、裝置和系統(tǒng)。
背景技術:
路由器在轉發(fā)IP報文時,需要根據IP報文的目的地址去查詢存儲于 TCAM(ternary content addres sable memory,三重內容可尋址存儲器)中的路由表,在 TCAM中存儲的路由表中,存儲的是IP地址的前若干位,即前綴;路由器在查詢路由表時采 用最長前綴匹配規(guī)則,即選擇與IP報文目的地址匹配位數最多的前綴所對應的端口進行 轉發(fā)。隨著網絡規(guī)模的擴大和IPv6 (Internet Protocol version 6,下一代互聯(lián)網協(xié) 議)的廣泛使用,路由器需要支持的IPv6前綴的數目越來越多。但發(fā)明人發(fā)現,在現有技 術中,對于IPv6前綴存儲存在浪費存儲空間,路由器成本較高的問題。
發(fā)明內容
一方面,本發(fā)明實施例提供了一種前綴匹配的方法,在一定程度上節(jié)約了存儲器 的空間,降低了路由器的成本。為達到上述目的,本發(fā)明實施例采用如下技術方案一種前綴匹配的方法,包括按照前綴長度是否超過設定的前綴長度閾值將前綴分別存放到不同的存儲區(qū)域 內;在所述不同的存儲區(qū)域內同時查詢匹配的前綴,并將各自的查詢結果發(fā)送給外部 比較電路;所述外部比較電路對所述查詢結果進行比較,得到最終匹配結果。一方面,本發(fā)明實施例提供了一種前綴匹配的裝置,在一定程度上節(jié)約了存儲器 的空間,降低了路由器的成本。為達到上述目的,本發(fā)明實施例采用如下技術方案一種前綴匹配的裝置,包括存儲模塊,用于存儲前綴,包含多個存儲區(qū)域;分配模塊,用于將前綴按照前綴長度是否超過前綴長度閾值分別存放到所述存儲 模塊的不同的存儲區(qū)域內;查詢模塊,用于在所述存儲模塊的不同的存儲區(qū)域內查詢匹配的前綴,并將查詢 結果發(fā)送給外部比較電路;外部比較電路,用于對所述查詢模塊的查詢結果進行比較,得到最終匹配結果。另一方面,本發(fā)明實施例提供了一種前綴匹配的系統(tǒng),在一定程度上節(jié)約了存儲 器的空間,降低了路由器的成本。為達到上述目的,本發(fā)明實施例采用如下技術方案
一種前綴匹配的系統(tǒng),包括所述第一存儲區(qū)域,用于存放長度超過前綴長度閾值的前綴;所述第二存儲區(qū)域,用于存放長度小于或等于前綴長度閾值的前綴;外部比較電路,用于接收在所述不同的存儲區(qū)域查詢的查詢結果,并進行比較,得 到最終匹配結果。本發(fā)明實施例基于IPv6前綴長短不一的特點,通過設定前綴長度閾值,按照前綴 長度的不同將前綴存放在不同的存儲區(qū)域內,較長的前綴分配較大的存儲空間,較短的前 綴分配較小的存儲空間,從而與現有技術相比,在一定程度上節(jié)約了存儲器的空間,降低了 路由器的成本。
為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例描述中所需要使用 的附圖作以簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于 本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其 他的附圖。圖1為本發(fā)明實施例提供的實現前綴匹配方法的流程圖;圖2為本發(fā)明實施例提供的實現前綴匹配的裝置的結構圖;圖3為本發(fā)明實施例提供的查詢模塊的結構圖;圖4為本發(fā)明實施例提供的實現前綴匹配的系統(tǒng)示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。為了解決現有前綴匹配技術浪費存儲器資源、路由器成本過高的問題。本發(fā)明實 施例提供了一種前綴匹配的方法。如圖1所示,本發(fā)明實施例提供的前綴匹配的方法,包括101、設定前綴長度閾值;IPv6前綴長短不一,為了將IPv6的前綴按長度進行分類,需要設定一個前綴長度 閾值,本發(fā)明實施例中,前綴長度閾值可以為64bit ;102、按照前綴長度是否超過設定的前綴長度閾值將前綴分別存放不同的存儲區(qū) 域內。對要存儲的前綴進行判斷,若其長度大于64bit,則將其存儲進第一存儲區(qū)域,每 個前綴分配128bit的存儲空間;若其長度小于64bit,則將其存儲進第二存儲區(qū)域,每個前綴分配64bit的存儲空 間;由于大多數IPv6的前綴長度都不大于64bit,因此只有較少的IPv6前綴被存儲進 第一存儲區(qū)域內;大多數的IPv6前綴則被存儲進第二存儲區(qū)域,每個前綴占用64bit的空間,與現有技術相比,節(jié)省了存儲空間,降低了路由器成本;103、在所述不同的存儲區(qū)域內同時查詢匹配的前綴,并將各自的查詢結果發(fā)送給 外部比較電路;本發(fā)明實施例提供的查詢前綴的方法具體為同時向第一存儲區(qū)域和第二存儲區(qū)域發(fā)送查詢請求;各存儲區(qū)域在收到所述查詢請求后,分別對自身存儲的前綴進行查詢;查詢后,各存儲區(qū)域分別將各自的查詢結果發(fā)送給外部比較電路。104、所述外部比較電路接收到所述查詢結果后,對其進行比較,得到最終匹配結 果;所述外部比較電路對查詢結果比較,得到最終匹配結果的方法具體為若在所述第一存儲區(qū)域能找到匹配的前綴,則將所述前綴確定為最終匹配的結 果;若所述第一存儲區(qū)域未能找到匹配的前綴,則將所述第二存儲區(qū)域匹配的前綴確定為 最終匹配結果;若在上述兩存儲區(qū)域均未找到匹配的前綴,則查詢失敗。上述本發(fā)明實施例所提供的技術方案,通過設定前綴長度閾值,按照前綴長度的 不同將前綴存放在不同的存儲區(qū)域內,較長的前綴分配較大的存儲空間,較短的前綴分配 較小的存儲空間,按照本發(fā)明實施例提供的查詢方法,能夠實現前綴的匹配,與現有技術相 比,本發(fā)明節(jié)約了存儲器的空間,降低了路由器的成本。在本發(fā)明實施例中,只設定了一個前綴長度閾值,在實際應用中,可將本發(fā)明技術 方案進行推廣以進一步節(jié)省存儲空間,根據需要設定多個前綴長度閾值,即將IPv6的前綴 按照其長度不同,分別存放于多個不同的存儲區(qū)域內;在查詢時,可按照上述查詢方法在多 個存儲區(qū)域內查詢,并由外部比較電路對所述多個存儲區(qū)域內的查詢結果進行比較。上述推廣過程與本發(fā)明實施例及其類似,在此不再過多贅述。如圖2所示,本發(fā)明實施例提供的實現前綴匹配的裝置,包括存儲模塊201,用于存儲前綴,包含多個存儲區(qū)域;分配模塊202,用于將前綴按照前綴長度是否超過前綴長度閾值分別存放到所述 存儲模塊201的不同的存儲區(qū)域內;查詢模塊203,用于在所述存儲模塊201的不同的存儲區(qū)域內查詢匹配的前綴;并 將查詢的結果發(fā)送給外部比較電路;外部比較電路204,用于對查詢模塊203的查詢結果進行比較,得到最終匹配結果.如圖3所示,在本發(fā)明實施例中,所述查詢模塊203包括請求發(fā)送單元301,用于向存儲模塊201的各存儲區(qū)域發(fā)送查詢請求;查詢單元302,用于在存儲模塊201中各存儲區(qū)域的前綴中查詢匹配的前綴;發(fā)送單元303,用于將查詢單元302的查詢結果發(fā)送給外部比較電路204。本發(fā)明實施例提供的實現前綴匹配的裝置,分配模塊202按照前綴長度的不同將 其分別存儲于存儲模塊201中的不同存儲區(qū)域中去,通過查詢模塊203對存儲模塊201中 的不同存儲區(qū)域分別進行查詢,并將查詢結果發(fā)送給外部比較電路204,由所述外部比較電 路204對查詢結果進行比較,實現了對存儲在各存儲區(qū)域內前綴的匹配,與現有技術相比, 在一定程度上節(jié)約了存儲器的空間,降低了路由器的成本。
如圖4所示,本發(fā)明實施例提供一種實現前綴匹配的系統(tǒng), 包括兩個并行連接的存儲區(qū)域41a和41b和外部比較電路204,其中第一存儲區(qū)域41a 中存放長度超過前綴長度閾值的前綴,第二存儲區(qū)域41b中存放長度小于或等于前綴長度 閾值的前綴;外部比較電路204,用于接收在所述不同的存儲區(qū)域查詢的查詢結果,并進行比 較,得到最終匹配結果。所述實現前綴匹配的系統(tǒng),還包括分配模塊202,用于將前綴按照前綴長度是否超過前綴長度閾值分別存放到所述 不同的存儲區(qū)域內;查詢模塊203,用于在所述不同的存儲區(qū)域內查詢匹配的前綴,并將查詢結果發(fā)送 給外部比較電路204。如圖3所示所述查詢模塊203包括請求發(fā)送單元301,用于向所述不同的存儲區(qū)域同時發(fā)送查詢請求;查詢單元302,用于在所述不同的存儲區(qū)域存儲的前綴中查詢匹配的前綴;發(fā)送單元303,用于將查詢單元的查詢結果發(fā)送給所述外部比較電路204。所述外部比較電路204,用于接收各存儲區(qū)域的查詢結果,并進行比較,得到最終 匹配結果;具體為若在第一存儲區(qū)域41a能找到匹配的前綴,則將所述前綴確定為最終匹 配的結果;若在第一存儲區(qū)域41a未能找到匹配的前綴,則將第二存儲區(qū)域41b匹配的前綴 確定為最終匹配結果;若均未找到匹配的前綴,則查詢失敗。在上述本發(fā)明實施例提供的實現前綴匹配的系統(tǒng),將前綴按照長度的不同存放在 不同的存儲區(qū)域41內,并按照一定的連接方式和查詢模塊203,實現了前綴的匹配,與現有 技術相比,節(jié)約了存儲器的空間,降低了成本。本發(fā)明實施例提供的實現前綴匹配的系統(tǒng)可以應用到路由器當中,在路由器中, 將IP地址的前綴按照前綴長度是否超過前綴長度閾值進行分類,并將其分別存放到所述 實現前綴匹配的系統(tǒng)中的不同存儲區(qū)域內;當路由器轉發(fā)IP報文時,先獲取IP報文的目的地址,然后將所述目的地址與所述 不同存儲區(qū)域內的前綴進行匹配,并對匹配的結果進行比較,最終找出相匹配的前綴,將所 述IP報文從所述前綴所對應的端口轉發(fā)出去。在本發(fā)明實施例提供的路由器中,由于將前綴按照前綴長度是否超過前綴長度閾 值分別存放到不同的存儲區(qū)域內,較長的前綴分配較大的存儲空間,較短的前綴分配較小 的存儲空間,從而與現有的路由器相比,節(jié)約了存儲器的空間,降低了路由器的成本。另外,本發(fā)明實施例還可以進一步推廣,不限于IPv6前綴查詢,在需要執(zhí)行前綴 匹配操作的系統(tǒng)中,均可以將前綴按長度分為兩個或者多個部分,并分別存放在不同的存 儲區(qū)域內,在查詢時查詢兩個部分或者多個部分,根據兩個部分或者多個部分的查詢結果 判決得到最終的匹配結果,從而節(jié)約了存儲器的存儲空間,降低了成本,并且查詢接口的帶 寬保持不變。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分步驟可以 通過程序來指令相關的硬件完成,所述的程序可以存儲于計算機可讀存儲介質中,如ROM/ RAM、磁碟或光盤等。
以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應 涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以權利要求所述的保護范圍為準。
權利要求
一種前綴匹配的方法,其特征在于,包括按照前綴長度是否超過設定的前綴長度閾值將前綴分別存放到不同的存儲區(qū)域內;在所述不同的存儲區(qū)域內同時查詢匹配的前綴,并將各自的查詢結果發(fā)送給外部比較電路;所述外部比較電路對所述查詢結果進行比較,得到最終匹配結果。
2.根據權利要求1所述的前綴匹配的方法,其特征在于,所述按照前綴長度是否超過 設定的前綴長度閾值將前綴分別存放到不同的存儲區(qū)域內包括將長度超過前綴長度閾值的前綴存放于第一存儲區(qū)域,將長度小于或等于前綴長度閾 值的前綴存放于第二存儲區(qū)域。
3.根據權利要求1所述的前綴匹配的方法,其特征在于,所述在所述不同的存儲區(qū)域 內同時查詢匹配的前綴,并將各自的查詢結果發(fā)送給外部比較電路包括向所述不同的存儲區(qū)域同時發(fā)送查詢請求;所述不同的存儲區(qū)域接收到查詢請求后,在所述不同的存儲區(qū)域存儲的前綴中查詢匹 配的前綴;將各自的查詢結果發(fā)送給外部比較電路。
4.根據權利要求1或2所述的前綴匹配的方法,其特征在于,所述外部比較電路對所述 查詢結果進行比較,得到最終匹配結果的步驟包括若在第一存儲區(qū)域能找到匹配的前綴,則將所述前綴確定為最終匹配的結果;若在第 一存儲區(qū)域未能找到匹配的前綴,則將第二存儲區(qū)域匹配的前綴確定為最終匹配結果;若 均未找到匹配的前綴,則查詢失敗。
5.一種前綴匹配的裝置,其特征在于,包括 存儲模塊,用于存儲前綴,包含多個存儲區(qū)域;分配模塊,用于將前綴按照前綴長度是否超過前綴長度閾值分別存放到所述存儲模塊 的不同的存儲區(qū)域內;查詢模塊,用于在所述存儲模塊的不同的存儲區(qū)域內查詢匹配的前綴,并將查詢結果 發(fā)送給外部比較電路;外部比較電路,用于對所述查詢模塊的查詢結果進行比較,得到最終匹配結果。
6.根據權利要求5所述的前綴匹配的裝置,其特征在于,所述查詢模塊包括 請求發(fā)送單元,用于向所述不同的存儲區(qū)域同時發(fā)送查詢請求;查詢單元,用于在所述不同的存儲區(qū)域存儲的前綴中查詢匹配的前綴; 發(fā)送單元,用于將查詢單元的查詢結果發(fā)送給外部比較電路。
7.一種前綴匹配的系統(tǒng),其特征在于,包括兩個并行連接的存儲區(qū)域和外部比較電路;所述第一存儲區(qū)域,用于存放長度超過前綴長度閾值的前綴; 所述第二存儲區(qū)域,用于存放長度小于或等于前綴長度閾值的前綴; 外部比較電路,用于接收在所述不同的存儲區(qū)域查詢的查詢結果,并進行比較,得到最 終匹配結果。
8.根據權利要求7所述的系統(tǒng),其特征在于,還包括分配模塊,用于將前綴按照前綴長度是否超過前綴長度閾值分別存放到所述不同的存儲區(qū)域內;查詢模塊,用于在所述不同的存儲區(qū)域內查詢匹配的前綴,并將查詢結果發(fā)送給外部 比較電路。
9.根據權利要求8所述的系統(tǒng),其特征在于,所述查詢模塊包括請求發(fā)送單元,用于 向所述不同的存儲區(qū)域同時發(fā)送查詢請求;查詢單元,用于在所述不同的存儲區(qū)域存儲的 前綴中查詢匹配的前綴;發(fā)送單元,用于將查詢單元的查詢結果發(fā)送給所述外部比較電路。
全文摘要
本發(fā)明實施例提供了一種實現前綴匹配的方法,包括按照前綴長度是否超過設定的前綴長度閾值將前綴分別存放到不同的存儲區(qū)域內;在所述不同的存儲區(qū)域內同時查詢匹配的前綴,并將各自的查詢結果發(fā)送給外部比較電路;所述外部比較電路對所述查詢結果進行比較。本發(fā)明實施方式還提供一種實現前綴匹配的裝置和系統(tǒng)。本發(fā)明實施例基于IPv6前綴長短不一的特點,通過設定前綴長度閾值,按照前綴長度的不同將前綴存放在不同的存儲區(qū)域內,較長的前綴分配較大的存儲空間,較短的前綴分配較小的存儲空間,從而節(jié)約了存儲器的空間。
文檔編號H04L12/56GK101848133SQ20091011939
公開日2010年9月29日 申請日期2009年3月25日 優(yōu)先權日2009年3月25日
發(fā)明者梁軍 申請人:華為技術有限公司