2021年2月第42卷 第2期计算机工程与设计C O M P U T E RE N G I N E E R I N GA N DDE S I G NF e b .2021V o l .42 N o .2基于分组T C A M 的T 比特高性能路由器快速查找更新技术刘宗宝,赵 鑫,张 力,李之乾,张 琨(中国航天科工集团第二研究院七〇六所,北京100854)摘 要:针对传统T C A M 查找更新方法复杂度高㊁无法满足高性能路由器线速查找转发需求的问题,提出一种基于分组T C A M 的路由查找更新技术㊂介绍T 比特高性能路由器的系统架构,提出基于分组T C A M 的路由查找更新架构,以及基于统计预测的预留表项空间算法,进行路由查找更新算法的设计㊂搭建测试验证环境,采用M A E -W E S T 和M A E -E A S T 路由表项数据,进行线速查找转发处理性能的分析测试㊂关键词:T 比特路由器;分组T C A M ;统计预测;查找更新;预留表项空间方法中图法分类号:T N 915.05 文献标识号:A 文章编号:1000-7024(2021)02-0343-06d o i :10.16208/j.i s s n 1000-7024.2021.02.007收稿日期:2019-10-21;修订日期:2020-11-02作者简介:刘宗宝(1988),男,山东泰安人,博士,高级工程师,研究方向为网络与计算机体系架构;赵鑫(1987),女,北京人,硕士,工程师,研究方向为计算机网络;张力(1985),男,陕西西安人,硕士,高级工程师,研究方向为网络与计算机体系架构;李之乾(1983),男,河南安阳人,硕士,高级工程师,研究方向为计算机体系架构;张琨(1987),男,山东青岛人,硕士,高级工程师,研究方向为计算机体系架构㊂E -m a i l :J A Y 7575@163.c o mF a s t l o o k u p a n du p d a t i n g f o r t e r a b i t r o u t e r b a s e d o nT C A M g r o u ps L I UZ o n g -b a o ,Z H A OX i n ,Z H A N GL i ,L I Z h i -qi a n ,Z H A N GK u n (I n s t i t u t e 706,S e c o n dA c a d e m y o f C h i n aA e r o s p a c e S c i e n c e a n d I n d u s t r y C o r p o r a t i o n ,B e i j i n g 100854,C h i n a )A b s t r a c t :T r a d i t i o n a l l o o k u p s c h e m e b a s e d o nT C A Mu s u a l l y n e e d s c o m p l e x u p d a t e o p e r a t i o n s d u e t o t h e p r e f i x -l e n g t h o r d e r i n gc o n s t r a i n t ,w h i c h c a n n o tm e e t t h ede m a n dof t e r a b i t r o u t e r .Af a s t l o o k u p a n du p d a t i ng m e th o d f o r t e r a bi t r o u t e rb a s e do n T C A M g r o u p sw a s p r o p o s e d .T h e a r c h i t e c t u r e o f t e r a b i t r o u t e r w a s i n t r o d u c e d ,a n d a l o o k u p a n d u p d a t i n g a r c h i t e c t u r e b a s e d o n T C A M g r o u p sw a s d e s i g n e d .W i t h t h e c h a r a c t e r i s t i c s o f p r e f i x d i s t r i b u t i o n ,a n e n t r y r e s e r v e d a l g o r i t h mb a s e d o n s t a t i s t i c a l p r e -d i c t i o nw a s d e s i g n e d .T e s t e n v i r o n m e n tw a s b u i l t t o v e r i f y p e r f o r m a n c e o f t h e p r o po s e dm e t h o dw i t h r e a l d a t aM A E -W E S Ta n d M A E -E A S T .K e y w o r d s :t e r a b i t r o u t e r ;T C A M g r o u p s ;s t a t i s t i c a l p r e d i c t i o n ;l o o k u p a n d u p d a t i n g ;s p a c e r e s e r v e dm e t h o d 0 引 言信息技术的发展推动核心路由器的线速转发率达到40G b ps 以上[1],路由查找是核心路由器实现高性能线速转发的关键技术㊂目前路由查找算法主要有软件查找算法和硬件查找算法,基于软件的路由查找方法需要多次内存操作才能完成路由查找,无法满足高速接口线速转发的要求㊂基于硬件的路由查找算法大多基于T C A M (t e r n a r y c o n t e n t a d d r e s s a b l em e m o r y)[2-4]技术实现,执行速度快,可以在一个时钟周期内完成路由表项的匹配查询,优先级编码器(p r i o r i t y en c o d e r ,P E )从多个匹配结果中选择最长前缀匹配(l o n ge s t p r ef i x m a t c h ,L P M )作为查找结果,因此T C A M 特别适合于高性能路由器,实现快速路由查找和转发㊂但是,传统T C A M 的更新性能较差[5]:路由表是动态变化的并且规模大幅增长,T C A M 中路由表项按照前缀长度降序排列,为保证路由表项的优先级,对路由表项的插入㊁删除等更新操作会造成大量的内存移动[6],最坏情况下的更新算法复杂度为O (N )(N 为T C A M 中的路由表项数量),导致路由查找性能大幅下降,无法满足高性能路由器线速查找转发的要求㊂针对T C A M 路由表项的更新算法国内外学者进行了大量的研究,提出了许多性能优化的算法,参见文献[7-9]等㊂P L O -O P T 更新算法是对选择移动更新算法的改进,即空闲前缀表项从T C A M 的底部移动到了T C A M 的中间,计算机工程与设计2021年因此一次更新操作最多需要L/2次(L是路由前缀的长度)路由表项移动㊂C A O_O P T更新算法把路由表转化为t r i e 树,只对同一条链路(从根节点到叶子节点)上的规则排序[10],一次更新操作最多需要D/2次(D是相互重叠的前缀的最大个数)路由表项移动㊂目前大部分基于T C A M 的路由表项更新算法都要求前缀表项按照前缀长度排序,时间复杂度高,影响了路由查找更新性能㊂为满足高性能路由器数据交换对快速路由查找功能的需求,本文提出了一种基于分组T C A M的T比特高性能路由器查找更新方法㊂1T比特高性能路由器系统架构T比特高性能路由器的系统架构为分布转发㊁集中控制,如图1所示,主要由热备份主控板㊁交换网板和多个接口业务板组成,各板之间通过高速背板总线互联㊂主控板是T比特高性能路由器的核心,完成以太网数据包处理㊁网络管理等功能,并为其它各板提供高精度的时钟源㊂交换网板具有高性能交换芯片,完成T比特级的高速数据包转发㊂接口业务板具有单独的控制系统,支持I P v4㊁I P v6㊁M P L S V P N㊁Q o s/H-Q o s㊁G R E㊁组播V P N等全业务功能㊂图1 T比特高性能路由器系统架构2基于分组T C A M的路由查找更新2.1路由查找更新架构本文提出的基于分组T C A M的路由查找更新架构如图2(a)所示,T C A M被分成几组T C A M1~T C A M m a x,每组内各T C A M表项的前缀互不相交,即T C A M i,jɣT C A M i,k=Ф,因此T C A M i(iɪ{1,m a x})是互不相交路由表项的集合,T C A M i中最多只有一个匹配前缀㊂m a x为路由表项前缀的最大长度,根据网络环境的不同可动态变化㊂由于在执行某项前缀的插入㊁删除等更新操作时,不需要对其它前缀进行操作,因此相比于传统T C A M,本文提出的路由查找更新架构的操作执行速度更快,算法复杂度低,高性能路由器的查找转发效率更高㊂本文提出的架构中还有一个T C A M e x为传统T C A M结构,用于存储无法放在T C A M i中的路由表项㊂选择逻辑基于最长前缀匹配算法(L P M)实现㊂图2基于分组T C A M的高性能路由器查找更新架构T C A M i(iɪ{1,m a x})和T C A M e x采用基于统计预测的预留表项空间设计,如图2(b)所示,灰色部分表示预㊃443㊃第42卷第2期刘宗宝,赵鑫,等:基于分组T C A M的T比特高性能路由器快速查找更新技术留的空间,预留空间大小由前缀的概率密度函数确定,对于T C A M i,前缀长度为m的表项预留空间为n i m= N T C A Mˑp d f m/(m a x+1),前缀为k的表项预留空间为n i k=N T C A Mˑp d f k/(m a x+1),详细计算过程在2.2.2节㊂通过基于统计预测的预留表项空间设计,有效减少了路由表项前缀的插入操作引起的其它表项的移动,路由表项更新效率大幅提升㊂2.2路由查找更新算法2.2.1搜索算法搜索算法基于最长前缀匹配(L M P)搜索技术,具体实现过程为:对于T C A M1~T C A M m a x,每个T C A M i独立地并行执行前缀匹配过程m a t c h(T C A M i,i p_a d d r),其中i p_a d d r为目的I P地址㊂由于T C A M i中的前缀互不相交,因此每个T C A M i中最多搜索到一个与i p_a d d r匹配的前缀;然后从多个匹配的前缀中选择e n t r y[k].l e n g t h 值最大的前缀,相应的e n t r y[k]即为i p_a d d r的路由查找结果,并返回路由转发表中相应的输出端口号(e n t r y [k].o u t p o r t)㊂如果所有T C A M i中没有匹配的前缀,前缀长度e n t r y[i].l e n g t h值为0,根据路由转发表中默认的表项信息进行转发㊂搜索算法的步骤如下:S e a r c h(i p_a d d r)(1)f o r i=1t o e x(2)e n t r y[i]=m a t c h(T C A M i,i p_a d d r)(3)e n d f o r(4)对于满足上述条件的路由表项e n t r y[i](iɪ{1,e x}),根据L M P原则,寻找kɪi,使得e n t r y[k].l e n g t h 值最大(5)r e t u r n e n t r y[k].o u t p o r t2.2.2基于统计预测的预留表项空间算法对于骨干网络,路由表项前缀的统计特性变化较小㊂基于统计预测的预留表项空间算法根据高性能路由器的历史表项数据,计算路由表项前缀的统计分布特性,进行预留表项空间的预测和分配,当有新的表项插入时,直接添加在预留空闲位置㊂算法步骤如下:(1)根据历史表项数据,计算长度为i的前缀的统计概率密度p d f i=N i N,其中N i是历史表项中长度为i的前缀数量,N是前缀的总数量;(2)计算长度为i的前缀的总预留空间大小n i= N T C A Mˑp d f i;(3)T C A M i中为长度为i的前缀预留大小为n i= N T C A Mˑp d f i/m a x+1的空间,路由表项动态更新时,新的路由表项直接插入预留空间内㊂2.2.3插入算法路由转发表中插入一个新的路由表项(前缀为p)的过程如下I n s e r t(p)函数所示㊂首先,从T C A M i~T C A M m a x中寻找出前缀p可以插入的所有T C A M i(iɪ{1,m a x}),要求前缀p与T C A M i中的任意前缀互不相交;如果存在满足上述条件的T C A M i,并且T C A M i中至少有一个空闲表项位置,标志变量a v a i l a b l e[i]值为t r u e;否则,前缀p的预留空间被占用,a v a i l a b l e[i]值为f a l s e㊂如果a v a i l a b l e[i]值为t r u e并且存在多个T C A-M i,插入函数i n s e r t_t o_t c a m()从可用的T C A M i中随机选择一个插入位置;如果a v a i l a b l e[i]值为f a l s e,则T C A M0~T C A M6中不存在可用的空闲表项位置,前缀p 插入传统T C A M e x㊂i n s e r t_t o_t c a m()函数对传统T C A M e x的插入操作需要满足传统T C A M的顺序约束,插入过程需要进行多次的内存移动;而T C A M1~T C A M m a x中的路由表项无顺序约束,因此对T C A M1~T C A M m a x的插入操作可在任意空闲位置执行㊂I n s e r t(p)(1)f o r i=1t om a x(2)I n i t i a l i z e a v a i l a b l e[i]=f a l s e(3)I f(对于任意的前缀e pɪT C A M i,p和e p是不相交的,并且T C A M i中有空余位置)(4)a v a i l a b l e[i]=t r u e(5)e n d i f(6)e n d f o r(7)i f(a v a i l a b l e[i]=f a l s e,对于任意的0ɤiɤm a x)(8)i n s e r t_t o_t c a m(p,T C A M e x)(9)e l s e(10)从a v a i l a b l e[i]中任意选取k,i n s e r t_t o_t c a m(p, T C A M k)(11)e n d i f2.2.4删除算法从转发表中删除前缀p的过程如下D e l e t e(p)函数所示㊂首先,需要寻找哪个T C A M含有前缀p(假设为k);然后,前缀可从T C A M k中删除㊂对于T C A M1~T C A M-m a x,删除过程不需要任何内存移动㊂对于传统T C A M,内存移动次数因更新算法的不同而有差异;如果相邻位置是空闲的,每次删除过程需要至少一次前缀移动操作㊂D e l e t e(p)(1)寻找k,使得pɪT C A M k(2)d e l e t e_f r o m(p,T C A M k)3实验验证与分析为验证本文提出算法的性能,搭建了测试验证环境,如图3所示,由T比特高性能路由器㊁S p i r e n t网络测试仪㊁以太网交换机㊁便携式P C机等组成㊂其中网络性能测试软件使用S p i r e n t公司的T e s t C e n t e rS T P-N11U,版本为v4.33.0086㊂㊃543㊃计算机工程与设计2021年图3 测试验证环境本文采用I P M A 的M A E -W E S T 和M A E -E A S T [11,12]路由表作为仿真数据来源,见表1㊂表1 仿真数据统计前缀数量插入删除M A E -W E S T 35217341141103M A E -E A S T43344342049140图4是数据1和数据2的前缀数量和内存移动次数关系,可以看出,96%的前缀只需要1次内存移动,仅有不到4%的前缀需要2次以上的内存移动㊂图4 前缀数量和内存移动次数关系分别采用本文提出的算法以及经典的P L O _O P T 算法㊁C A O _O P T 算法,计算M A E -W E S T 和M A E -E A S T路由表每次更新操作(插入㊁删除)的平均内存移动次数,结果见表2和表3㊂从对比结果可以看出,由于本文算法的路由表项没有顺序约束和优先级编码器,并且进行了预留表项空间的设计,对于插入和删除操作,本文算法的平均内存移动次数远小于P L O _O P T 算法和C A O _O P T 算法㊂由于传统T C A M e x 的存在,本文算法的插入操作和删除操作所需的平均内存移动次数不相同㊂需要指出,该算法以计算概率密度函数为代价,通过减少内存移动次数降低了路由表项更新的时间复杂度,但相比于频繁的内存移动操作,概率密度函数的计算复杂度较小㊂表2 不同算法每次更新操作的平均内存移动次数(M A E -W E S T )分组T C A M P L O _O P TC A O _O P T 插入删除0.210.163.561.05表3 不同算法每次更新操作的平均内存移动次数(M A E -E A S T )分组T C A M P L O _O P TC A O _O P T 插入删除0.190.164.11.02对采用本文提出的算法的T 比特高性能路由器的转发性能(吞吐量㊁时延)进行测试,测试中选用的数据包长分别为64㊁128㊁256㊁512㊁1024㊁1280㊁1518,测试时间为30s ,端口流量负载为100%,网络的转发方式选择F u l l m e s h e d 全双工对发㊂运行S pi r e n t 公司的T e s t C e n t e r R F 2544测试集,测试界面如图5所示㊂测试的T 比特高性能路由器的吞吐量及时延分别如图6㊁图7所示㊂可以看出,在以上7种数据包大小时,路由器的测试吞吐量与理论最大吞吐量吻合,包大小为1518b y t e s 时可达最大80G b ps 的线速转发,报文的丢包率为0㊂路由器的转发时延最大为6.12μs (包大小1518b yt e s )㊂测试结果表明,本文提出的算法可有效提高T 比特高性能路由器的线速查找转发性能㊂4 结束语针对传统T C A M 查找更新方法时间复杂度高㊁效率低的问题,以及T 比特路由器对高性能查找转发的需求,本文提出了一种基于分组T C A M 的路由查找更新架构,T C A M 被分成几组互不相交的路由表项的集合,路由表项不需要按优先级进行排序;提出了基于统计预测的预留表项空间算法,预留空间大小由前缀的概率密度函数确定,根据历史表项数据分配相应的空间大小㊂搭建了测试验证环境,测试结果表明,基于本文设计的T C A M 的内㊃643㊃第42卷 第2期 刘宗宝,赵鑫,等:基于分组T C A M 的T 比特高性能路由器快速查找更新技术图5 T e s t C e n t e r测试界面图6包转发吞吐量测试比较图7 系统转发时延比较存移动次数有效降低,T 比特高性能路由器可达最大80G b p s 的线速转发,转发时延最大为6.12μs ㊂因此,本文提出的基于分组T C A M 的T 比特高性能路由器查找更新技术,可有效提高T 比特路由器的查找转发性能,支撑未来网络发展的需要㊂由于T 比特路由器的动态变化特性,基于时变概率密度函数的预留表项空间算法是下一步的研究方向㊂参考文献:[1]Z h a n g B i n ,Q i n D o n g h o n g,D i a o X i n c h u n ,e ta l .E f f i c i e n t s e a r c h i n g w i t h aT C A M -b a s e d p a r a l l e l a r c h i t e c t u r e [J ].J o u r -n a l o f I n t e r n e tT e c h n o l o g y,2018,19(7):2215-2226.[2]M a W a n l i ,Z h a n g J i a n w e i ,T e n g F e i .A h yb r i dsc h e m ef o r r o u t i n g l o o k u p w i t h f a s t u pd a te sb a s e do nT C A M s [C ]//2n d I E E EI n t e r n a t i o n a lC o nf e r e n c eo n C o m pu t e ra n dC o m m u n i c a -t i o n s .I E E E ,2016:1985-1991.[3]W A N G H u i ,L I X i a o g e ,Z H A N G B i n ,e ta l .S u r v e y on T C A M -b a s e d p a r a l l e l I Pr o u t e l o o k u p s c h e m e [J ].C o m p u t e r A p pl i c a t i o n s a n dS o f t w a r e ,2016,33(7):139-144(i nC h i -n e s e ).[王辉,李晓歌,张宾,等.基于T C A M 的并行路由查找方案综述[J ].计算机应用与软件,2016,33(7):139-144.][4]S y e dF ,U l l a hZ ,J a i s w a l M K .F a s tc o n t e n tu p d a t i n g a l go -r i t h mf o r a n S R A M -b a s e dT C A Mo n F P G A [J ].I E E EE m b e d -d e d S ys t e m s L e t t e r s ,2017,10(3):73-76.[5]Z H A N G W e n y u a n .D e s i g n a n d i m p l e m e n t a t i o n o f T C A Mu pd a -t i n g a l g o r i t h m [D ].Be i j i n g :U n i v e r s i t y o fC h i n e s eA c a d e m y of S c i e n c e s ,2016:1-9(i nC h i n e s e ).[张文远.T C A M 更新算法的设计与实现[D ].北京:中国科学院大学,2016:1-9.][6]M A W a n l i .R e s e a r c ha n di m p l e m e n t a t i o no fe f f i c i e n tr o u t i n gs c h e m eb a s e do n T C A M [D ].D a l i a n :D a l i a n U n i v e r s i t y of T e c h n o l og y,2017:1-24(i n C h i n e s e ).[马万里.基于㊃743㊃计算机工程与设计2021年T C A M的高效路由方案研究与实现[D].大连:大连理工大学,2017:1-24.][7]A y y i l d i zN,S c h m i d tE G,G u r a n H C.S-D I R E C T:S c a l a b l ea n dd y n a m i c a l l y r e c o n f i g u r ab l e T C A M a rc h i t e c t u r ef o rh i g h-s p e ed I P l o o k u p[J].T h eC o m p u te r J o u r n a l,2015,58(6): 1443-1455.[8]C h a n g D Y,W a n g P C.T C A M-b a s e dm u l t i-m a t c h p a c k e t c l a s s i-f i c a t i o n u s i ng m u l t i d i m e n s i o n a l r u l e l a y e r i n g[J].I E E E/A C M T r a n s a c t i o n s o nN e t w o r k i n g,2015,24(2):1125-1138.[9]V a g i o n a sC,M a n i o t i sP,P i t r i sS,e ta l.I n t e g r a t e do p t i c a lc o n t e n t ad d re s s a b l em e m o r i e s(C A M)a n do p t i c a l r a n d o ma c-c e s sm e m o r i e s(R A M)f o r u l t r a-f a s t a d d r e s s l o o k-u p o p e r a t i o n s[J].A p p l i e d S c i e n c e s,2017,7(7):1-18.[10]H s uP C,S u nY H.M u l t i-i n h e r i t e d s e a r c h t r e e f o r d y n a m i c I P r o u t e r-t a b l e s[J].I E E E T r a n s a c t i o n so nC o m p u t e r s,2017, 66(1):114-126.[11]M e r i t N e t w o r k s,I n c.T h e I P M A(i n t e r n e t p e r f o r m a n c em e a s u r e m e n t a n da n a l y s i s)p r o j e c t[E B/O L].[2020-01-30].w w w.m e r i t.e d u/i p m a.[12]X UZ h o u b o,H U K u i,C H A N G L i a n g,e t a l.R o u t i n g l o o-k u p a l g o r i t h mb a s e d o n a l g e b r a i c d e c i s i o nd i a g r a m[J].C o m-p u t e r E n g i n e e r i n g,2017,34(3):99-104(i nC h i n e s e).[徐周波,胡魁,常亮,等.基于代数决策图的路由查找算法[J].计算机工程,2017,34(3):99-104.]㊃843㊃。