包分类算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


过滤规则F与包头H匹配,当且仅当H的每个域H[i]都与 F相应的域F[i]匹配。
IP分类问题(2)

பைடு நூலகம்
定义:

给定一个具有N条过滤规则的规则库Fdat,与每条规则f 相联系有一个代价函数,记为cost(f),给定一个包头H, 最佳规则匹配问题为在Fdat中查找满足下列条件的过滤 规则fbest:


根据目的端口和源端口的不同组合建立4个哈希表,分别对应(目的 端口,源端口)二元组为(DstPort,*)、(DetPort,SrcPort)、 (*,SrcPort)和(*,*)的情况。
每个哈希表项为一棵Grid of Tries树,哈希表的索引为相应的端口地 址和协议号的某种组合(或函数)。 查找时,同时查找4个哈希表,分别用协议号和端口号的某种组合(或 函数)作为索引,找到相应的Grid of Tries树;然后再根据Grid of Tries 树的查找方法找到最小代价的过滤规则;取所有哈希表中的最好结果 即为最佳匹配的规则。

速度,这是评价IP分类算法的最重要标准。算法时间复 杂度的3种评价标准:

最坏情况:对一个包进行IP分类查找的最长可能时间。 平均情况:在随机情况下,对一个包进行分类查找的平均时间。 统计情况:在符合某种预先指定的包或过滤规则匹配率的分布下,对一 个包进行分类查找的平均时间。


占用内存,包括规则库本身以及为高速查找而建立的各 种数据结构占用的内存。 更新代价:
包分类算法
主要内容

包分类问题的产生背景


典型的包分类算法
Bitmap-RFC算法 TIC算法
参考文献

D. E. Taylor. Survey & Taxonomy of Packet Classification Techniques. Technical Report, Department of Computer Science & Engineering, Washington University in Saint Louis, May 2004. D.Liu, B.Hua, X.Hu, X.Tang. High-performance Packet Classification Algorithm for Many-core and Multithreaded Network Processor. In Proceedings of CASES 2006. H.Cheng, Z.Chen, B.Hua, X.Tang. Scalable Packet Classification Using Interpreting: A Cross-platform Multi-core Solution. In Proceedings of PPoPP 2008.

完全更新:重新建立全部的查找数据结构。 增量更新:在查找数据结构中增加或删除一条过滤规则。 重组或平衡:在适当的时间重组数据结构使其恢复原来的效率。
IP分类问题(4)

从数学上看,IP分类问题与多维空间中的点定位问 题相似,但更加复杂。 基本的解决思路:


根据数据流的分布特点以及规则集中规则的分布特点设 计分类算法。 将高维问题转化为二维乃至一维的问题,降低问题的复 杂度。
A
1
1 R5
0 G 1
1 R5
F
1 R6 R3
0
I
R2
2.3 Grid-of-Trie
查找路径 B C D R4 R1 0 0 1 R2 0 E F R5 I F2 源地址Trie树 1 R6 0 A 1 H F1 目的地址Trie树
优点:内存空间小
1 R5
0 G 1
1
1 R6 R3
0
缺点:更新困难,在 需要更新时最好重建 这棵树。
R2
查找路径 B C 0 0
A
1 H
F1 目的地址Trie树
R4 R1 0
D 1 0 E 1 0 R5 1 G 1 R2
F 1 R6 R3
0 1
I
F2 源地址Trie树
多维IP分类

假定所有过滤规则的协议只取三个值:TCP、UDP和通配符(*), 对于取值为通配符的过滤规则,将一条规则重复3次,分别对应TCP、 UDP和所有其它情况(OTHER)。


1. IP分类问题(1)

术语:

包头H是有K个域的实体,每个域表示成H[i],每个域 为一个比特串。 过滤规则F具有K个域,表示为F[i]。 与每个F[i]相关联的有一个匹配方式,可以是:



精确匹配:F[i]用一个值来表示,若H[i]=F[i],称H[i]与F[i] 精确匹配。 前缀匹配: F[i]通过一个前缀来指定,若H[i]与F[i]表示的前 缀匹配,称H[i]与F[i]前缀匹配。 范围匹配: F[i]通过一个范围指定,即F[i]=[val1, val2],若 满足val1≤ H[i] ≤ val2,称H[i]与F[i]范围匹配。
fbest是H的一个匹配过滤规则;

在Fdat中不存在其它的过滤规则f,f与H匹配且满足 cost(f)<cost(fbest)。

IP分类问题是最佳过滤规则匹配问题的一个实例。
IP分类问题中与每条规则相联系有一个ACTION,用来表 示对满足相应过滤规则的包的处理动作。
IP分类问题(3)

算法的评价指标:
查找路径 B C D R4 R1 0 0 G 0 1 R2 0 E F R5 I F2 源地址Trie树 0 A 1 H F1 目的地址Trie树
优点:不需要回溯,查找 时间短 缺点:空间复杂度高,不 易更新。
F1 目的地址Trie树 H F2 源地址Trie树 1 R6
1
1 R6 R3
0
查找路径 B C D R4 R1 0 0 1 R2 0 E 0
优点:算法简单、直 接、便于硬件实现。 缺点:回溯时间长, 对规则维数的扩展性 差,不能直接支持范 围匹配。
F1 目的地址Trie树
查找路径 B C D R4 R1 0 0 G 0 1 R2 0 E 0
A
1 H
1 R5
F
1 R6 R3
0
I
F2 源地址Trie树
2.2 Set-Pruning Trie

2. 典型的IP分类算法
以Grid-of-Tries为代表的基于Trie树的算法 以比特矢量为代表的算法 以HiCuts为代表的决策树算法 以RFC为代表的算法

2.1 Hierarcical Trie
规则 R1 R2 R3 R4 R5 R6 F1(目的地址) 00* 0* 1* 00* 0* * F2(源地址) 00* 01* 0* 0* 1* 1*
相关文档
最新文档