一种三重内容可寻址存储器报文分类的规则更新方法技术

技术编号:3499394 阅读:229 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种三重内容可寻址存储器报文分类的规则更新方法,其特征在于,将规则扩展成多个规则条目存储在存储器的条目空间中,添加新规则时,判断最后一个存储有所述规则条目的已占条目空间之后的空闲条目空间是否能容纳将要添加的新规则,是则在所述最后一个已占条目空间之后直接存储所述新规则,否则将所述存储器进行紧缩以清除所述最后一个已占条目空间之前的空闲条目空间,然后再存储所述新规则;删除规则时,直接将存储有该被删除规则的已占条目空间设置成空闲条目空间。本发明专利技术方法可以简单有效的解决三重内容可寻址存储器用于ACL/QoS的规则更新问题,方法简单,更新效率高,实用性强,适应面广。

【技术实现步骤摘要】

本专利技术涉及计算机网络
,尤其涉及使用TCAM(Ternary ContentAddressable Memory,三重内容可寻址存储器)实现ACL/QoS(AccessControl List/Quality of Service,访问控制列表/服务质量)方面的技术,主要应用在路由器,交换机,防火墙,入侵检测系统等网络设备。
技术介绍
现今的网络设备中,大多都需要实现ACL/QoS,这些技术中最关键部分就是规则匹配和规则更新问题。现以ACL举例,传统的ACL由五元组构成源IP地址,目的IP地址,源端口号,目的端口号,协议。一般的实现中,IP地址使用前缀匹配,协议使用精确匹配,而端口则使用范围匹配。目前实现ACL主要有两种途径,一种是使用软件实现,最典型的就是RFC(RecursiveFlow Classification,递归流分类)算法;另一种就是使用硬件实现,最典型的就是TCAM。当然硬件实现肯定比软件快很多,尤其是在一些高速网络中,一般都使用硬件加速。TCAM是一种专用三重内容可寻址存储器,可以进行快速大量并行搜索。搜索的时候,存储器中所有的条目同时与搜索关键字比较,搜索结果就是匹配项的物理地址。在进行条目匹配时,条目的每个位可以是0、1、x三种状态,如果是x,那么该位不参与比较,默认是成功,否则关键字和条目的相应位进行比较,如果相同则成功否则失败。在比较过程中,如果某位不匹配,那么该条目匹配失败;如果所有位都匹配,那么该条目匹配成功。TCAM硬件的固有特性使得TCAM非常适合进行精确匹配和前缀匹配,这时可以使用TCAM直接表示这些字段。比如MAC(Media Access Control,介质访问控制)地址表、MPLS(Multi-Protocol Label Switching,多协议标签交换)转发表就是精确匹配,而IPv4/v6(Internet Protocol version 4/6,互联网协议第四/六版)路由表则是前缀匹配。但是当TCAM用于范围匹配时,比如表示TCP/UDP(Transfer Control Protocol/User Datagram Protocol,传输控制协议/用户数据报协议)端口范围,那么就无法简单的直接表示这些字段,这时就需要使用多个TCAM条目来表示范围。实现ACL/QoS需要解决的一个关键问题是规则冲突。规则冲突是指两个或多个规则重叠,从而导致一个模糊的分类问题,即当有一个报文同时匹配多个分类规则并且这些规则所关联的行为不一致时就产生规则的冲突。解决报文分类规则冲突的最基本方法是给每个规则都赋予一个优先级,当一个报文同时匹配多个规则时,通过比较它们的优先级来最终确定报文应匹配哪个规则。另一种简单的方法是当一个报文同时匹配多个分类规则时,只取第一个匹配的分类规则,也即按规则配置的先后顺序确定优先级,越靠近前面的规则优先级越高。规则冲突最主要的是影响规则更新问题即插入和删除规则的复杂度。对于软件实现ACL/QoS,这个实现起来还是比较简单的,但使用硬件TCAM实现时则复杂很多(根据移动的TCAM条目数确定)。首先是由于TCAM本身固有的特性决定的;其次ACL/QoS规则和TCAM条目并不是简单的一对一关系,而是复杂的一对多关系,添加一条ACL/QoS规则实际上可能添加多个TCAM条目,删除也是如此。在当前的实现中,ACL/QoS规则大多使用位置的顺序作为优先级,即先插入的规则比后插入的规则优先级高,或者简单的说就是先配先生效。所以使用TCAM实现ACL/QoS规则的特点一般如下1)规则按添加的先后顺序确定优先级,即先配置的先匹配;2)TCAM按位置顺序存储条目,先匹配的先返回;3)一个ACL/QoS规则可能对应多个TCAM条目。根据上面的特点描述,最简单的实现方法如下1)插入ACL/QoS规则将ACL/QoS规则扩展成R个TCAM条目,如果剩余的TCAM条目空间F大于R,那么直接插入;2)删除ACL/QoS规则假定ACL/QoS规则扩展成R个TCAM条目,那么将该条目后的所有ACL规则前移R个位置,并把后面的R个条目置成空闲状态。虽然上面的方法比较简单,但是删除的复杂度非常高。目前的一些论文中也有研究,主要是构建一颗复杂的规则约束树,使添加/删除的复杂度降低,但是这些方法一般都非常复杂,实现起来也很困难。因此需要一种非常简单并且效率也很高的紧缩更新方法,以有效的解决TCAM用于报文分类的规则更新问题。
技术实现思路
本专利技术所要解决的技术问题是提供,解决TCAM应用于ACL/QoS方面的报文分类规则更新问题,提供一种简单高效的方法实现规则的添加和删除。为达到上述目的,本专利技术提供了,其特点在于,将规则扩展成多个规则条目存储在存储器的条目空间中,添加新规则时,判断最后一个存储有所述规则条目的已占条目空间之后的空闲条目空间是否能容纳将要添加的新规则,是则在所述最后一个已占条目空间之后直接存储所述新规则,否则将所述存储器进行紧缩以清除所述最后一个已占条目空间之前的空闲条目空间,然后再存储所述新规则;删除规则时,直接将存储有该被删除规则的已占条目空间设置成空闲条目空间。上述的方法,其特点在于,所述紧缩包括将所述已占条目空间按序连续移动填满最后一个已占条目空间之前的所有空闲条目空间,从而将最后一个已占条目空间之后的空闲条目空间的数量增至最大。上述的方法,其特点在于,还包括使用一个后台线程定期检查当前条目空间的使用情况,如果满足一设定条件则立刻进行所述紧缩。上述的方法,其特点在于,所述添加新规则具体包括如下步骤步骤a将新规则扩展成Ext个规则条目;步骤b判断最后一个已占条目空间之后的所有空闲条目空间的数量Free是否大于或等于Ext,是则执行步骤c,否则执行步骤d;步骤c在所述最后一个已占条目空间之后直接存储所述新规则的Ext个规则条目,结束流程;步骤d判断所述最后一个已占条目空间之前的所有空闲条目空间的数量Frag与Free的和是否大于或等于Ext,是则执行步骤e,否则说明添加新规则失败并结束流程;步骤e进行所述紧缩;步骤f在紧缩后的最后一个已占条目空间之后直接存储所述新规则的Ext个规则条目,结束流程。上述的方法,其特点在于,所述删除规则还包括查找所述被删除规则在三重内容可寻址存储器中位置的步骤。上述的方法,其特点在于,所述删除规则还包括计算所述被删除规则的规则条目的个数的步骤。上述的方法,其特点在于,还包括及时更新所述参数Frag和Free的步骤,以方便下一次添加或删除规则的操作。本专利技术的技术效果在于采用本专利技术所述方法可以简单有效的解决TCAM用于ACL/QoS的规则更新问题。它的优点如下方法非常简单,更新效率非常高,实用性非常强,适应面非常广等。附图说明图1是插入规则流程图;图2是删除规则流程图;图3是具体实施方式中使用的例子;图4是具体实施方式中使用的例子;图5是具体实施方式中使用的例子。具体实施例方式下面结合附图对技术方案的实施作进一步的详细描述(1)符号定义Cap——ACL表TCAM容量Start——ACL表在TCAM里的起始索引Used——当前使用的TCAM条目数Curp——当前的插入位置Free——最后一个有效的TCAM条目后面的剩本文档来自技高网
...

【技术保护点】
一种三重内容可寻址存储器报文分类的规则更新方法,其特征在于,将规则扩展成多个规则条目存储在存储器的条目空间中,添加新规则时,判断最后一个存储有所述规则条目的已占条目空间之后的空闲条目空间是否能容纳将要添加的新规则,是则在所述最后一个已占条目空间之后直接存储所述新规则,否则将所述存储器进行紧缩以清除所述最后一个已占条目空间之前的空闲条目空间,然后再存储所述新规则;删除规则时,直接将存储有该被删除规则的已占条目空间设置成空闲条目空间。

【技术特征摘要】

【专利技术属性】
技术研发人员:王俊川郑其杉吕勇
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[]

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

1
相关领域技术
  • 暂无相关专利