流分类中基于硬件的差异化组织方法

文档序号:7970929阅读:248来源:国知局
专利名称:流分类中基于硬件的差异化组织方法
技术领域
本发明涉及硬件的差异化组织方法,特别涉及流分类中基于硬件的差异化组织方法。
背景技术
在普通的路由器中,对通过的数据报文进行流分类是一项重要的基本功能。流分类通常由ACL(访问控制列表)实现,通过配置一系列ACL规则对数据报文的HEADER(报头)中的多个域进行匹配,确定其是否满足或不满足ACL规则,并根据是否满足或不满足某一类规则,决定对数据报文的处理。通过ACL为网络管理者提供更新灵活的管理方法。ACL大量应用在端口的报文过滤、NAT(网络地址转换)、策略路由、uRPF(单播反向路径转发)等应用中。
在由软件实现的ACL匹配算法中,应用较广泛、性能较好的是RFC(递归流分类)算法,RFC算法通过对ACL规则集进行递归分类,构造多个等价类及多级索引表,报文通过对索引表的逐级匹配,在最后一级索引表中得到所属等价类编号(EQID),以及该等价类中最先匹配的ACL规则的信息。
使用该方法,在生成等价类后,需要生成对应的多级索引表,由于目前需要支持ACL规则数目越来越多,虽然RFC算法可以通过等价类的划分大大减少各级索引表的大小,但是如果对各级索引表只采用同一种方法进行组织,随着ACL规则的变化,引起索引表中表项数目的变化,需要不断调整各级索引表的大小,由此带来两种弊端,一种是对各级索引表不断地进行分配(释放),不利于表项的快速生成。另一种就是先预留足够大的空间,又会造成空间的浪费,而且遇到极端情况,造成预留空间不足,将引起整个系统的空间调整,甚至崩溃。
另外,利用同一种方式进行ACL生成算法的组织,没有考虑路由器硬件平台的特点。对于很多路由器上的硬件平台,提供了协处理器或基于硬件PATRICIA树表(PATRICIA树表结构根据关键码每一个二进制的编码来划分,因为每一位要么是0,要么是1,所以分支因子是2,每个内部结点都代表一个位的比较,必然产生两个子结点,是一颗满二叉树)或TRIE表(Trie结构是对关键码范围进行均分的结构,Trie结构主要基于两个原则有一个固定的关键码集合和对于结点的分层标记。其内部结点仅作为占位符引导检索过程,数据记录只存储在叶结点中)的构造和查询机制,使用RFC算法组织各级索引表,无法对这些硬件特性进行利用,影响系统的效率,而且性能和空间都可能无法满足实际需求。

发明内容
为了克服现有技术的缺陷和不足,本发明的目的在于提供一种能够提高ACL相关表的生成速度和查找效率,并减少空间的耗费的流分类中基于硬件的差异化组织方法。
为了达到上述目的,本发明一种流分类中基于硬件的差异化组织方法,包括以下步骤(1)进行流分类系统匹配区域的等价类的划分,得到匹配区域的等价类标识和等价类位图;(2)根据硬件平台的特点确定出适合的流分类系统相关表的一种或一种以上的组织形式,并对该一种或一种以上的组织方式进行优先级的标识;(3)按照最优的组织形式,根据匹配区域的等价类标识和等价类位图将流分类系统各级表组织成不同的形式。
作为本发明的进一步改进,步骤(2)中所述确定出适合的流分类系统相关表的一种或一种以上的组织形式的方法为根据项目的特性预先确定或根据系统空间情况、系统属性值的策略来自动选取组织形式。
作为本发明的进一步改进,步骤(2)中所述的组织形式包括递归流分类组织形式、HASH表组织形式、PATRICIA树表或TRIE表组织形式。
作为本发明的进一步改进,所述递归流分类组织形式的组织方法为将七个匹配域中的每三个匹配域和对应的一级索引表进行合并生成第二级的索引表,将两个合并后的二级索引表与该七个匹配域中未匹配的域对应的一级索引表进行合并,生成访问控制列表条目映射表。
作为本发明的进一步改进,所述HASH表组织形式的组织方法为将七个匹配域对应的等价类标识值组成Key值,统一进行HASH运算,并将所有生成的十五个表项按照HASH的形式组织起来,形成访问控制列表映射表。
作为本发明的进一步改进,所述TRIE表组织形式的组织方法为按照源IP地址高16位、源IP地址低16位、目标IP地址高16位、目标IP地址低16位、源端口、目的端口、协议的顺序组织Trie表的各级索引表,形成访问控制列表映射表。
采用上述的方法后,能够根据硬件平台的特点,针对性地选择适合的组织方式,根据ACL规则的配置情况,动态进行调整,达到最优的组织方式,提高ACL相关表的生成速度和查找效率,减少空间的耗费。


图1为本发明中延用RFC原有的组织形式,将多级索引表进行递归合并与分类。
图2为本发明中在划分完第0阶段的等价类后,采用HASH表方式的组织各项等价类ID值形式。
图3为本发明中在划分完第0阶段的等价类后,采用TREE树表或TRIE表的方式组织各项等价类ID值形式。
图4为本发明中采用RFC算法生成的各级索引表形式。
图5为本发明中采用HASH算法生成的ACL表。
图6为本发明中进行等价类划分后采用Trie方式组织的各级索引表形式。
具体实施例方式
下面结合附图对本发明的具体实施方式
作进一步详细说明。
定义ACL规则匹配的域为五元组源IP地址,目的IP地址,源端口,目的端口,协议。规则集合如下表所示。

对应的7个域分别是源IP地址高16位,源IP地址低16位,目的地址高16位,目的地址低16位,源端口(16位),目的端口(16位),协议(8位)。
1、第一步,首先进行RFC第0阶段的处理,将7个chunk域进行等价类的划分。得出的7个chunk域的等价类及对应的eqid值如下表所示。
第1个域源IP地址高16位

第2个域源IP地址低16位

第3个域目的地址高16位

第4个域目的地址低16位

第5个域源端口

第6个域目的端口

第7个域协议

2、第二步,根据具体项目对应的硬件平台特性,确定将要采用的算法。确定具体算法可以按照项目的特性预先确定好;也可以由系统根据一定的策略(如系统空间的情况,系统属性值)来自动选取最优的实现算法。当算法确定后,按如下步骤继续进行;如图1、图4所示,延用RFC原有的组织形式,此种方式适用于内存空间较大,系统访问内存效率较高,并且系统的硬件平台没有提供相关的辅助机制的情况。
采用RFC算法,将各级索引表进行组织,在第一阶段的处理中,将COMO_1(包括eqid1_1、eqid1_2、eqid1_3)、COMO_2(包括eqid2_1、eqid2_2、eqid2_3)、COMO_5(包括eqid5_1)三个chunk对应的一级索引表进行合并生成第二级索引表CBM1_1,将COMO_3(包括eqid3_1)、COMO_4(包括eqid4_1)、COMO_6(包括eqid6_1、eqid6_2、eqid6_3)三个chunk对应的一级索引表进行合并,生成第二级索引表CBM1_2。在第二阶段的处理中,将生成的两个二级索引表CBM1_1、CBM1_2再与第7个chunk对应的一级索引表CBM0_7(包括eqid7_1、eqid7_2、eqid7_3)进行合并,生成最终的ACL条目映射表。
如图2、图5所示,采用HASH表的组织形式,此种方式适用于内存空间较大,并且硬件提供了HASH表的计算和查找机制,利用这种机制,能够比第1种组织形式更加快速和有效地组织成ACL相关表,支持ACL规则的动态生成。如按第2种方式进行组织,将7个域对应的eqid值组成KEY值,统一进行HASH运算,具体HASH的方式根据实际情况决定。其中,规则1生成的条目有Item_1、Item_2;规则2生成的条目有Item_2、Item_3;规则3生成的条目有Item_4、Item_5、Item_6、Item_7、Item_8、Item_9;规则4生成的条目有Item_7、Item_8、Item_9;规则5生成的条目有Item_10、Item_7、Item_11、Item_12、Item_8、Item_13、Item_14、Item_9、Item_15;将所有生成的15个表项按照HASH的形式组织起来,形成最终的ACL生成表。对于同时匹配多条规则的条目(如Item_7、Item_8、Item_9),在确定表项最终对应的动作时,要根据所有匹配的规则中优先级别最高的规则定义的动作决定。
如图3、图6所示,采用PATRICIA树表或TRIE表的组织形式,。
此种方式适用于系统的硬件平台提供相关的PATRICIA树表或TRIE表辅助机制的情况。对于大多数中端或低端的路由器项目,出于成本的考虑,硬件即使提供了类似的机制,对于表的位数和大小也有很大的限制,无法容纳ACL的全部匹配域。采用本方式,就可以先将需要进行匹配的比特位个数进行压缩,就能够利用硬件提供的TREE树表或TRIE表辅助机制进行相关表的构造和查询。大大提高了系统的效率。
如按Trie表方式进行组织,按照源IP地址高16位(chunk1)、源IP地址低16位(chunk2)、目的IP地址高16位(chunk3)、目的IP地址低16位(chunk4)、源端口(chunk5)、目的端口(chunk6)、协议(chunk7)的顺序组织Trie的各级索引表,在进行将7个域等价类划分后,每一级索引表的长度大大减少(分别从原来的216-1、216-1、216-1、216-1、216-1、216-1和28-1减少到了3、3、1、1、1、3、3)。其中,规则生成的条目包括规则1生成的条目有
(Eqid1_1、Eqid 2_1、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_1、Eqid 7_1)(Eqid1_1、Eqid 2_2、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_1、Eqid 7_1)规则2生成的条目有(Eqid1_1、Eqid 2_2、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_1、Eqid 7_1)(Eqid1_1、Eqid 2_2、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_2、Eqid 7_1)规则3生成的条目有(Eqid1_2、Eqid 2_1、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_2、Eqid 7_2)(Eqid1_2、Eqid 2_2、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_2、Eqid 7_2)(Eqid1_2、Eqid 2_3、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_2、Eqid 7_2)(Eqid1_2、Eqid 2_1、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_2、Eqid 2_2、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_2、Eqid 2_3、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)规则4生成的条目有(Eqid1_2、Eqid 2_1、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_2、Eqid 2_2、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_2、Eqid 2_3、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)规则5生成的条目有(Eqid1_1、Eqid 2_1、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_2、Eqid 2_1、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_3、Eqid 2_1、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_1、Eqid 2_2、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_2、Eqid 2_2、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_3、Eqid 2_2、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_1、Eqid 2_3、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_2、Eqid 2_3、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)(Eqid1_3、Eqid 2_3、Eqid 3_1、Eqid 4_1、Eqid 5_1、Eqid 6_3、Eqid 7_2)本发明能够根据硬件平台的特点,针对性地选择适合的组织方式,根据ACL规则的配置情况,动态进行调整,达到最优的组织方式,提高ACL相关表的生成速度和查找效率,减少空间的耗费。
权利要求
1.一种流分类中基于硬件的差异化组织方法,其特征在于,包括以下步骤(1)进行流分类系统匹配区域的等价类的划分,得到匹配区域的等价类标识和等价类位图;(2)根据硬件平台的特点确定出适合的流分类系统相关表的一种或一种以上的组织形式,并对该一种或一种以上的组织方式进行优先级的标识;(3)按照最优的组织形式,根据匹配区域的等价类标识和等价类位图将流分类系统各级表组织成不同的形式。
2.按照权利要求1所述的流分类中基于硬件的差异化组织方法,其特征在于,步骤(2)中所述确定出适合的流分类系统相关表的一种或一种以上的组织形式的方法为根据项目的特性预先确定或根据系统空间情况、系统属性值的策略来自动选取组织形式。
3.按照权利要求1所述的流分类中基于硬件的差异化组织方法,其特征在于,步骤(2)中所述的组织形式包括递归流分类组织形式、HASH表组织形式、PATRICIA树表或TRIE表组织形式。
4.按照权利要求3所述的流分类中基于硬件的差异化组织方法,其特征在于,所述递归流分类组织形式的组织方法为将七个匹配域中的每三个匹配域和对应的一级索引表进行合并生成第二级的索引表,将两个合并后的二级索引表与该七个匹配域中未匹配的域对应的一级索引表进行合并,生成访问控制列表条目映射表。
5.按照权利要求3所述的流分类中基于硬件的差异化组织方法,其特征在于,所述HASH表组织形式的组织方法为将七个匹配域对应的等价类标识值组成Key值,统一进行HASH运算,并将所有生成的十五个表项按照HASH的形式组织起来,形成访问控制列表映射表。
6.按照权利要求3所述的流分类中基于硬件的差异化组织方法,其特征在于,所述TRIE表组织形式的组织方法为按照源IP地址高16位、源IP地址低16位、目标IP地址高16位、目标IP地址低16位、源端口、目的端口、协议的顺序组织Trie表的各级索引表,形成访问控制列表映射表。
全文摘要
本发明公开了一种流分类中基于硬件的差异化组织方法。为解决现有技术中ACL相关表的生成速度和查找效率慢,并且空间的耗费比较大的问题而发明。本发明一种包括以下步骤进行流分类系统匹配区域的等价类的划分,得到匹配区域的等价类标识和等价类位图;根据硬件平台的特点确定出适合的流分类系统相关表的一种或一种以上的组织形式,并对该一种或一种以上的组织方式进行优先级的标识;按照最优的组织形式,根据匹配区域的等价类标识和等价类位图将流分类系统各级表组织成不同的形式。本发明能够根据硬件平台的特点,针对性地选择适合的组织方式,提高ACL相关表的生成速度和查找效率,减少空间的耗费。
文档编号H04L12/56GK1968212SQ20061014533
公开日2007年5月23日 申请日期2006年11月24日 优先权日2006年11月24日
发明者潘建农 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1