基于tcam的高速低功耗ip路由表查找方法
【專利摘要】本發(fā)明涉及網(wǎng)絡(luò)通信設(shè)備中的IP路由表查找方法,提供了一種基于TCAM的高速低功耗IP路由表查找技術(shù),可用于IPv4/6路由表查找,并具有動(dòng)態(tài)增量更新特點(diǎn)。本方法包括以下步驟:a.將IP路由表查找轉(zhuǎn)化為一維坐標(biāo)軸上的點(diǎn)定位問(wèn)題;b:根據(jù)各基本段所覆蓋的IP路由表項(xiàng)數(shù)量進(jìn)行等容量聚合,形成等容量區(qū)間段并建立索引表,構(gòu)建索引項(xiàng)與TCAM塊間的對(duì)應(yīng)關(guān)系;c:在查找過(guò)程中,查找索引表,激活并檢索對(duì)應(yīng)的TCAM塊,對(duì)檢索得到的IP地址進(jìn)行轉(zhuǎn)發(fā)即可;d:維護(hù)IP地址、等容量區(qū)間段及TCAM塊間的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)動(dòng)態(tài)增量更新。本發(fā)明通過(guò)將IP路由表查找問(wèn)題轉(zhuǎn)化為點(diǎn)定位問(wèn)題,建立索引表,可使查找過(guò)程僅需激活存放索引表的TCAM塊及索引得到的TCAM塊,從而實(shí)現(xiàn)高速低功耗設(shè)計(jì)。
【專利說(shuō)明】基于TCAM的高速低功耗IP路由表查找方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)通信設(shè)備,特別涉及基于TCAM的高速低功耗IP路由表查找方法。
【背景技術(shù)】
[0002] Internet的迅速發(fā)展給我們的生活帶來(lái)了巨大的變化,隨之而來(lái)的是網(wǎng)絡(luò)流量的 迅速增長(zhǎng)及路由表的不斷膨脹,這對(duì)于Internet上的網(wǎng)絡(luò)處理設(shè)備來(lái)說(shuō)是一個(gè)很大的挑 戰(zhàn),特別是核心網(wǎng)絡(luò)設(shè)備。此外,隨著光纖通信技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)處理設(shè)備對(duì)于線速的 要求變得越來(lái)越高,留給設(shè)備進(jìn)行單個(gè)數(shù)據(jù)包處理轉(zhuǎn)發(fā)的時(shí)間越來(lái)越短,這對(duì)于Internet 上的網(wǎng)絡(luò)處理設(shè)備來(lái)說(shuō)同樣是一個(gè)極大的挑戰(zhàn)。路由器和交換機(jī)是在網(wǎng)絡(luò)中對(duì)數(shù)據(jù)分組轉(zhuǎn) 發(fā)的典型設(shè)備,路由表是其進(jìn)行數(shù)據(jù)分組轉(zhuǎn)發(fā)的基礎(chǔ)。路由器和交換機(jī)在轉(zhuǎn)發(fā)數(shù)據(jù)分組時(shí), 需要根據(jù)目的IP地址及最長(zhǎng)前綴匹配原則,查找路由表從而確定正確的下一跳出口。因 此,如何在巨大的路由表中快速找到最佳匹配的表項(xiàng)是路由器和交換機(jī)迫切需要解決的一 個(gè)問(wèn)題。
[0003] 傳統(tǒng)的基于軟件算法的路由查找策略,如樹(shù)或哈希算法,其執(zhí)行過(guò)程都是相當(dāng)慢 的,而且與路由表的大小相關(guān)聯(lián)。所以,這些方法只能用于規(guī)模小的、性能較低的包轉(zhuǎn)發(fā)應(yīng) 用。使用路由表壓縮技術(shù),將路由表按特定的分布規(guī)律壓縮后存放在處理器的高速緩存中, 這樣可以大大提高查詢速度。但是數(shù)據(jù)結(jié)構(gòu)的高度優(yōu)化和壓縮使得路由表的更新需要花費(fèi) 更多的寄存器訪問(wèn)和處理器周期,當(dāng)路由表增大時(shí),這個(gè)值還會(huì)增加。此外,當(dāng)路由表需要 更新時(shí),需要重新建立整個(gè)查找結(jié)構(gòu),嚴(yán)重降低了路由器和交換機(jī)的性能。隨著IPv6的出 現(xiàn)和不斷推廣,這些軟件算法更是捉襟見(jiàn)肘。
[0004] 三態(tài)內(nèi)容尋址存儲(chǔ)器(Ternary Content Addressable Memory,簡(jiǎn)稱 TCAM)技術(shù) 是一種能完成快速路由表查找的有效硬件方法,它是從CAM發(fā)展而來(lái)的。一般的CAM存 儲(chǔ)器中的每個(gè)bit位的狀態(tài)只有"0"或者"1"兩種,而TCAM還有一種"don' t care"狀 態(tài),又記作"*",所以稱為三態(tài)。正是TCAM的這種三態(tài)特征使其既能夠進(jìn)行精確匹配查 找,又能夠進(jìn)行模糊匹配查找,而由于IP地址可以表示為前綴型數(shù)值,因此TCAM被廣泛應(yīng) 用于IP路由表查找中。TCAM方案的高性能源于其高度的并行查找能力,但是正是由于這 種高度的并行查找能力,使得TCAM方案消耗了大量的能源,這些能源既包括TCAM自身并 行查找所消耗的,也包括輔助的散熱設(shè)備所消耗的。在能源緊缺的今天,節(jié)能環(huán)保越來(lái)越 被IT界重視,如何降低TCAM方案的能耗成為業(yè)界關(guān)注的一個(gè)話題。正是在這樣的背景 下,TCAM提供商提出了一種塊(block)機(jī)制,即將整大塊的TCAM劃分為某干個(gè)小的TCAM 塊,即TCAM block,這樣可以有選擇的激活其中部分TCAM塊進(jìn)行查找而不是原始的整大 塊TCAM從而達(dá)到降低能耗。此外,TCAM提供商還提供了 TCAM塊的并行查找能力,例如 Cisco catalyst4500系列就允許同時(shí)進(jìn)行四個(gè)TCAM塊的并行查找。這兩種新機(jī)制可參見(jiàn) Yadi Ma等人的"A Smart Pre-Classifier to Reduce Power Consumption of TCAMs for Multi-dimensional Packet Classification"(ACM SIGC0MM2012)論文。如何有效利用 這種塊的機(jī)制是當(dāng)前的一個(gè)熱點(diǎn)和難點(diǎn)。最長(zhǎng)共同前綴匹配的概念在Samar Sharma等人 的 "Sorting and Searching using Ternary CAMs"(IEEE H0TI2002)論文中被提出,并在 Yeim-Kuan Chang 的"A2_Level TCAM Architecture forRanges" (IEEE TRANSACTIONS ON COMPUTERS. VOL. 55, NO. 12)論文中得到擴(kuò)展。但兩者都僅用于解決基本段定位問(wèn)題,沒(méi)有能 夠解決IP路由表的查找問(wèn)題,更沒(méi)有能夠解決TCAM的低功耗設(shè)計(jì)問(wèn)題及動(dòng)態(tài)更新設(shè)計(jì)。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于TCAM的高速低功耗路由表查找方 法,并且要求該方法具有可動(dòng)態(tài)增量更新的特點(diǎn),能夠解決現(xiàn)有軟件算法的低速問(wèn)題及現(xiàn) 有TCAM方案的高能耗問(wèn)題。
[0006] 為了解決上述問(wèn)題,本發(fā)明提供是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
[0007] a :將IP路由表查找轉(zhuǎn)化為一維坐標(biāo)軸上的基本段的點(diǎn)定位問(wèn)題;
[0008] b :根據(jù)各基本段所覆蓋的IP路由表項(xiàng)數(shù)量進(jìn)行等容量聚合,形成等容量區(qū)間段, 根據(jù)等容量區(qū)間段建立索引表,構(gòu)建索引項(xiàng)與TACM塊間的對(duì)應(yīng)關(guān)系;
[0009] c:在查找過(guò)程中,檢索索引表,根據(jù)檢索結(jié)果激活對(duì)應(yīng)的TCAM塊,然后利用目的 IP地址對(duì)激活的TCAM塊進(jìn)行檢索,對(duì)檢索得到的IP地址進(jìn)行轉(zhuǎn)發(fā)即可;
[0010] d :維護(hù)IP地址、等容量區(qū)間段及TCAM塊之間的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)了 IP路由表的動(dòng) 態(tài)增量更新。
[0011] 其中,步驟a中,將IP路由表中的所有IP地址視為一維坐標(biāo)軸上的線段并將這些 線段進(jìn)行坐標(biāo)軸映射,映射后線段的端點(diǎn)會(huì)將坐標(biāo)軸劃分成一系列連續(xù)的基本段(基本段 內(nèi)無(wú)端點(diǎn)),每個(gè)基本段對(duì)應(yīng)零個(gè)、一個(gè)或者多個(gè)IP地址(IP地址對(duì)應(yīng)線段與基本段有重疊 則認(rèn)為該基本段與該IP地址有對(duì)應(yīng)關(guān)系),對(duì)于對(duì)應(yīng)多個(gè)IP地址的基本段,根據(jù)最長(zhǎng)前綴 匹配原則取最長(zhǎng)前綴地址作為該段對(duì)應(yīng)的IP地址。
[0012] 其中,步驟b中,根據(jù)各基本段所覆蓋的IP路由表項(xiàng)數(shù)量進(jìn)行等容量聚合,形成等 容量區(qū)間段,通過(guò)最長(zhǎng)共同前綴及擴(kuò)展對(duì)聚合后的等容量區(qū)間段建立索引表,每個(gè)索引表 項(xiàng)對(duì)應(yīng)一個(gè)TCAM塊編號(hào),該TCAM塊內(nèi)存放的是相應(yīng)等容量區(qū)間段內(nèi)對(duì)應(yīng)的IP地址集合。
[0013] 其中,步驟c中,在查找過(guò)程中,先激活存放索引表的TCAM塊,通過(guò)目的IP地址對(duì) 存放索引表的TCAM塊進(jìn)行查找,得出相應(yīng)索引結(jié)果,根據(jù)索引結(jié)果獲取一個(gè)TCAM塊編號(hào)。 激活該編號(hào)對(duì)應(yīng)的TCAM塊,利用目的IP地址對(duì)該TCAM塊進(jìn)行查找,得出的結(jié)果便是最長(zhǎng) 前綴匹配原則所要得到的IP地址,最后進(jìn)行轉(zhuǎn)發(fā)即可。
[0014] 其中,步驟d中,為了使得算法具有動(dòng)態(tài)增量更新的特點(diǎn),IP路由表的維護(hù)模塊構(gòu) 建了路由表中IP地址、等容量區(qū)間段及TCAM塊之間的對(duì)應(yīng)關(guān)系。當(dāng)IP路由表發(fā)生更新操 作時(shí),可以根據(jù)IP地址、等容量區(qū)間段及TCAM塊之間的對(duì)應(yīng)關(guān)系更新相應(yīng)的TCAM塊,而無(wú) 需更新所有TCAM塊,也無(wú)需改變?cè)械恼w查找結(jié)構(gòu),只有必要時(shí)才進(jìn)行整體結(jié)構(gòu)重建, 因此實(shí)現(xiàn)了動(dòng)態(tài)增量更新。
[0015] 本發(fā)明的有益效果是,通過(guò)將IP路由表查找問(wèn)題轉(zhuǎn)化為點(diǎn)定位問(wèn)題,利用最長(zhǎng)共 同前綴及修正技術(shù)為T(mén)CAM塊構(gòu)建索引表,通過(guò)查找索引表,根據(jù)索引結(jié)果激活并查找某一 個(gè)TCAM ±夬,從而實(shí)現(xiàn)高速低功耗設(shè)計(jì),此外,由于維護(hù)了 IP地址、等容量區(qū)間段及TCAM塊 之間的對(duì)應(yīng)關(guān)系,從而實(shí)現(xiàn)了動(dòng)態(tài)增量更新。
[0016] 下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步的詳細(xì)描述。
【專利附圖】
【附圖說(shuō)明】
[0017] 圖1是基于TCAM的高速低功耗IP路由表查找方法的系統(tǒng)結(jié)構(gòu)示意圖;
[0018] 圖2是基于TCAM的高速低功耗IP路由表查找方法的實(shí)施流程示意圖;
[0019] 圖3是基于TCAM的高速低功耗IP路由表查找方法的IP地址映射示意圖;
[0020] 圖4是基于TCAM的高速低功耗IP路由表查找方法的構(gòu)建等容量區(qū)間段示意圖;
[0021] 圖5是基于TCAM的高速低功耗IP路由表查找方法的等容量區(qū)間段的最長(zhǎng)共同前 綴不意圖;
[0022] 圖6是基于TCAM的高速低功耗IP路由表查找方法的TCAM存儲(chǔ)示意圖;
[0023] 圖7是基于TCAM的高速低功耗IP路由表查找方法的查找示意圖;
【具體實(shí)施方式】
[0024] 本發(fā)明分為三大模塊:建立IP路由表索引結(jié)構(gòu)模塊,IP路由表查找模塊和IP路 由表的維護(hù)模塊。本發(fā)明的系統(tǒng)結(jié)構(gòu)如圖1所示,步驟100建立索引表后將索引表存入TCAM 塊中;步驟200負(fù)責(zé)使用目的IP地址去步驟1得出的存放索引表的TCAM塊中進(jìn)行檢索, 根據(jù)檢索得出的結(jié)果去激活某一個(gè)TCAM塊,再利用目的IP地址檢索該TCAM塊得出查找結(jié) 果;步驟300則是負(fù)責(zé)對(duì)步驟100得出的索引表進(jìn)行維護(hù),負(fù)責(zé)路由表的更新操作。下面結(jié) 合圖2介紹具體實(shí)施流程。為了描述方便,后續(xù)將以表1所示的一個(gè)含有七條八位IP地址 的簡(jiǎn)單路由表為例加以闡述。
[0025] 表1. 一個(gè)簡(jiǎn)單的路由表實(shí)例
[0026]
[0027] 實(shí)施例1
【權(quán)利要求】
1. 一種基于TCAM的高速低功耗IP路由表查找方法,其特征在于,包括以下步驟: a :將IP路由表查找轉(zhuǎn)化為一維坐標(biāo)軸上的基本段的點(diǎn)定位問(wèn)題; b :根據(jù)各基本段所覆蓋的IP路由表項(xiàng)數(shù)量進(jìn)行等容量聚合,形成等容量區(qū)間段,并建 立索引表,構(gòu)建索引項(xiàng)與TACM塊間的對(duì)應(yīng)關(guān)系; c :在查找過(guò)程中,檢索索引表,根據(jù)檢索結(jié)果激活對(duì)應(yīng)的TCAM塊,然后利用目的IP地 址對(duì)激活的TCAM塊進(jìn)行檢索,對(duì)檢索得到的IP地址進(jìn)行轉(zhuǎn)發(fā)即可; d :維護(hù)IP地址、等容量區(qū)間段及TCAM塊之間的對(duì)應(yīng)關(guān)系,實(shí)現(xiàn)了動(dòng)態(tài)增量更新。
2. 根據(jù)權(quán)利要求1所述的基于TCAM的高速低功耗IP路由表查找方法,其特征是,步 驟a中,將IP路由表中的所有IP地址視為一維坐標(biāo)軸上的線段并將這些線段進(jìn)行坐標(biāo)軸 映射,映射后會(huì)將坐標(biāo)軸劃分成一系列連續(xù)的基本段,每個(gè)基本段對(duì)應(yīng)零個(gè)、一個(gè)或者多個(gè) IP地址。
3. 根據(jù)權(quán)利要求2所述的基于TCAM的高速低功耗IP路由表查找方法,其特征是,對(duì)于 對(duì)應(yīng)多個(gè)IP地址的基本段,根據(jù)最長(zhǎng)前綴匹配原則取最長(zhǎng)前綴地址作為該段對(duì)應(yīng)的IP地 址。
4. 根據(jù)權(quán)利要求3所述的基于TCAM的高速低功耗IP路由表查找方法,其特征在于,步 驟b中,對(duì)一維區(qū)間上的基本段進(jìn)行IP地址的等容量聚合,構(gòu)建等容量區(qū)間段,對(duì)這些等容 量區(qū)間段構(gòu)建索引表。
5. 根據(jù)權(quán)利要求4所述的基于TCAM的高速低功耗IP路由表查找方法,其特征在于, 每個(gè)索引表項(xiàng)對(duì)應(yīng)一個(gè)TCAM塊編號(hào),該TCAM塊內(nèi)存放的是相應(yīng)等容量區(qū)間段內(nèi)對(duì)應(yīng)的IP 地址集合。
6. 根據(jù)權(quán)利要求1所述的基于TCAM的高速低功耗IP路由表查找方法,其特征在于, 步驟c中,在查找過(guò)程中,先激活存放索引表的TCAM塊,通過(guò)目的IP地址對(duì)存放索引表的 TCAM塊進(jìn)行查找,得出相應(yīng)索引項(xiàng),根據(jù)索引項(xiàng)獲取一個(gè)TCAM塊編號(hào)。
7. 根據(jù)權(quán)利要求6所述的基于TCAM的高速低功耗IP路由表查找方法,其特征在于,根 據(jù)得到的TCAM塊編號(hào)激活相應(yīng)的TCAM ±夬,利用目的IP地址對(duì)該TCAM塊進(jìn)行查找,得出的 結(jié)果便是最長(zhǎng)前綴匹配原則得到的IP地址,最后進(jìn)行轉(zhuǎn)發(fā)即可。
8. 根據(jù)權(quán)利要求1所述的基于TCAM的高速低功耗IP路由表查找方法,其特征在于, 步驟d中,為了使得算法具有動(dòng)態(tài)更新的特點(diǎn),IP路由表的維護(hù)模塊構(gòu)建了路由表中IP地 址、等容量區(qū)間段及TCAM塊之間的對(duì)應(yīng)關(guān)系。
9. 根據(jù)權(quán)利要求8所述的基于TCAM的高速低功耗IP路由表查找方法,其特征在于, 當(dāng)IP路由表發(fā)生更新操作時(shí),可以根據(jù)IP地址、等容量區(qū)間段及TCAM塊之間的對(duì)應(yīng)關(guān)系 更新相應(yīng)的TCAM塊,而無(wú)需更新所有TCAM塊,也無(wú)需改變?cè)械恼w查找結(jié)構(gòu),只有必要 時(shí)才進(jìn)行整體結(jié)構(gòu)重建,實(shí)現(xiàn)了動(dòng)態(tài)增量更新。
【文檔編號(hào)】H04L12/741GK104301227SQ201310314077
【公開(kāi)日】2015年1月21日 申請(qǐng)日期:2013年7月16日 優(yōu)先權(quán)日:2013年7月16日
【發(fā)明者】李文軍, 李險(xiǎn)峰 申請(qǐng)人:北京大學(xué)深圳研究生院