一种基于tcam的包匹配方法

文档序号:7821020阅读:914来源:国知局
一种基于tcam的包匹配方法
【专利摘要】本发明提供一种基于TCAM的包匹配方法,该方法包括:根据包转发速率r和TCAM芯片的时钟周期t计算空间压缩等级n;该空间压缩等级n为原TCAM芯片中可被压缩为1条表项的原表项数量;根据所述压缩等级n选择合适类型的TCAM芯片;根据压缩等级n,对原TCAM芯片进行压缩;当获取到匹配关键字时,将该匹配关键字与压缩后的TCAM芯片的规则库进行对比,执行n个时钟周期的匹配操作,得到匹配结果。该方案根据网络设备的包转发速率要求动态选择TCAM条目压缩等级,确保了在高速良好的用户体验的前提下,提高了TCAM芯片的空间利用率,并降低了能耗;且实现了TCAM芯片的动态选择,降低TCAM芯片的选购时间和费用。
【专利说明】-种基于TCAM的包匹配方法

【技术领域】
[0001] 本发明涉及互联网数据包分类【技术领域】,具体涉及一种基于TCAM的包匹配方法。

【背景技术】
[0002] 随着互联网越来越深入人们的日常生活,网络流量不断增大,各种网络应用的数 量也飞速增长,同时,随之而来的新型网络恶意攻击也不断出现,从而导致了越来越多的网 络核心路由设备出现网络拥塞现象,严重降低了网络核心路由设备的转发性能。鉴于此, 为识别网络中的流量类型以提供更优的服务质量和网络安全水平,数据包分类技术应运而 生,且已成为现有互联网架构的核心组成部分。其中,基于三态内容寻址存储器(TCAM)的 高速数据包分类机制因具有极高的包匹配速率,已成为了包分类技术的事实工业标准。
[0003]TCAM芯片规则库中的每条规则表达为严格的三态(0,1和*)格式,S卩TCAM中每 一位比特只能取三种值:〇, 1和*(代表无关项)。如果一个字符串与某规则中所有的0和 1位相同,则表明该字符串符合该规则。例如,字符串" 110110"和" 110010"都符合规则 "11**10"。TCAM通过并行地将搜索关键词与规则库中的所有规则进行对比,并在固定时钟 周期内返回位于TCAM较低地址位置的匹配结果,以实现高速的匹配操作。为降低能耗,现 有TCAM芯片大多支持全局掩码寄存器(GMR)和局部掩码寄存器(BMR)。如图1所示,GMR 决定了在包规则匹配中的参与匹配操作的纵向比特位置范围(如GMR0和GMR2),而BMR 决定了在匹配操作中应被启用或禁用的TCAM内存块(例如BlockO)。GMR和BMR协同操作 可实现降低TCAM芯片能耗的功能。
[0004]TCAM芯片规则库三态表述的固有特征,决定了在范围字段的匹配过程中将不可避 免产生范围扩张问题。在典型的IPv4规则判定中,协议号和源IP地址、目的IP地址均可 表述为前缀格式,即所有的无关项*均分布于三态字符串的末尾位置(例如11010***),这 使得数据包中上述三个字段信息均可直接存储于TCAM中作为一条表项。然而,数据包中的 源端口号和目的端口号信息在规则判定中表征为实数范围,例如,[1,65535]的范围字段 需要30个前缀格式的三态字符串来表征,而表征源端口号和目的端口号均属于[1,65535] 的规则判定则需要多达30X30 = 900个TCAM表项,这显然导致了严重的范围扩张问题。同 时,范围扩张引起的表项剧增也加大了TCAM芯片的功耗,影响TCAM芯片的实际应用效果。
[0005] 因此,如何提高TCAM芯片的空间利用率,以减轻范围扩张带来的负面影响,对基 于TCAM的数据包分类技术的发展具有至关重要的推动作用。
[0006] 为解决上述问题,现有技术提出了一种C-TCAM(Compressed-TCAM:压缩的TCAM): 采用二级压缩机制,将原先占据两条TCAM表项的每两个范围字段(如传输层端口号字段) 压缩存储到一条TCAM表项中,以提高TCAM芯片的空间利用率。
[0007] 但是,C-TCAM不具备TCAM芯片类型选择功能,不能根据网络设备转发速率的不同 需求而动态适配TCAM芯片类型及空间压缩等级,导致芯片空间利用率不高,且能耗较高。 例如,对于IPv4分组分类而言,若TCAM芯片位宽为144比特时,因为非范围字段包括源地 址、目的地址和协议字段总长度共72比特,范围字段包括源端口和目的端口总长度共32比 特,因此,采用C-TCAM后,每条TCAM表项的剩余比特宽度为8比特(144-72-32X2 = 8); 然而,若采用576比特位宽的TCAM芯片时,C-TCAM方法导致每条TCAM表项的剩余比特宽 度多达440比特,单条TCAM表项空间利用率仅为23. 6%。产生这种想象的原因是:C-TCAM 算法不具备动态TCAM芯片类型选择功能,只能固定地采用范围字段二级压缩机制,而不能 根据网络设备转发速率需求自适应地调整范围字段压缩等级。


【发明内容】

[0008] 本发明的目的是提出一种基于TCAM的包匹配方法,基于网络设备转发速率来完 成TCAM芯片类型动态选择及范围字段压缩等级智能核定,在保证网络设备正常转发速率 的基础上,提高TCAM芯片的空间利用率。
[0009]为达上述目的,本发明提供了一种基于TCAM的包匹配方法,包括:
[0010] 根据包转发速率r和TCAM芯片的时钟周期t计算空间压缩等级n;该空间压缩等 级n为原TCAM芯片中可被压缩为1条表项的原表项数量;
[0011] 根据所述压缩等级n选择合适类型的TCAM芯片;
[0012] 根据压缩等级n,对原TCAM芯片进行压缩;所述压缩包括:将原TCAM芯片中占据n 条表项中的n对源端口号和目的端口号压缩为1条表项,按照表项位置自上而下的顺序依 次执行;
[0013] 当获取到匹配关键字时,将该匹配关键字与压缩后的TCAM芯片的规则库进行对 t匕,执行n个时钟周期的匹配操作,得到匹配结果。
[0014] 其中,所述根据包转发速率r和TCAM芯片的时钟周期t计算空间压缩等级n包 括:
[0015] 根据以下公式计算包转发速率:定义网络最小包大小为xbit,如果某网络设备接 口带宽为ybit/s,则TCAM-PC的包转发速率需要达到的数值可计算如下:
[0016]r=y/x;
[0017] 其中,x为网络最小包大小,单位为bit;y为网络设备接口带宽,单位为bit/s;
[0018] 计算所述网络最小包的处理时延:
[0019]d= 1/r
[0020] 根据以下公式计算TCAM芯片压缩等级n:
[0021] ?中/,1 艮口:
[0022]

【权利要求】
1. 一种基于TCAM的包匹配方法,其特征在于,包括: 根据包转发速率r和TCAM芯片的时钟周期t计算空间压缩等级n;该空间压缩等级n为原TCAM芯片中可被压缩为1条表项的原表项数量; 根据所述压缩等级n选择合适类型的TCAM芯片; 根据压缩等级n,对原TCAM芯片进行压缩;所述压缩包括:将原TCAM芯片中占据n条 表项中的n对源端口号和目的端口号压缩为1条表项,按照表项位置自上而下的顺序依次 执行; 当获取到匹配关键字时,将该匹配关键字与压缩后的TCAM芯片的规则库进行对比,执 行n个时钟周期的匹配操作,得到匹配结果。
2. 根据权利要求1所述的方法,其特征在于,所述根据包转发速率1和TCAM芯片的时 钟周期t计算空间压缩等级n包括: 根据以下公式计算包转发速率需要达到的数值:r=y/x; 其中,x为网络最小包的大小,单位为bit;y为网络设备接口带宽,单位为bit/s; 计算所述网络最小包的处理时延: d= 1/r 根据以下公式计算TCAM芯片压缩等级n: ?中々1;即:
其中,t为TCAM芯片的时钟周期,单位为秒。
3. 根据权利要求2所述的方法,其特征在于,如TCAM芯片的最大位宽为M,则,则为获 得尽可能大的空间压缩率,n应为:
s为源IP地址的长度、d为目的IP地址的长度、p为协议号的长度、s'为源端口号的 长度、d'为目的端口号的长度。
4. 根据权利要求3所述的方法,其特征在于,所述根据所述压缩等级n选择合适类型的 TCAM芯片,包括: 所述合适类型的TCAM芯片的位宽z取满足如下条件的最小整数值: (s+d+p) + (s' +d')n<z<M,且zGC; 其中,C为TCAM类型的集合,C= {c|cGN}(N= 1,2,3,"-)。
5. 根据权利要求1所述的方法,其特征在于,所述根据压缩等级n,对原TCAM芯片进行 压缩包括: 每条压缩的表项中,高优先级的规则存储于偏左侧的位置,低优先级的规则存储于偏 右侧位置。
6. 根据权利要求1所述的方法,其特征在于,所述将该匹配关键字与压缩后的TCAM芯 片的规则库进行对比,执行n个时钟周期的匹配操作,得到匹配结果,包括: 在第i个时钟周期,全局掩码寄存器GMR激活GMRO+GMRi,iG[l,n],禁用其它所有比 特位以降低能耗; 若发现一条匹配规则存储于TCAM内存块Blockm,则在下一个时钟周期内,激活编号 小于或等于m的所有地址块,禁用其它的地址块,以进一步降低能耗; 当所有n个时钟周期的匹配操作全部完成时,从匹配到的规则中选取地址最低的规则 作为最终的匹配结果。
【文档编号】H04L12/741GK104410573SQ201410698719
【公开日】2015年3月11日 申请日期:2014年11月26日 优先权日:2014年11月26日
【发明者】王凯, 吴恒奎 申请人:中国电子科技集团公司第四十一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1