一种多域流规则匹配的实现方法技术

技术编号:11209872 阅读:100 留言:0更新日期:2015-03-26 19:15
本发明专利技术公开了一种多域流规则匹配的实现方法,涉及高速流分类技术领域。本发明专利技术首先根据IP报文数据流的五元组定义对每个元组都建立一个规则表,然后建立一个哈希快速流表,将匹配规则的所有信息添加到规则表中;再进行IP报文数据流匹配,如果找到,则执行相应的动作,否则查找规则表,进行掩码匹配查询。本发明专利技术通过改进查询速度快的前缀扩展Trie树,牺牲部分内存空间,采用数据压缩和哈希表相结合的方式,在保证查询速度的前提下,又不会因为大容量的规则库而发生内存爆炸。

【技术实现步骤摘要】
一种多域流规则匹配的实现方法
本专利技术涉及高速流分类技术、多域掩码匹配技术和多核处理器技术,特别是涉及一种支持多域流规则匹配的实现方法。
技术介绍
随着网络带宽的增加以及更多多元化的网络业务分类,基于流的数据包匹配有着更加广泛的用途,许多网络关键技术,例如虚拟专用网(VPN)、基于安全存取列表控制的防火墙、QoS、网络入侵检测监控、网络地址转换、拥塞控制、资源预留、负载平衡、收集统计数据等都是以数据包分类匹配为基础的。万兆网络已经成为了核心网络,为使网络性能得到全面提高,对作为网络基础算法的数据包分类匹配算法的要求越来越高。而传统的包分类匹配算法已无法满足日益增长的网络流量业务需求,发展万兆网络数据流分类算法的良好解决方案越来越受到人们的重视。所以高效率、低冲突率和较小的时间/空间复杂度的数据流分类匹配算法成为应用于万兆网络管理、流量测量技术的一项非常关键的技术。数据流分类匹配的问题可以视为在多位空间中一个点的定位问题:在k维空间中有N个d维的“长方体”(规则),问题是对于一个给定的点(数据流)如何找出该点位于哪个长方体中。现阶段研究的各种算法具有比较明显的优缺点,算法一旦扩展到大规模甚至超大规模的规则库,并且多域任意掩码匹配,很多分类算法因为方法复杂,规则限制较多,计算繁复,所以导致空间复杂度或者时间复杂度极高,甚至会发生内存爆炸,因此需求一种既要低的时间复杂度又要控制算法的存储占用问题,避免两方面的冲突,采用合理的算法,结合硬件设备优势,从而找到时间复杂度和空间复杂度的一个最佳结合点。
技术实现思路
本专利技术的目的在于提供一种支持多域流规则匹配的实现方法,通过改进查询速度快的前缀扩展Trie树,牺牲部分内存空间,采用数据压缩和哈希表相结合的方式,在保证查询速度的前提下,又不会因为大容量的规则库而发生内存爆炸。本专利技术提供的一种多域流规则匹配的实现方法,该方法的步骤如下:第一步,根据IP报文数据流的五元组定义(源/目的IP,源/目的端口,网络协议号),对每个元组都建立一个规则表,共五个规则表。第二步,建立一个哈希快速流表,用于保存最近一段时间里匹配规则的IP报文数据流的五元组信息及该匹配规则的动作信息,用于IP报文数据流的精确快速匹配。第三步,添加或更新一条匹配规则时,根据匹配规则中五元组信息在一种可均衡多表间查找性能的表选择策略下选择五张规则表中的其中一张规则表,将匹配规则的所有信息添加到该规则表中。第四步,在进行IP报文数据流匹配时,先根据IP报文数据流的五元组在哈希快速流表中进行精确查找,如果找到,则执行相应的动作,否则查找规则表,进行掩码匹配查询。第五步,规则表掩码匹配查询时,依次对五个规则表进行掩码匹配查询,根据一定的优先级策略分别找到最佳匹配规则,然后根据相同的策略再在这些最佳匹配规则中找出最终的匹配规则。第六步,在规则表中查询到最终的匹配规则后,将IP报文数据流的五元组信息及该最终的匹配规则的动作信息添加到哈希快速流表中。第七步,哈希快速流表支持老化机制。第八步,删除一条规则时,采用和添加时一样的查找性能均衡策略找到对应的规则表进行删除。第一步中所述的建立的五个规则表,规则表的组织结构与查询算法是一致的,也为实现多核芯片多表并行查找提供算法基础。该规则表结构的具体设计原则包括:(1.1)添加的每条规则只存在于五个规则表中的其中一个。(1.2)规则表分为两部分,第一部分为基于前缀扩展的深度为1并进行数据压缩的Trie树,因为树的深度为1,树可以简化为数组,数组大小根据前缀扩展策略及元组来确定;第二部分是辅助哈希表。(1.3)前缀扩展的策略:对于源/目的IP,将前缀长度为1-24的前缀统一扩展为24,前缀长度为25-32不进行前缀扩展;对于源/目的端口,如果是范围匹配,先将范围转换为前缀,将前缀长度都扩展为16。对于网络协议号,如果是范围匹配,先将范围转换为前缀,将前缀长度都扩展为8。(1.4)由于扩展后存在大量数据冗余,需要进行数据压缩。对于源/目的IP,方法是将扩展后的前缀分割为两部分:前20比特和后4比特,简称20+4,对后4比特代表的前缀(共16个)进行数据压缩后以前20比特的值作为数组的下标添加到数组中。对于源/目的端口类似,分割为12+4,对于网络协议号分割为4+4。(1.5)Trie树中规则对应的表项包括:规则的五元组掩码信息;系统为该规则分配的唯一MAGIC值;数据压缩用的信息。(1.6)辅助哈希表保存对应规则表中规则的动作信息,哈希表的查询键值是该规则对五元组进行掩码后的值与该规则MAGIC值组合后进行CRC32计算后取余。辅助哈希表和基于前缀扩展并进行数据压缩的Trie树的联系是规则的五元组掩码信息和MAGIC值。第二步中所述的建立的哈希快速流表,是为了提高查询速度的一种策略。哈希快速流表的设计依据是流具有时间局部性:在流的第一个数据包到达后较短时间内到达的数据包属于同一流的可能性很大。哈希快速流表的表项保存最近到达的流的五元组信息及匹配到的规则的动作信息。第三步中所述的采用一种可均衡多表间查找性能的表选择策略下选择五张规则表中的其中一张规则表来进行添加,是为了解决在传统单一表的掩码匹配算法应用于多表情况时,对多个匹配结果进行整合时算法的时间复杂度较高的一种方法。策略实施的具体原则包括:A.仅在规则要求匹配的元组中选择对应的规则表。如规则只要求匹配目的IP和目的端口(掩码长度非0),其他元组信息任意(掩码长度为0),则策略只会在目的IP和目的端口对应的规则表中选择其中一个表来进行添加。B.在要求匹配的元组中选择哪个规则表支持以下两种策略:a,随机指定;b,预先设定各元组掩码的权重,根据掩码长度和权重计算后得出最高权值的规则表,将规则添加到该表中。第三步中所述的添加规则的所有信息到规则表中的具体实施过程:(3.1)根据选定的元组(源/目的IP或源/目的端口或网络协议号)必要时进行前缀扩展。(3.2)计算数组下标;计算前缀扩展后的后4比特代表的前缀(共16个)中哪些包含在规则中,将对应的位在数组元素的字段-前缀位图中置1。对于源/目的IP掩码长度大于24时,前缀位图可能出现相同的情况,导致无法区分规则,这里前缀位图的字段存放IP掩码后的后16比特数据。(3.3)保存所有元组的前缀信息到掩码字段中,分配一个随机MAGIC值给该规则并保存到MAGIC字段中。(3.4)将元组掩码后与MAGIC值组合,计算哈希键值,将规则对应的动作信息及解决哈希冲突的比较信息添加到辅助哈希表的哈希桶中。第五步中依次对五个规则表进行掩码匹配查询,并引入优先级策略,是考虑存在没有使用优先级策略的情况下一条流可能匹配多条规则的场景。具体设计原则如下:(5.1)由于5个规则表中的规则没有重复,流进行匹配规则时需要确保不遗漏匹配所有可能的规则,因此需要依次查询5个规则表,如果是多核处理器的环境,算法还可以方便的改为多核并行查找,提高查询实时响应速度。(5.2)引入优先级策略,解决找出最佳规则的问题。优先级策略分为默认优先级和用户配置优先级。默认优先级的策略如下:规则中要求匹配的元组数越多优先级越高,在元组数相同的情况下比较元组的掩码长度,比较顺序为目的IP、源IP,目的端口、源端口、网络协议号。用户配置本文档来自技高网...
一种多域流规则匹配的实现方法

【技术保护点】
一种多域流规则匹配的实现方法,其特征在于:该方法的步骤如下,第一步,根据IP报文数据流的五元组定义,对每个元组都建立一个规则表,共五个规则表;第二步,建立一个哈希快速流表,用于保存最近一段时间里匹配规则的IP报文数据流的五元组信息及该匹配规则的动作信息,用于IP报文数据流的精确快速匹配;第三步,添加或更新一条匹配规则时,根据匹配规则中五元组信息在一种可均衡多表间查找性能的表选择策略下选择五张规则表中的其中一张规则表,将匹配规则的所有信息添加到该规则表中;第四步,在进行IP报文数据流匹配时,先根据IP报文数据流的五元组在哈希快速流表中进行精确查找,如果找到,则执行相应的动作,否则查找规则表,进行掩码匹配查询;第五步,规则表掩码匹配查询时,依次对五个规则表进行掩码匹配查询,根据一定的优先级策略分别找到最佳匹配规则,然后根据相同的策略再在这些最佳匹配规则中找出最终匹配规则;第六步,在规则表中查询到最终匹配规则后,将IP报文数据流的五元组信息及该最终匹配规则的动作信息添加到哈希快速流表中;第七步,哈希快速流表支持老化机制;第八步,删除一条规则时,采用和添加时一样的查找性能均衡策略找到对应的规则表进行删除。...

【技术特征摘要】
1.一种多域流规则匹配的实现方法,其特征在于:该方法的步骤如下,第一步,根据IP报文数据流的五元组定义,对每个元组都建立一个规则表,共五个规则表;第二步,建立一个哈希快速流表,用于保存最近一段时间里匹配规则的IP报文数据流的五元组信息及该匹配规则的动作信息,用于IP报文数据流的精确快速匹配;第三步,添加或更新一条匹配规则时,根据匹配规则中五元组信息在一种可均衡多表间查找性能的表选择策略下选择五张规则表中的其中一张规则表,将匹配规则的所有信息添加到该规则表中;所述的采用一种可均衡多表间查找性能的表选择策略下选择五张规则表中的其中一张规则表来进行添加,策略实施的具体原则包括:A.仅在规则要求匹配的元组中选择对应的规则表;B.在要求匹配的元组中选择哪个规则表支持以下两种策略:a,随机指定;b,预先设定各元组掩码的权重,根据掩码长度和权重计算后得出最高权值的规则表,将规则添加到该表中;第四步,在进行IP报文数据流匹配时,先根据IP报文数据流的五元组在哈希快速流表中进行精确查找,如果找到,则执行相应的动作,否则查找规则表,进行掩码匹配查询;第五步,规则表掩码匹配查询时,依次对五个规则表进行掩码匹配查询,根据一定的优先级策略分别找到最佳匹配规则,然后根据相同的策略再在这些最佳匹配规则中找出最终匹配规则;所述的优先级策略,具体设计原则如下:(5.1)由于5个规则表中的规则没有重复,IP报文数据流进行匹配规则时需要确保不遗漏匹配所有可能的规则,因此需要依次查询5个规则表,如果是多核处理器的环境,算法改为多核并行查找,提高查询实时响应速度;(5.2)引入优先级策略,解决找出最佳规则的问题;优先级策略分为默认优先级和用户配置优先级;所述的默认优先级的策略如下:规则中要求匹配的元组数越多优先级越高,在元组数相同的情况下比较元组的掩码长度,比较顺序为目的IP、源IP,目的端口、源端口、网络协议号;第六步,在规则表中查询到最终匹配规则后,将IP报文数据流的五元组信息及该最终匹配规则的动作信息添加到哈希快速流表中;第七步,哈希快速流表支持老化机制;第八步,删除一条规则时,采用和添加时一样的可均衡多表间查找性能的表选择策略找到对应的规则表进行删除。2.根据权利要求1所述的一种多域流规则匹配的实现方法,其特征在于:第一步中所述的建立的五个规则表,该规则表结构的具体设计原则包括:(1.1)添加的每条规则只存在于五个规则表中的其中一个;(1.2)规则表分为两部分,第一部分为基于前缀扩展的深度为1并进行数据压缩的Trie树;第二部分是...

【专利技术属性】
技术研发人员:云晓春陈训逊吴震谢铭史钦锋王东安常为领
申请(专利权)人:国家计算机网络与信息安全管理中心北京赛思信安技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1