專利名稱:提高路由查找速度的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域的系統(tǒng),具體是一種提高路由查找速度 的系統(tǒng)。
背景技術(shù):
路由查找屬于路由前驅(qū)引擎的一部分。網(wǎng)絡(luò)接口在接收到數(shù)據(jù)包后,通過(guò)交換器 把數(shù)據(jù)包,發(fā)送給前驅(qū)引擎。前驅(qū)引擎的主要功能是首先對(duì)數(shù)據(jù)包頭進(jìn)行CRC (循環(huán)冗余校 驗(yàn)碼)校驗(yàn),然后根據(jù)數(shù)據(jù)包的目的地址進(jìn)行路由查找,查詢出此包下一跳端口號(hào)。因此, 路由查找是數(shù)據(jù)轉(zhuǎn)發(fā)的重要一步。由于目前路由轉(zhuǎn)發(fā)的數(shù)據(jù)流量不斷增加,這必然要求不 斷提高路由查找的效率,也使得路由查找日益成為提高數(shù)據(jù)轉(zhuǎn)發(fā)效率的瓶頸。關(guān)于路由查找,目前一方面從純技術(shù)角度入手改進(jìn)現(xiàn)有的查找系統(tǒng);另一方面,是 利用現(xiàn)有的查找系統(tǒng)結(jié)合新型的設(shè)備以及降低運(yùn)算的復(fù)雜度來(lái)實(shí)現(xiàn)路由查找。目前的路由 查找主要是在無(wú)類域間路由(classless inter-domain routing)的地址結(jié)構(gòu)的基礎(chǔ)上進(jìn) 行最長(zhǎng)匹配查找。無(wú)類域間路由地址結(jié)構(gòu)使用 < 地址/前綴長(zhǎng)度 > 對(duì)來(lái)表示路由項(xiàng)。經(jīng)對(duì)現(xiàn)有文獻(xiàn)檢索發(fā)現(xiàn),中國(guó)專利公開號(hào)為CN1362822. A,名稱為基于內(nèi)容可 尋址存儲(chǔ)器的高速路由查找系統(tǒng),該技術(shù)包括內(nèi)容可尋址存儲(chǔ)器、同步靜態(tài)存儲(chǔ)器、路由 查找協(xié)處理器和驅(qū)動(dòng)電路,其中內(nèi)容可尋址存儲(chǔ)器通過(guò)驅(qū)動(dòng)電路與路由查找協(xié)處理器相 連,由路由查找協(xié)處理器控制讀與寫。雖然,該方法有效的提高了路由查找的速度,但該方 法涉及到靜態(tài)存儲(chǔ)器讀寫的復(fù)雜協(xié)議,同時(shí),片上系統(tǒng)要通過(guò)總線獲取存儲(chǔ)地址,再利用總 線進(jìn)行讀寫操作,造成總線資源的過(guò)利用。又經(jīng)檢索發(fā)現(xiàn),中國(guó)專利公開號(hào)為CN1863169.A,名稱為基于網(wǎng)絡(luò)處理器的路 由查找結(jié)果處理方法,該技術(shù)在網(wǎng)絡(luò)處理器的片上高速存儲(chǔ)器中建立并維護(hù)一個(gè)路由查找 緩存表,按照最近最少使用的原則進(jìn)行順序調(diào)整的原則對(duì)緩存表的表項(xiàng)進(jìn)行管理,有效的 提高了查找速度,但是,緩存表的存在必然造成存儲(chǔ)資源的大量占用,尤其是在骨干網(wǎng)的應(yīng) 用中,其覆蓋面屬于十幾萬(wàn)到上百萬(wàn)的IP,那么其資源占用率也是很大的。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中存在的上述不足,提供了一種提高路由查找速 度的系統(tǒng)。本發(fā)明通過(guò)片上系統(tǒng)(SOC)和硬件查找模塊的結(jié)合,實(shí)現(xiàn)了路由系統(tǒng)的快速查 找,不僅具有查找速度快、實(shí)現(xiàn)簡(jiǎn)單的優(yōu)點(diǎn),而且還具有易移植和可擴(kuò)展的特點(diǎn)。本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的本發(fā)明包括驅(qū)動(dòng)模塊、接口模塊、初始化模塊、路由存儲(chǔ)模塊、人機(jī)交互模塊和查 找模塊,其中驅(qū)動(dòng)模塊和人機(jī)交互模塊相連傳輸驅(qū)動(dòng)信息,人機(jī)交互模塊與接口模塊相連 傳輸交互信息,接口模塊與初始化模塊相連傳輸初始化信息,接口模塊與查找模塊相連傳 輸交互信息,查找模塊與路由存儲(chǔ)模塊相連傳輸待查找的路由信息。所述的初始化模塊包括標(biāo)志位初始化子模塊、存儲(chǔ)地址初始化子模塊和狀態(tài)機(jī)初始化子模塊,其中標(biāo)志位初始化子模塊分別與存儲(chǔ)地址初始化子模塊和狀態(tài)機(jī)初始化 子模塊相連傳輸有效的控制信息,存儲(chǔ)地址初始化子模塊與接口模塊相連傳輸初始化存儲(chǔ) 地址信息,狀態(tài)機(jī)初始化子模塊與接口模塊相連傳輸初始化狀態(tài)機(jī)信息。所述的路由存儲(chǔ)模塊包括四個(gè)主表存儲(chǔ)子模塊和四個(gè)子表存儲(chǔ)子模塊,其中 每個(gè)主表存儲(chǔ)子模塊和每個(gè)子表存儲(chǔ)子模塊分別與查找模塊相連傳輸查找的路由地址信 肩、O所述的查找模塊包括分割子模塊、尋址子模塊、讀子模塊、寫子模塊和判斷子模 塊,其中分割子模塊與接口模塊相連傳輸人機(jī)交互信息,分割子模塊與尋址子模塊相連傳 輸有效的地址信息,尋址子模塊與判斷子模塊相連傳輸待查找路由地址的確認(rèn)信息,讀子 模塊和寫子模塊分別與路由存儲(chǔ)模塊相連傳輸待讀取的路由信息和待寫入的路由信息。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是1、速率高平均查找速度可以達(dá)到50M條/秒;2、復(fù)雜度低沒有涉及其他協(xié)議上的操作,有效提高了讀寫的總線利用率;3、占用的數(shù)據(jù)空間少通過(guò)地址尋址操作有效地提高了空間的利用率;4、脫離了二叉樹結(jié)構(gòu)使得存儲(chǔ)空間的增刪更具靈活性;5、適合小容量的路由存儲(chǔ),當(dāng)外部有合適的大容量存儲(chǔ)硬件設(shè)備,該系統(tǒng)也可以 很容易地?cái)U(kuò)展到大容量的路由表項(xiàng),如IOM條以上。
具體實(shí)施例方式以下對(duì)本發(fā)明的系統(tǒng)進(jìn)一步描述本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí) 施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。實(shí)施例本實(shí)施例包括驅(qū)動(dòng)模塊、接口模塊、初始化模塊、路由存儲(chǔ)模塊、人機(jī)交互模塊和 查找模塊,其中驅(qū)動(dòng)模塊和人機(jī)交互模塊相連傳輸驅(qū)動(dòng)信息,人機(jī)交互模塊與接口模塊相 連傳輸交互信息,接口模塊與初始化模塊相連傳輸初始化信息,接口模塊與查找模塊相連 傳輸交互信息,查找模塊與路由存儲(chǔ)模塊相連傳輸待查找的路由信息。所述的初始化模塊包括標(biāo)志位初始化子模塊、存儲(chǔ)地址初始化子模塊和狀態(tài)機(jī) 初始化子模塊,其中標(biāo)志位初始化子模塊分別與存儲(chǔ)地址初始化子模塊和狀態(tài)機(jī)初始化 子模塊相連傳輸有效的控制信息,存儲(chǔ)地址初始化子模塊與接口模塊相連傳輸初始化存儲(chǔ) 地址信息,狀態(tài)機(jī)初始化子模塊與接口模塊相連傳輸初始化狀態(tài)機(jī)信息。所述的標(biāo)志位初始化子模塊利用接收到的標(biāo)志信息對(duì)存儲(chǔ)地址初始化子模塊和 狀態(tài)機(jī)初始化子模塊進(jìn)行有效的控制和信息修改。所述的存儲(chǔ)地址初始化子模塊對(duì)一個(gè)大空間地址的內(nèi)容進(jìn)行初始化。所述的狀態(tài)機(jī)初始化子模塊使得整個(gè)系統(tǒng)進(jìn)入待運(yùn)行狀態(tài)。所述的路由存儲(chǔ)模塊包括四個(gè)主表存儲(chǔ)子模塊和四個(gè)子表存儲(chǔ)子模塊,其中 每個(gè)主表存儲(chǔ)子模塊和每個(gè)子表存儲(chǔ)子模塊分別通過(guò)沖突狀態(tài)標(biāo)志位與查找模塊相連傳 輸查找的路由地址信息,主表存儲(chǔ)子模塊間相互獨(dú)立,子表存儲(chǔ)子模塊間相互獨(dú)立。本實(shí)施例中路由存儲(chǔ)模塊是一個(gè)64KB的可讀寫RAM (隨機(jī)存取存儲(chǔ)器),將該RAM 分割為4塊,分別對(duì)應(yīng)IP前綴長(zhǎng)度為1 20、21 24、25 28和29 32。對(duì)于每一塊RAM存儲(chǔ)區(qū),為了有效地克服HASH(散列)帶來(lái)的碰撞問題,分別設(shè)置了兩個(gè)存儲(chǔ)區(qū)——主 表存儲(chǔ)子模塊和子表存儲(chǔ)子模塊,其中主表存儲(chǔ)子模塊記錄了自身的IP前綴、IP前綴長(zhǎng) 度、沖突標(biāo)志位以及相關(guān)的路由信息;子表存儲(chǔ)子模塊記錄了 IP前綴、IP前綴長(zhǎng)度和相關(guān) 的路由信息。所述的查找模塊包括分割子模塊、尋址子模塊、讀子模塊、寫子模塊和判斷子模 塊,其中分割子模塊與接口模塊相連傳輸人機(jī)交互信息,分割子模塊與尋址子模塊相連傳 輸有效的地址信息,尋址子模塊與判斷子模塊相連傳輸待查找路由地址的確認(rèn)信息,讀子 模塊和寫子模塊分別與路由存儲(chǔ)模塊相連傳輸待讀取的路由信息和待寫入的路由信息。所述的分割子模塊對(duì)人機(jī)交互模塊得到的路由/前綴長(zhǎng)度信息進(jìn)行分離。所述的尋址子模塊對(duì)分割子模塊得到的前綴長(zhǎng)度信息鎖定相對(duì)應(yīng)的主表存儲(chǔ)子 模塊和子表存儲(chǔ)子模塊。所述的判斷子模塊保證所查找的路由地址是真正存儲(chǔ)路由信息的地址。所述的讀子模塊和所述的寫子模塊對(duì)路由信息進(jìn)行修改和反饋。本實(shí)施例中RAM的尋址為14位,每一條地址存儲(chǔ)32bits的信息,每一條路由信息 由64位組成,包括32bits的自身IP前綴prefix,32bits的混合信息(前綴長(zhǎng)度、沖突標(biāo) 準(zhǔn)位以及下一跳信息)。根據(jù)每個(gè)節(jié)點(diǎn)的prefix,通過(guò)HASH求得一個(gè)14位長(zhǎng)的地址address,將路由信息 存入到對(duì)應(yīng)的地址中。在對(duì)路由表的寫操作中知道,本系統(tǒng)分配的為16K*4Byte的地址空間,且每條路 由信息包含2*4Byte的數(shù)據(jù),因此,該系統(tǒng)最大只能存儲(chǔ)8K條信息。按照前綴優(yōu)化的IPV4 并行HASH方法以及主表子表的分配(1 8,即一條主表路由信息可能潛在8條路由信息與 其沖突,并將出現(xiàn)沖突的路由信息分配到子表中)。當(dāng)各子表存儲(chǔ)子模塊和主表存儲(chǔ)子模塊 分配的空間相同,則每個(gè)表最多只能存儲(chǔ)IK條路由信息。但主表和子表存在著1 8的對(duì) 應(yīng)關(guān)系,所以相對(duì)于IK條的子表路由信息,主表存儲(chǔ)子模塊只能存儲(chǔ)128條路由信息。因 此,此處通過(guò)HASH計(jì)算的真正有效地址位數(shù)只有7bits。此處所采用的HASH是利用異或來(lái)實(shí)現(xiàn)的,這里以第一個(gè)存儲(chǔ)分塊A為例,核心地 址為prefix [31 25]、prefix [26 20]與prefix [21 15]三則之間逐位異或所得到A。當(dāng)進(jìn)行 數(shù)據(jù)存儲(chǔ)時(shí),此時(shí)對(duì)于第一存儲(chǔ)區(qū)的主表而言,其地址為00000A00 (此處A前面的” 00000” 與” 00”分別是作者根據(jù)分配空間而自行定義的,各存儲(chǔ)空間各有不同,且各主表子表之間 也不同),當(dāng)查找地址后,首先對(duì)該地址進(jìn)行讀操作,當(dāng)讀到路由信息,則表明主表存儲(chǔ)子模 塊中已存儲(chǔ)數(shù)據(jù),需要將新數(shù)據(jù)往子表存儲(chǔ)子模塊中存儲(chǔ),同時(shí)設(shè)置主表中的沖突標(biāo)志位。對(duì)于路由的查找過(guò)程,其實(shí)就是采用上述的地址計(jì)算方法結(jié)合最長(zhǎng)匹配的原則來(lái) 獲得最優(yōu)的IP地址并獲得下一跳信息。本實(shí)施例方法得到的查找的時(shí)間為16X10_9s,從而本實(shí)施例方法的查找速度保持 為51M/s以上,且準(zhǔn)確得到了下一跳的地址。
權(quán)利要求
一種提高路由查找速度的系統(tǒng),其特征在于,包括驅(qū)動(dòng)模塊、接口模塊、初始化模塊、路由存儲(chǔ)模塊、人機(jī)交互模塊和查找模塊,其中驅(qū)動(dòng)模塊和人機(jī)交互模塊相連傳輸驅(qū)動(dòng)信息,人機(jī)交互模塊與接口模塊相連傳輸交互信息,接口模塊與初始化模塊相連傳輸初始化信息,接口模塊與查找模塊相連傳輸交互信息,查找模塊與路由存儲(chǔ)模塊相連傳輸待查找的路由信息。
2.根據(jù)權(quán)利要求1所述的提高路由查找速度的系統(tǒng),其特征是,所述的初始化模塊包 括標(biāo)志位初始化子模塊、存儲(chǔ)地址初始化子模塊和狀態(tài)機(jī)初始化子模塊,其中標(biāo)志位初 始化子模塊分別與存儲(chǔ)地址初始化子模塊和狀態(tài)機(jī)初始化子模塊相連傳輸有效的控制信 息,存儲(chǔ)地址初始化子模塊與接口模塊相連傳輸初始化存儲(chǔ)地址信息,狀態(tài)機(jī)初始化子模 塊與接口模塊相連傳輸初始化狀態(tài)機(jī)信息。
3.根據(jù)權(quán)利要求2所述的提高路由查找速度的系統(tǒng),其特征是,所述的標(biāo)志位初始化 子模塊利用接收到的標(biāo)志信息對(duì)存儲(chǔ)地址初始化子模塊和狀態(tài)機(jī)初始化子模塊進(jìn)行有效 的控制和信息修改。
4.根據(jù)權(quán)利要求1所述的提高路由查找速度的系統(tǒng),其特征是,所述的路由存儲(chǔ)模塊 包括四個(gè)主表存儲(chǔ)子模塊和四個(gè)子表存儲(chǔ)子模塊,其中每個(gè)主表存儲(chǔ)子模塊和每個(gè)子 表存儲(chǔ)子模塊分別與查找模塊相連傳輸查找的路由地址信息。
5.根據(jù)權(quán)利要求1所述的提高路由查找速度的系統(tǒng),其特征是,所述的查找模塊包括 分割子模塊、尋址子模塊、讀子模塊、寫子模塊和判斷子模塊,其中分割子模塊與接口模塊 相連傳輸人機(jī)交互信息,分割子模塊與尋址子模塊相連傳輸有效的地址信息,尋址子模塊 與判斷子模塊相連傳輸待查找路由地址的確認(rèn)信息,讀子模塊和寫子模塊分別與路由存儲(chǔ) 模塊相連傳輸待讀取的路由信息和待寫入的路由信息。
6.根據(jù)權(quán)利要求5所述的提高路由查找速度的系統(tǒng),其特征是,所述的讀子模塊和所 述的寫子模塊對(duì)路由信息進(jìn)行修改和反饋。
7.根據(jù)權(quán)利要求1所述的提高路由查找速度的系統(tǒng),其特征是,所述的尋址子模塊對(duì) 分割子模塊得到的前綴長(zhǎng)度信息鎖定相對(duì)應(yīng)的路由存儲(chǔ)模塊。
8.根據(jù)權(quán)利要求4所述的提高路由查找速度的系統(tǒng),其特征是,所述的路由存儲(chǔ)模塊 是指路由存儲(chǔ)模塊內(nèi)的主表存儲(chǔ)子模塊和子表存儲(chǔ)子模塊。
全文摘要
一種計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域的提高路由查找速度的系統(tǒng),包括驅(qū)動(dòng)模塊、接口模塊、初始化模塊、路由存儲(chǔ)模塊、人機(jī)交互模塊和查找模塊,其中驅(qū)動(dòng)模塊和人機(jī)交互模塊相連傳輸驅(qū)動(dòng)信息,人機(jī)交互模塊與接口模塊相連傳輸交互信息,接口模塊與初始化模塊相連傳輸初始化信息,接口模塊與查找模塊相連傳輸交互信息,查找模塊與路由存儲(chǔ)模塊相連傳輸待查找的路由信息;所述的查找模塊包括分割子模塊、尋址子模塊、讀子模塊、寫子模塊和判斷子模塊。本發(fā)明平均查找速度可以達(dá)到50M條/秒;復(fù)雜度低;占用的數(shù)據(jù)空間少;脫離了二叉樹結(jié)構(gòu)使得存儲(chǔ)空間的增刪更具靈活性;適合小容量的路由存儲(chǔ),當(dāng)外部有大容量存儲(chǔ)硬件設(shè)備,該系統(tǒng)也能實(shí)現(xiàn)。
文檔編號(hào)H04L12/56GK101895479SQ20101025549
公開日2010年11月24日 申請(qǐng)日期2010年8月17日 優(yōu)先權(quán)日2010年8月17日
發(fā)明者包旭雷, 孫林峰, 朱杰 申請(qǐng)人:上海交通大學(xué)