基于FPGA的高速路由查找算法

0 引言

隨著網(wǎng)絡(luò)流量的不斷增加和路由表容量的不斷增大,路由查找已經(jīng)成為制約因特網(wǎng)的主要瓶頸。盡管采用CIDR技術(shù)能產(chǎn)生聚集路由,但路由器的路由表項還是很大,使得路由查找成為高,速路由器的瓶頸。因此,提高路由查找速度已成為高速路由器的關(guān)鍵技術(shù)。

目前實現(xiàn)路由查表的方法主要有軟件和硬件兩類。其中基于軟件查表方法的查找次數(shù)最少為5次,這顯然已經(jīng)不能滿足高速鏈路的要求;而基于Cache的查找方法,其查找依賴于流量的模式,即IP數(shù)據(jù)流具有局部性,隨著網(wǎng)絡(luò)數(shù)據(jù)量的增大,命中率也會降低。而基于硬件的Stanford算法則結(jié)構(gòu)簡單,易于硬件實現(xiàn),而且查找速度快,其最少需要訪問一次存儲器,最多需要訪問2次存儲器。但其占用存儲空間大(為33 MB),表項更新單元數(shù)多。在最壞情況下,更新一個表項需要操作64 k個存儲單元。

本文采用多表結(jié)構(gòu),將查找過程分為4級。

因為采用串行查找實現(xiàn)時,查找一個IP數(shù)據(jù)包最少需要訪問一次存儲器,最多需要訪問4次。而根據(jù)四塊存儲器獨立工作的特性,采用流水線的方式進行并行化設(shè)計,則可以保證訪問一次存儲器就能完成一次數(shù)據(jù)包的查找。為了保證占用較小的空間且四個存儲塊的容量相對均衡,本文用一個動態(tài)規(guī)劃算法來求解四個目標(biāo)層的值。此外,這種設(shè)計結(jié)構(gòu)也支持動態(tài)更新,并且更新單元數(shù)較少。

1 查找算法

本系統(tǒng)的基本算法采用分段查找及前綴擴展技術(shù)來將IPv4的32位IP地址分成4段,假設(shè)i是其中一段(1≤i≤4),length i代表第i段所對應(yīng)的IP地址長度。每一段內(nèi)容存儲在一塊物理地址連續(xù)的內(nèi)存區(qū)域中,稱為TBLi。那么,在第一段區(qū)域TBL1中,使用前綴擴展技術(shù),即可把所有長度小于等于length1的前綴擴展成長度為length1的前綴。圖1所示是該四級路由算法的結(jié)構(gòu)框圖。

顯然,該結(jié)構(gòu)中的第一段有2length1個表項,析出IP地址的前l(fā)ength1位的值為第一塊內(nèi)存的偏移地址,其對應(yīng)表項的數(shù)據(jù)格式如圖2所示。若前綴長度小于等于length1,則表項的第一位標(biāo)識為0,其余bit位表示下一跳的轉(zhuǎn)發(fā)信息。若前綴長度大于length1,則表項的第一位標(biāo)識為1,其余位填寫擴展表的索引值可以作為指向TBL2的指針。在其余的三個段中,可采用同樣的方法進行前綴擴展。

本算法的查找過程是在匹配一個IP地址時,從第一段開始進行分段查找,每查找一段,則解析出對應(yīng)段長度的IP,并取相應(yīng)內(nèi)存區(qū)域的地址。例如進行第二段查找時,可將其值作為偏移量,再加上相應(yīng)的基址,就可獲得該段對length1+1位開始,然后解析出length2長度的IP地址作為偏移量。之后再用TBL1表項里的索引,將其左移length2位作為基址,這樣就確定了第二塊連續(xù)存儲區(qū)域中的地址。依次類推,分段查找,直到找到下一跳地址為止。

本算法的插入過程與查找過程相似,先根據(jù)前綴對應(yīng)的分段和索引查找到對應(yīng)的子表,然后在其涉及的范圍內(nèi)讀取各個表項,再根據(jù)表項的值確定是否用新的路由前綴信息覆蓋該表項。如果在此過程中,該表沒有相應(yīng)的段空間,則需分配對應(yīng)的存儲空間。若該段空間為空,則收回該存儲空間。

2 目標(biāo)層的確定

在用NT(k,ω)表示前綴長度為w的情況下,還需要找出k個目標(biāo)層時對應(yīng)的最小前綴擴展數(shù)。這樣,其最優(yōu)解就是NT(k,ω)。其遞推公式如下:

 

作者:張毅,郭玲麗 西安電子科技大學(xué)   來源:電子元器件應(yīng)用

微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點本月熱點

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息