对流分类算法进行自动选择的方法

文档序号:7970927阅读:216来源:国知局
专利名称:对流分类算法进行自动选择的方法
技术领域
本发明涉及数据通讯技术,特别涉及对流分类算法进行自动选择的方法。
背景技术
在普通的路由器中,进行流分类是一项重要的基本功能。流分类的设置可以通过ACL(访问控制列表)来完成。ACL为网络管理者提供更加灵活的管理方法。ACL大量应用在报文过滤、NAT(网络地址转换)、Qos(服务质量)、策略路由、uRPF(单播反向路径转发)等应用中。
一个ACL号对应若干条有优先级规则的集合,每条ACL规则描述对数据报文的头部中的几个域进行匹配的特征条件,以及相应的动作(PERMIT和DENY)来决定对报文的处理,常用的匹配域有源IP地址、目的IP地址、源端口、目的端口、协议等。
在由软件实现的ACL匹配算法中,有多种实现算法,都有各自的优点和局限性。如基于TRIE(Trie结构是对关键码范围进行均分的结构,Trie结构主要基于两个原则有一个固定的关键码集合和对于结点的分层标记。其内部结点仅作为占位符引导检索过程,数据记录只存储在叶结点中)算法流分类、基于递归流分类(RFC)、基于层次化空间分割(Hi-Cuts)算法、基于位向量(BV)算法等等。有些分类算法的分类速度随着分类规则集中规则数的增加而下降;有些算法需要配置很大的内存,系统成本较高;有些分类系统规则变化响应时间较长。在由网络处理器为主的路由器中,为保证系统性能,减少算法的复杂性。最常用的是基于TRIE算法流分类、基于递归流分类(RFC)算法。
基于TRIE表实现算法如图1所示,本算法利用TRIE的原理进行,将需要匹配的报文头部的多个域分为多个部分,分别建立多级索引表,根据匹配的域,逐级进行扩展。本算法的优点是算法简单,查找方便,空间可动态分配。对于匹配域较少或匹配域对应的BIT位数较少的应用极有优势,例如ACL标准表(只匹配源IP地址)、特殊应用(只匹配源端口或目的端口)的情况。缺点是当匹配域的个数或对应的BIT位数较多时,导致索引表的级数增多,空间快速膨胀。特别是当各级索引表的先后顺序确定后,如ACL规则中对报文头部的某一个或某几个域进行全匹配时,将引起所有有关的各级索引表全部进行扩展,对空间的需求无法进行有效的控制。
RFC算法
应用较广泛、性能较好的是RFC(递归流分类)算法,RFC算法通过对ACL规则集进行递归分类,构造多个等价类及多级索引表,报文通过对索引表的逐级匹配,在最后一级索引表中得到所属等价类编号(EQID),以及该等价类中最先匹配的ACL规则的信息。
使用该方法,对于查找定位的过程,效率较高,但是在划分等价类时,存在效率低下的问题,必须将所有的规则全部集中在一起,而且使用CLASS BITMAP(CBM)(等价类位图)来进行等价类的划分。如果规则数目庞大,需要的BITMAP位数也相应加大,需要进行大量的逻辑“与”和比较工作,多次对内存进行读写,而且每增加/删除一条ACL规则,都需要重新进行计算,不适应实际应用中,要求快速生成等价类,使规则快速生效的需求。在ACL规则数目飞速增长时,需要的内存空间也飞速增长。

发明内容
为了克服现有技术的缺陷和不足,本发明的目的在于提供一种提高系统在访问控制列表上处理灵活性的对流分类算法进行自动选择的方法。
为了达到上述目的,本发明一种对流分类算法进行自动选择的方法,包括以下步骤(1)用户在路由器上配置访问控制列表,并确定访问控制列表的实现算法;(2)判断新增规则是否是访问控制列表的第一条规则,如果判断结果为是,则进入步骤(3);如果判断结果为否,则进入步骤(4);(3)根据该规则的匹配范围确定访问控制列表对应的特征值,并按特征码和表号确定实现的算法和各匹配字段的先后顺序生成相应的表项,步骤结束;(4)判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内,如果判断结果为否,则进入步骤(5);如果判断结果为是,则进入步骤(6);(5)根据该规则中新的匹配字段确定访问控制列表的算法,进入步骤(6);(6)将该规则按照算法和确定的先后顺序生成相应的表项。
作为本发明的进一步改进,步骤(1)中所述配置访问控制列表,并确定访问控制列表的实现算法的方法为配置好访问控制列表表号中的规则,并将其配置到网络地址转换或服务质量的具体应用中来确定访问控制列表的实现算法。
作为本发明的进一步改进,步骤(1)中所述配置访问控制列表,并确定访问控制列表的实现算法的方法为将访问控制列表配置到网络地址转换或服务质量的具体应用中,并通过逐条配置表中的访问控制列表规则来选择实现算法。
作为本发明的进一步改进,步骤(4)中所述判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内的方法为将该规则的匹配字段和范围与访问控制列表的特征值进行比较,如果相符,则判定该规则的特征值包含在已有的访问控制列表特征值的范围内;如果不相符,则判定该规则的特征值没有包含在已有的访问控制列表特征值的范围内。
作为本发明的进一步改进,所述步骤(5)具体为(51)根据该规则中新出现的匹配字段判断访问控制列表算法是否需要修改,如果判断结果为是,则进入步骤(52);如果判断结果为否,则进入步骤(53);(52)按照预先确定的策略选取新的生成算法,并将对应的特征值写入访问控制列表表号相应得结构中,进入步骤(6);(53)对匹配顺序进行调整后,生成新的特征值,并将对应的特征值写入访问控制列表表号相应得结构中,进入步骤(6)。
采用上述的方法后,能够根据需要动态的选择流分类的算法生成新的访问控制列表表项,大大提高了ACL算法选择的灵活性,能够尽量避免单一算法的局限性,提高查找速度,减少空间浪费,简化了生成算法的复杂性。


图1为TRIE表的实现结构图;图2为本发明中动态确定流分类算法的流程图;图3为本发明中路由器系统对数据包进行流分类的处理流程图。
具体实施例方式
本发明中根据ACL应用的类型选择ACL生成算法的步骤如下确定ACL实现算法;ACL相关的配置主要分为两种配置方式第一种是先配置好ACL表号中的规则,然后将其配置到某一项具体应用中,如NAT(网络地址转换)或Qos(服务质量)中;另一种配置方式是先将ACL表号配置到具体应用中,然后逐条配置表中的ACL规则。这两种方式可以随时交替进行配置。
对于第一种配置方式,路由器流分类处理模块先保存表号中的规则,然后在确定将ACL表号配置到某一项具体应用时才确定ACL算法。然后将所有规则依次进行增加操作。
对于第二种配置方式,直接可以确定ACL算法,选择具体ACL算法的原则如下1)、对于ACL标准表,只匹配源IP地址32BIT,可选择Trie表的实现方式2)、对于ACL在NAT上的应用,通常只匹配源IP地址,源端口和协议,可选择Trie表的实现方式,且其各级索引表的顺序为协议、源端口和源IP地址。
3)、对于ACL在Qos(服务质量)、策略路由上的应用,可匹配多条ACL表号,可将其进行聚合,按照一个特殊表号进行组织,提高查找效率。这些特殊表号的组织处理同普通的ACL表4)、对于比较特殊的应用,可考虑单独实现。
5)、对于扩展表和其他的ACL应用,首先选择Trie表的实现方式,如Trie实现不适合,然后选择RFC和Hash或其他的实现方案。通常情况下,各项ACL应用中,规则的类型大致相同,或者大部分的规则类型相同,这就为将其按匹配域进行分类打下了基础。
确定ACL算法后,进行增加ACL规则的操作;首先根据第一条规则,决定采用的算法如果第一条规则匹配的域较少,可将需要进行匹配的各个域,按照协议、源端口、目的端口、源IP地址、目的IP地址的顺序,每8个BIT一级的方式进行分级,每一级对应1个BIT。分别对应13个BIT。如果需要匹配的级数不超过6级,可采用TRIE表的实现方式,并以对应的13BIT作为ACL表号的特征值。
如果匹配的域较多,需要匹配的级数不超过6级,TRIE的实现无法满足时,则采用RFC算法;当增加新规则时,根据对应的规则所匹配的特征,与ACL表号的特征值进行比较。
如果新规则的特征值包含在原有的特征值之内,直接采用原有的顺序进行处理。
如果新规则的特征值与ACL表号对应的特征值不相符,判断其对应的特征值中需要匹配的级数。如果其对应的级数与原有特征值对应的级数总数不超过6,则将原有的特征值与新特征值相“或”后作为新的特征值。并将原有的TRIE表重新组织,增加新出现的各级索引表。将新规则按新的索引表顺序插入到表中。
如果其对应的级数与原有特征值对应的级数总数超过6,直接将原有的TRIE组织的各级索引表删除,重新插入到RFC的实现中。
本发明当删除TRIE对应的规则时,先判断ACL表号下的所有空间大小,当大小超过阀值时,对所有规则的特征值重新计算,如果特征值有变化,可重新组织。否则直接删除,不重新进行组织;本发明当删除RFC对应的规则时,先判断ACL表号下的所有空间大小,当大小超过阀值时,对所有规则的特征值重新计算,如果特征值中匹配的级数小于6时,可将其从RFC中删除(删除时要考虑其对应其他ACL表中规则的影响),重新按照TRIE的方式进行组织。否则直接删除,不重新进行组织;本发明当进行ACL查询处理时,首先根据ACL表号及特征值,确定其查找方式如果是按照TRIE的方式进行查找,根据特征值确定匹配的顺序,如果是标准表,根据特征值确定的匹配顺序是32BIT源IP地址,从高到低每8位为一级;如果是扩展表,按照特征值确定查找的顺序;然后按照查找的顺序每8位为一级,从高到低进行匹配;如果是按照RFC算法进行查找,同样根据特征值确定一级表、二级表的组合情况,按照组合情况依次查找各级索引表;如果是按照Hash算法进行查找,同样根据特征值确定需要进行匹配的键值以及键值的排列,按照组合情况确定Hash查找的键值,定位最终的条目。
下面结合附图对本发明的具体实施方式
作进一步详细说明。
如图2所示,本发明动态确定流分类算法包括以下步骤(201)用户在路由器上配置ACL,并确定ACL的实现算法;(202)判断新增规则是否是ACL的第一条规则,如果判断结果为是,则进入步骤(203);如果判断结果为否,则进入步骤(204);(203)根据该规则的匹配范围确定访问控制列表对应的特征值,并按特征码和表号确定实现的算法和各匹配字段的先后顺序生成相应的表项,步骤结束;(204)将该规则的匹配字段和范围与访问控制列表的特征值进行比较,如果不相符,则进入步骤(205);如果相符,则进入步骤(208);(205)根据该规则中新出现的匹配字段判断访问控制列表算法是否需要修改,如果判断结果为是,则进入步骤(206);如果判断结果为否,则进入步骤(207);(206)按照预先确定的策略选取新的生成算法,并将对应的特征值写入访问控制列表表号相应的结构中,进入步骤(208);(207)对匹配顺序进行调整后,生成新的特征值,并将对应的特征值写入访问控制列表表号相应的结构中,进入步骤(208);
(208)将该规则按照算法和确定的先后顺序生成相应的表项。
如图3所示,为本发明路由器系统对数据包进行流分类的处理流程,包括以下步骤(301)根据业务类型确定ACL表号相关结构的地址;(302)在相关地址中取得本ACL表号的实现算法和特征码,按特征码和表号确定实现的算法和各匹配字段的先后顺序;(303)将本数据包头中的匹配字段按确定的顺序方法与ACL生成表进行查询和比较;(304)按找到的规则动作确定相应的处理动作。
本发明能够根据需要动态的选择流分类的算法生成新的访问控制列表表项,大大提高了ACL算法选择的灵活性,能够尽量避免单一算法的局限性,提高查找速度,减少空间浪费,简化了生成算法的复杂性。
权利要求
1.一种对流分类算法进行自动选择的方法,其特征在于,包括以下步骤(1)用户在路由器上配置访问控制列表,并确定访问控制列表的实现算法;(2)判断新增规则是否是访问控制列表的第一条规则,如果判断结果为是,则进入步骤(3);如果判断结果为否,则进入步骤(4);(3)根据该规则的匹配范围确定访问控制列表对应的特征值,并按特征码和表号确定实现的算法和各匹配字段的先后顺序生成相应的表项,步骤结束;(4)判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内,如果判断结果为否,则进入步骤(5);如果判断结果为是,则进入步骤(6);(5)根据该规则中新的匹配字段确定访问控制列表的算法,进入步骤(6);(6)将该规则按照算法和确定的先后顺序生成相应的表项。
2.按照权利要求1所述的对流分类算法进行自动选择的方法,其特征在于,步骤(1)中所述配置访问控制列表,并确定访问控制列表的实现算法的方法为配置好访问控制列表表号中的规则,并将其配置到网络地址转换或服务质量的具体应用中来确定访问控制列表的实现算法。
3.按照权利要求1所述的对流分类算法进行自动选择的方法,其特征在于,步骤(1)中所述配置访问控制列表,并确定访问控制列表的实现算法的方法为将访问控制列表配置到网络地址转换或服务质量的具体应用中,并通过逐条配置表中的访问控制列表规则来选择实现算法。
4.按照权利要求1所述的对流分类算法进行自动选择的方法,其特征在于,步骤(4)中所述判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内的方法为将该规则的匹配字段和范围与访问控制列表的特征值进行比较,如果相符,则判定该规则的特征值包含在已有的访问控制列表特征值的范围内;如果不相符,则判定该规则的特征值没有包含在已有的访问控制列表特征值的范围内。
5.按照权利要求1所述的对流分类算法进行自动选择的方法,其特征在于,所述步骤(5)具体为(51)根据该规则中新出现的匹配字段判断访问控制列表算法是否需要修改,如果判断结果为是,则进入步骤(52);如果判断结果为否,则进入步骤(53);(52)按照预先确定的策略选取新的生成算法,并将对应的特征值写入访问控制列表表号相应的结构中,进入步骤(6);(53)对匹配顺序进行调整后,生成新的特征值,并将对应的特征值写入访问控制列表表号相应的结构中,进入步骤(6)。
全文摘要
本发明公开了一种对流分类算法进行自动选择的方法。为解决现有技术中进行流分类的算法不能灵活应用的问题而发明。本发明包括以下步骤用户在路由器上配置访问控制列表,并确定访问控制列表的实现算法;对于不是第一条规则的新增规则,判断该规则的特征值是否包含在已有的访问控制列表特征值的范围内,如果判断结果为否,则根据该规则中新的匹配字段确定访问控制列表的算法后,将该规则按照算法和确定的先后顺序生成相应的表项;如果判断结果为是,则将该规则按照算法和确定的先后顺序生成相应的表项。本发明能够根据需要动态的选择流分类的算法生成新的访问控制列表表项,大大提高了ACL算法选择的灵活性。
文档编号H04L12/56GK1964324SQ200610145329
公开日2007年5月16日 申请日期2006年11月24日 优先权日2006年11月24日
发明者潘建农 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1