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

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

Info

Publication number
CN100488174C
CN100488174C CNB200610145331XA CN200610145331A CN100488174C CN 100488174 C CN100488174 C CN 100488174C CN B200610145331X A CNB200610145331X A CN B200610145331XA CN 200610145331 A CN200610145331 A CN 200610145331A CN 100488174 C CN100488174 C CN 100488174C
Authority
CN
China
Prior art keywords
organization
traffic classification
equivalence class
acl
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB200610145331XA
Other languages
English (en)
Other versions
CN1968212A (zh
Inventor
潘建农
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB200610145331XA priority Critical patent/CN100488174C/zh
Publication of CN1968212A publication Critical patent/CN1968212A/zh
Application granted granted Critical
Publication of CN100488174C publication Critical patent/CN100488174C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种流分类中基于硬件的差异化组织方法。为解决现有技术中ACL相关表的生成速度和查找效率慢,并且空间的耗费比较大的问题而发明。本发明一种包括以下步骤进行流分类系统匹配区域的等价类的划分,得到匹配区域的等价类标识和等价类位图;根据硬件平台的特点确定出适合的流分类系统相关表的一种或一种以上的组织形式,并对该一种或一种以上的组织形式进行优先级的标识;按照最优的组织形式,根据匹配区域的等价类标识和等价类位图将流分类系统各级表组织成不同的形式。本发明能够根据硬件平台的特点,针对性地选择适合的组织方式,提高ACL相关表的生成速度和查找效率,减少空间的耗费。

Description

流分类中基于硬件的差异化组织方法
技术领域
本发明涉及硬件的差异化组织方法,特别涉及流分类中基于硬件的差异化组织方法。
背景技术
在普通的路由器中,对通过的数据报文进行流分类是一项重要的基本功能。流分类通常由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地址,源端口,目的端口,协议。规则集合如下表所示。
 
序号 源IP地址 目的IP地址 源端口 目的端口 协议 动作
1 100.1.1.0/0.0.0.255 any any 80 tcp(6) permit
2 100.1.1.64/0.0.0.0 any any le 1023 tcp(6) deny
3 120.1.0.0/0.0.255.255 any any gt 1023 udp(17) permit
4 120.1.10.0/0.0.0.255 any any gt 1023 udp(17) deny
5 Any any any gt 1023 tcp(6) deny
对应的7个域分别是:源IP地址高16位,源IP地址低16位,目的地址高16位,目的地址低16位,源端口(16位),目的端口(16位),协议(8位)。
1、第一步,首先进行RFC第0阶段的处理,将7个chunk域进行等价类的划分。得出的7个chunk域的等价类及对应的eqid值如下表所示。
第1个域:源IP地址高16位
 
范围 0—25600 25601 25602—30720 30721 30722—65535
ID值 Eqid1_3 Eqid1_1 Eqid1_3 Eqid1_2 Eqid1_3
CBM 10000 10011 10000 11100 10000
第2个域:源IP地址低16位
 
范围 0—255 256—319 320 321—511 512—65535
ID值 Eqid 2_3 Eqid 2_1 Eqid 2_2 Eqid 2_1 Eqid 2_3
CBM 11100 11101 11111 11101 11100
第3个域:目的地址高16位
 
范围 0—65535
ID值 Eqid 3_1
CBM 11111
第4个域:目的地址低16位
 
范围 0—65535
ID值 Eqid 4_1
CBM 11111
第5个域:源端口
 
范围 0—65535
ID值 Eqid 5_1
CBM 11111
第6个域:目的端口
 
范围 0—79 80 81—1023 1024—65535
ID值 Eqid 6_2 Eqid 6_1 Eqid 6_2 Eqid 6_3
CBM 00010 00011 00010 11100
第7个域:协议
 
范围 0—5 6 7—16 17 18—255
ID值 Eqid 7_0 Eqid 7_1 Eqid 7_0 Eqid 7_2 Eqid 7_0
CBM 00000 00011 00000 11100 00000
2、第二步,根据具体项目对应的硬件平台特性,确定将要采用的算法。确定具体算法可以按照项目的特性预先确定好;也可以由系统根据一定的策略(如系统空间的情况,系统属性值)来自动选取最优的实现算法。当算法确定后,按如下步骤继续进行;
如图1、图4所示,延用RFC原有的组织形式,此种方式适用于内存空间较大,系统访问内存效率较高,并且系统的硬件平台没有提供相关的辅助机制的情况。
采用RFC算法,将各级索引表进行组织,在第一阶段的处理中,将COM0_1(包括eqid1_1、eqid1_2、eqid1_3)、COM0_2(包括eqid2_1、eqid2_2、eqid2_3)、COM0_5(包括eqid5_1)三个chunk对应的一级索引表进行合并生成第二级索引表CBM1_1,将COM0_3(包括eqid3_1)、COM0_4(包括eqid4_1)、COM0_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、Eqid2_1、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_1、Eqid7_1)
(Eqid1_1、Eqid2_2、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_1、Eqid7_1)
规则2生成的条目有:
(Eqid1_1、Eqid2_2、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_1、Eqid7_1)
(Eqid1_1、Eqid2_2、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_2、Eqid7_1)
规则3生成的条目有:
(Eqid1_2、Eqid2_1、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_2、Eqid7_2)
(Eqid1_2、Eqid2_2、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_2、Eqid7_2)
(Eqid1_2、Eqid2_3、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_2、Eqid7_2)
(Eqid1_2、Eqid2_1、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_2、Eqid2_2、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_2、Eqid2_3、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
规则4生成的条目有:
(Eqid1_2、Eqid2_1、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_2、Eqid2_2、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_2、Eqid2_3、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
规则5生成的条目有:
(Eqid1_1、Eqid2_1、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_2、Eqid2_1、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_3、Eqid2_1、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_1、Eqid2_2、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_2、Eqid2_2、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_3、Eqid2_2、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_1、Eqid2_3、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_2、Eqid2_3、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
(Eqid1_3、Eqid2_3、Eqid3_1、Eqid4_1、Eqid5_1、Eqid6_3、Eqid7_2)
本发明能够根据硬件平台的特点,针对性地选择适合的组织方式,根据ACL规则的配置情况,动态进行调整,达到最优的组织方式,提高ACL相关表的生成速度和查找效率,减少空间的耗费。

Claims (6)

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表的各级索引表,形成访问控制列表映射表。
CNB200610145331XA 2006-11-24 2006-11-24 流分类中基于硬件的差异化组织方法 Expired - Fee Related CN100488174C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB200610145331XA CN100488174C (zh) 2006-11-24 2006-11-24 流分类中基于硬件的差异化组织方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB200610145331XA CN100488174C (zh) 2006-11-24 2006-11-24 流分类中基于硬件的差异化组织方法

Publications (2)

Publication Number Publication Date
CN1968212A CN1968212A (zh) 2007-05-23
CN100488174C true CN100488174C (zh) 2009-05-13

Family

ID=38076768

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200610145331XA Expired - Fee Related CN100488174C (zh) 2006-11-24 2006-11-24 流分类中基于硬件的差异化组织方法

Country Status (1)

Country Link
CN (1) CN100488174C (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380724B2 (en) * 2009-11-24 2013-02-19 Microsoft Corporation Grouping mechanism for multiple processor core execution
US9471710B2 (en) 2013-06-14 2016-10-18 International Business Machines Corporation On-the-fly encoding method for efficient grouping and aggregation
US9672248B2 (en) 2014-10-08 2017-06-06 International Business Machines Corporation Embracing and exploiting data skew during a join or groupby
CN104639606B (zh) * 2014-12-29 2018-03-16 曙光信息产业(北京)有限公司 一种差异化对比分块的优化方法
US9922064B2 (en) 2015-03-20 2018-03-20 International Business Machines Corporation Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables
US10650011B2 (en) 2015-03-20 2020-05-12 International Business Machines Corporation Efficient performance of insert and point query operations in a column store
US10108653B2 (en) 2015-03-27 2018-10-23 International Business Machines Corporation Concurrent reads and inserts into a data structure without latching or waiting by readers
US10831736B2 (en) * 2015-03-27 2020-11-10 International Business Machines Corporation Fast multi-tier indexing supporting dynamic update
US10404594B2 (en) 2016-12-13 2019-09-03 Oracle International Corporation System and method for providing partitions of classification resources in a network device
US10341242B2 (en) 2016-12-13 2019-07-02 Oracle International Corporation System and method for providing a programmable packet classification framework for use in a network device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
快速路由器的路由查找和流分类算法研究. 姚兴苗,李乐民,胡光岷.电子科技大学学报,第33卷第6期. 2004
快速路由器的路由查找和流分类算法研究. 姚兴苗,李乐民,胡光岷.电子科技大学学报,第33卷第6期. 2004 *

Also Published As

Publication number Publication date
CN1968212A (zh) 2007-05-23

Similar Documents

Publication Publication Date Title
CN100488174C (zh) 流分类中基于硬件的差异化组织方法
CN102487374B (zh) 一种访问控制列表实现方法及装置
CN101345707B (zh) 一种实现IPv6报文分类的方法及设备
Zhao et al. Towards approximate event processing in a large-scale content-based network
CN104579941A (zh) 一种OpenFlow交换机中的报文分类方法
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
CN102405623B (zh) 路由表项的存储方法和装置
Meiners et al. Hardware based packet classification for high speed internet routers
US9672239B1 (en) Efficient content addressable memory (CAM) architecture
Pao et al. A multi-pipeline architecture for high-speed packet classification
CN103546378A (zh) 基于tcam的范围多匹配2级分层查找方法
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
CN100486211C (zh) 一种用于因特网的基于规则集合划分的分组分类的方法
CN101222434B (zh) 存储策略控制列表、策略搜索方法和三态寻址存储器
KR100965552B1 (ko) 영역분할을 이용한 패킷 분류 테이블 생성 방법 및 패킷분류 방법과 장치
CN100472427C (zh) 一种数据包递归流分类方法
Pao et al. IP address lookup using bit-shuffled trie
CN100488173C (zh) 对流分类算法进行自动选择的方法
Wang Scalable packet classification with controlled cross-producting
Lee et al. Utilizing 2-D leaf-pushing for packet classification
JP2006246488A (ja) ネットワーク・ルータ、アドレス処理方法及びコンピュータ・プログラム
CN109754021B (zh) 基于范围元组搜索的在线包分类方法
Li et al. MEET-IP: Memory and energy efficient TCAM-based IP lookup
CN104301227B (zh) 基于tcam的高速低功耗ip路由表查找方法
CN101945139A (zh) IPv6地址存储和查找方法及相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090513

CF01 Termination of patent right due to non-payment of annual fee