本发明专利技术实施例提供一种基于TCAM连续数值匹配方法和装置,该方法包括:根据分界点数值将连续数值区域划分为三个数值段,在该三个数值段中至少有一个数值段的两个端点数值符合预设三态编码规则,在端点数值不符合预设三态编码规则的数值段内继续确定分界点数值进行数据分段;对于符合预设三态编码规则的两个端点数值,将该两个端点数值之间的数值段中数值的二进制编码的宽度比特分别分成多个比特段,对每个比特段进行三态编码,生成该数值段的三态内容寻址内存器记录;对待匹配数值进行与数据段相同形式的三态编码,生成待匹配数值的三态内容寻址内存器记录,将待匹配数值的三态内容寻址内存器记录和数值段的三态内容寻址内存器记录进行匹配。
【技术实现步骤摘要】
本专利技术设及数据包处理
,特别设及一种基于TCAM连续数值匹配方法和 装置。
技术介绍
高速数据包分类算法,在很多的网络应用领域中,变得越来越重要,例如,网络安 全应用、QoS服务过滤和网络负载均衡应用等。为了进行高速包分类,网络设备通常采用分 类数据库,其中包含多条A化(Access Control List,访问控制列表),每一条A化可能由多 条用于输入或者输出数据流的规则组成。 A化规则的数目在逐渐增多,可能要求上百万的规则;对A化规则的捜索速度也要 求越来越高,要求达到每秒上百万次的捜索能力。为满足该些要求,有很多的基于RAM的高 速数据包分类算法,例如,RFC算法、Hyper化ts算法等。然而,对于各种高速数据包分类算 法来说,毫无疑问地W基于TCAM的高速数据包分类算法的捜索速度最快。CAM的英文全称为ContentAcMress油leMemo巧,即内容寻址内存。与普通的 SRAM、DDR等内存不同;普通内存通过输入地址得到数据;而CAM相反,通过输入数据得到数 据所在的地址。TCAM(即TernaryCAM)为S态CAM,不仅可W匹配二进制数"0"和"1",还 可W通过掩码匹配任意值,也称为可匹配"X"。CAM的数据宽度通常可配置,如9字节、18字 节、36字节或72字节等。 高速数据包的分类过程中需要对连续数值规则进行匹配,连续数值规则是指对 于某个匹配的域指定一个连续数值区域,例如W太网数据包的TCP端口连续数值为80~ 8000,然而使用TCAM直接进行匹配连续数值规则时,一条连续数值规则往往需要多条TCAM 表项才能存储,特别是当一条连续数值规则中有多个连续数值区域时,需要更多的TCAM表 项才能存储,使得TCAM存储的连续数值规则条数有限,使得降低了TCAM的利用率。
技术实现思路
本专利技术实施例提供了一种基于TCAM连续数值匹配方法,W提高内容寻址内存器 的利用率。该方法包括:在连续数值区域内确定两个分界点数值,根据分界点数值将所述 连续数值区域划分为=个数值段,在该=个数值段中至少有一个数值段的两个端点数值符 合预设=态编码规则,在端点数值不符合预设=态编码规则的数值段内继续确定分界点数 值进行数据分段,直到每个数值段的端点数值都符合预设=态编码规则,形成多个数值段, 其中,所述预设=态编码规则使得对所述连续数值区域进行=态编码的结果与对所述连续 数值区域划分的多个数值段分别进行=态编码后相加的结果等效;对于符合所述预设=态 编码规则的两个端点数值,则将该两个端点数值之间的数值段中数值的二进制编码的宽度 比特分别分成多个比特段,分别对每个比特段的二进制编码对应的十进制数据进行=态编 码,生成该两个端点数值之间的数值段的=态内容寻址内存器记录,并将形成的=态内容 寻址内存器记录存入S态内容寻址内存器中;将待匹配数值的二进制编码的宽度比特划分 为所述多个比特段,对每个比特段的二进制编码对应的十进制数据进行=态编码,生成所 述待匹配数值的=态内容寻址内存器记录,将所述待匹配数值的=态内容寻址内存器记录 输入到所述=态内容寻址内存器中和数值段的=态内容寻址内存器记录进行匹配。在一个实施例中,所述预设=态编码规则是将两个端点数值的二进制编码的宽度 比特分别分成所述多个比特段,对每个比特段的二进制编码对应的十进制数值进行=态编 码,所述两个端点数值中一个端点数值的第i个比特段的=态编码与另一个端点数值的第 i个比特段的=态编码不相同,且第i个比特段之前的比特段的=态编码对应相同,i是指 一个比特段在多个比特段中的序数,第i个比特段之前是指由i至序数减小的方向。[000引在一个实施例中,在连续数值区域内确定两个分界点数值,根据分界点数值将所 述连续数值区域划分为=个数值段,包括:将所述连续数值区域的两个端点数值的二进制 编码的宽度比特分别分成所述多个比特段,分别对每个比特段的二进制编码对应的十进制 数据进行=态编码;按照比特位由高至低的顺序,对两个端点数值的多个比特段中序数对 应的比特段的=态编码进行比较,找到=态编码不相同的第i个比特段,且第i个比特段 之前的比特段的=态编码对应相同;对于两个端点数值中较小的端点数值,将第i个比特 段对应的十进制数值加1,对加1后的十进制数值进行=态编码,将第i个比特段之后的比 特段的=态编码均用掩码表示,将第i个比特段的=态编码和第i个比特段之前比特段的 =态编码还原为二进制编码,将第i个比特段之后比特段的=态编码还原的二进制编码的 0比特,将多个比特段的二进制编码相加得到一个二进制编码,确定该二进制编码对应的十 进制数值为两个分界点数值中较小的分界点数值;对于两个端点数值中较大的端点数值, 将第i个比特段对应的十进制数值减1,对减1后的十进制数值进行=态编码,将第i个比 特段之后的比特段的=态编码均用掩码表示,将第i个比特段的=态编码和第i个比特段 之前比特段的=态编码还原为二进制编码,将第i个比特段之后比特段的=态编码还原的 二进制编码的0比特,将多个比特段的二进制编码相加得到一个二进制编码,确定该二进 制编码对应的十进制数值为两个分界点数值中较大的分界点数值;根据确定的两个分界点 数值将所述连续数值区域划分为=个数值段,其中,所述两个分界点数值符合预设=态编 码规则,在所述=个数值段中允许对两个分界点数值之间形成的数据段进行=态编码,形 成内容寻址内存器记录。 在一个实施例中,每个比特段的比特位数小于等于4。 本专利技术实施例还提供了一种基于TCAM连续数值匹配装置,W提高内容寻址内存 器的利用率。该装置包括;数值划分模块,用于在连续数值区域内确定两个分界点数值,根 据分界点数值将所述连续数值区域划分为=个数值段,在该=个数值段中至少有一个数值 段的两个端点数值符合预设=态编码规则,在端点数值不符合预设=态编码规则的数值段 内继续确定分界点数值进行数据分段,直到每个数值段的端点数值都符合预设=态编码规 贝1J,形成多个数值段,其中,所述预设=态编码规则使得对所述连续数值区域进行=态编码 的结果与对所述连续数值区域划分的多个数值段分别进行=态编码后相加的结果等效;= 态编码模块,用于对于符合所述预设S态编码规则的两个端点数值,则将该两个端点数值 之间的数值段中数值的二进制编码的宽度比特分别分成多个比特段,分别对每个比特段的 二进制编码对应的十进制数据进行=态编码,生成该两个端点数值之间的数值段的=态内 容寻址内存器记录,并将形成的=态内容寻址内存器记录存入=态内容寻址内存器中;匹 配模块,用于将待匹配数值的二进制编码的宽度比特划分为所述多个比特段,对每个比特 段的二进制编码对应的十进制数据进行=态编码,生成所述待匹配数值的=态内容寻址内 存器记录,将所述待匹配数值的=态内容寻址内存器记录输入到所述=态内容寻址内存器 中和数值段的S态内容寻址内存器记录进行匹配。 在一个实施例中,所述预设=态编码规则是将两个端点数值的二进制编码的宽度 比特分别分成所述多个比特段,对每个比特段的二进制编码对应的十进制数值进行=态编 码,所述两个端点数值中一个端点数值的第i个比特段的=态编码与另一个端点数值的第 i个比特段的=态编码不相同,且本文档来自技高网...
【技术保护点】
一种基于TCAM连续数值匹配方法,其特征在于,包括:在连续数值区域内确定两个分界点数值,根据分界点数值将所述连续数值区域划分为三个数值段,在该三个数值段中至少有一个数值段的两个端点数值符合预设三态编码规则,在端点数值不符合预设三态编码规则的数值段内继续确定分界点数值进行数据分段,直到每个数值段的端点数值都符合预设三态编码规则,形成多个数值段,其中,所述预设三态编码规则使得对所述连续数值区域进行三态编码的结果与对所述连续数值区域划分的多个数值段分别进行三态编码后相加的结果等效;对于符合所述预设三态编码规则的两个端点数值,则将该两个端点数值之间的数值段中数值的二进制编码的宽度比特分别分成多个比特段,分别对每个比特段的二进制编码对应的十进制数据进行三态编码,生成该两个端点数值之间的数值段的三态内容寻址内存器记录,并将形成的三态内容寻址内存器记录存入三态内容寻址内存器TCAM中;将待匹配数值的二进制编码的宽度比特划分为所述多个比特段,对每个比特段的二进制编码对应的十进制数据进行三态编码,生成所述待匹配数值的三态内容寻址内存器记录,将所述待匹配数值的三态内容寻址内存器记录输入到所述TCAM中和数值段的三态内容寻址内存器记录进行匹配。...
【技术特征摘要】
【专利技术属性】
技术研发人员:彭义刚,周志雄,邹昕,王锟,李锐光,汪锐,孙昊良,王子厚,李晓倩,张露晨,
申请(专利权)人:国家计算机网络与信息安全管理中心,北京恒光信息技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。