流分类课堂笔记
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c.
图 3. 规则 R1、R2 对应 Trie 树结构标识过程
4
网络测量原理与应用
图 4. 规则 R1、R2、R3 对应 Trie 树结构
4) 规则 R1,R2,R3,R4 对应数据结构。
图 5. 规则 R1、R2、R3、R4 对应 Trie 树结构
5) 规则 R1,R2,R3,R4,R5 对应数据结构。
图 14. 报文(001,110)的匹配过程
9
网络测量原理与应用
对报文(001,010) :
图 15. 报文(001,010)的匹配过程
沿搜索路径,复制结点上规则 R4 为最佳匹配规则,如图 15 所示。 如果不通过结点复制,算法就需要回退到结点 B 搜索优先级最高(最小开销)的匹配 规则。 算法性能评估 分层查找树由于在域 F1 下各相关规则集(域 F1 中前缀某一位缺省)彼此分离,需要 回溯查找。集合剪枝树避免了这一需要从而降低了算法的时间复杂度。 复杂度分析 时间复杂度:O(dW )。 存储复杂度:O(NddW),由于一条规则对应结点可能被复制 Nd 次。 更新复杂度:额外的更新复杂度为 O(Nd)。
3
网络测量原理与应用
d.
规则 R1 的 Trie 树分支
图 2. 规则 R1 对应 Trie 树结构构造过程
其中,粗线箭头代表指向下一维的指针,每个灰色的结点对应一条规则 Rj,在一次 搜索中如果走到此灰色结点,则命中规则 Rj。 2) 为 R1、R2 创建对应数据结构。
a.
b.
d. 同样的,我们可以得到: 3) 规则 R1、R2、R3 对应数据结构。
图 6. 规则 R1、R2、R3、R4、R5 对应 Trie 树结构
6) 规则 R1,R2,R3,R4,R5,R6 对应数据结构。
5
网络测量原理与应用
图 7. 规则 R1、R2、R3、R4、R5、R6 对应 Trie 树结构
7) 规则 R1,R2,R3,R4,R5,R6,R7 对应数据结构。
图 8. 构造完毕的整个分层查找树
图 13. 完成构造的集合剪枝树
经过结点复制, 域 F1 上结点A、 B与Dtrie 树分支上的规则集为{R7}, {R4;R5;R6;R7}, 与{R1;R2;R4;R5;R6;R7}。 分类机制 对到来的包含 d 个连续长度前缀的 d 元组,搜索过程对剪枝树的每一维进行比较匹配。 对上例中的报文 2 元组(001,110) ,在搜索路径上,报文可能匹配多条规则,此处为 R1、R6,选择优先级高的 R1 作为命中规则。
3.几何分类算法 3.1 简介
建模与问题抽象 分类器的每个域可以表示为以下形式:前缀/长度对、运算符/数字。从几何的观点看, 每一类都能用数轴上的一个范围(或区间)表示。2 维的规则表示了 2-D 欧几里得空间 的一个矩形,d 维的规则表示了 d 维的超矩形。一个分类器就是与优先级相联系的超矩 形的集合。 对于一个给定的报头 P,它表示 d 维空间的一个点。流分类问题就是发现包含点 P 的优
2
网络测量原理与应用
约定规则按代价递增 排序,如,R1 代价值 最小。
表 2. 示例规则集 C
构造给定规则集 C 的两维分层查找树(树中左分支存 0,右分支存 1) 1) 为规则集 C 中 R1 创建对应数据结构。
a.
创建规则 R1 的第一个域 F1
b.
创建规则 R1 的第二个域 F2
c.
创建规则 R1 的 Trie 树分支
网络测量原理与应用
第五讲 流分类
1.绪论
为什么要进行流分类 随着 Internet 新应用的加入,互联网服务商(ISPs)希望路由器能够为不同的应用提供 不同 QoS 级别的服务。作为提供这一响应机制的前提,路由器要能够识别、区分到来 的不同类流。为了提供不同级别的流处理,第一步就是对不同的流进行分类。 什么是流分类 流分类:基于给定的一组规则,对比到来报文与每条规则中特定域的值,匹配则执行规 则中对应操作。 我们称这些规则的集合为分类器。 例 1.包含四条规则的访问控制列表
7
网络测量原理与应用
缺点: 由于此数据结构不能反映规则优先级信息,试图搜索所有匹配规则的回溯查找不可避 免。 复杂度分析 存储复杂度: 对于有 N 条规则,每条规则包含 d 个子域且域最大长度为 W 位的规则集,其存储复杂 度为 O(NdW)。 时间复杂度: 查询搜索的时间复杂度为 O(Wd )。 更新复杂度: 额外的更新复杂度为 O(d2W),因为定位要更新规则所需的查找深度复杂度是 O(dW)。
11
网络测量原理与应用
先级最高的那个超矩形。 例 5.表 2 中分类器 C 的几何表示。
a.规则 R1 在 2 维空间的几何表示
b.规则 R2 在 2 维空间的几何表示
c.表 2 分类器的几何表示
图 19.表 2 分类器包含规则的几何表示过程
2.3 网格树
分类思想 网格查找树是适用于 2 维流分类的数据结构。在集合剪枝树中域 F1 合并复制其祖先结 点域 F2 上的规则,网格树通过称为“交换指针”的数据结构,取代结点复制的思想。 设对分类器 C,已构造层次分层树与集合剪枝树,分类器 C 的网格树通过对比分层与 剪枝树,添加从域 F1 指向域 F2 的交换指针。 网格查找树的构造过程: 1)在图 16-a 中的集合剪枝树,结点 R7 被多次复制。现在删除结点 X 下的复制结点 R7,添加从结点 X 指向域 F2 上结点 R7 的指针,并且标注’0’。
2.基于 Trie 树的分类算法 2.1 分层查找树
规则的存储组织 定义符号: 假设有规则集 C={Rj}(1<=j<=N)且 Rj 有 d 个域,其中每个域表示为 Fi(1<=i<=d),Rj 记为<Rj1;Rj2……Rjd>。 分层查找树的构造 例 3.使用分层查找树算法进行流分类 给定含有多条规则的集合 C,其中每个规则包含两个域,如表 2 所示:
a.结点 y 下复制结点 x〞有等同位置结点 x 与 x′
b.交换指针从 y 指向距结点 D 较近的结点 B 下的 x
图 17. 含有多个等同位置的交换指针的指向
2)基于以上规则,得到转换后的网格树,如图 18 所示。
图 18. 构造网格查找树-2
复杂度分析 时间复杂度:O(dW )(与集合剪枝树相等) 。 存储复杂度:O(NdW)(预先计算存储交换指针) 。 更新复杂度:更新复杂度增加,因为许多指针可能指向同一个结点。
6
网络测量原理与应用
图 9. packet(001;110)规则匹配过程
ⅳ.算法回溯到跳转结点’D’的最小祖先结点’B’,沿着’B’上下一级 trie 指针跳转 搜索匹配 F2-trie(110) 。 重复这一过程,直到结点’D’的所有祖先结点都遍历完为止。回溯查找过程如图 10 所示。
图 10. 回溯查找过程
图 11. 基于表 2 的分层查找树
2) 结点 A 为结点 B、D 的祖先结点,分别在结点 B、D 的 trie 树分支上添加 A 的规则 集{R7},如下图所示。
8
网络测量原理与应用
图 12. 对结点 B、D 添加祖先结点 A 的规则集
同样的,对结点 D 添加祖先结点 B 的规则集{R4;R5;R6},得到最终的集合剪枝树,如 图 13 所示。
Fra Baidu bibliotek
整个查找过程结束,报文 p 同时命中规则 R1、R2 与 R6,由于 R1 具有最高优先级,最 终匹配规则为 R1。 为什么要回溯 在查找过程中, 由于第一个字段值 “001” 可能匹配多个前缀, 而且不能预先了解 F2-trie 的哪个分支包含前缀匹配“110” ,因此,回溯是必须的。同时, 必须找到所有匹配规则, 以根据优先级别来确定最佳匹配规则返回。 算法性能评估 优点: 1) 层次查找树是最省存储开销的算法之一。 2) 简单的数据结构易于控制较长搜索时间带来的开销。
分类思想 对于一个报头包含 d 个域(v1,v2 „vd)的到达报文,其分类过程按照如下步骤: a) 对比 v1 字段按搜索算法遍历 F1-trie; b) 搜索算法沿遇到的下一级 trie 指针跳转,递归地搜索第(d-1)维分层查找树。 在表 2 中给出的规则集 C 中,对于到达报文 p(001;110) ⅰ.搜索沿 F1-trie 查找对“001”的最佳匹配。 ⅱ.当第一维搜索结束到达结点’D’ 时,通过下一级 trie 指针跳转到 F2-trie 查找所有 匹配“110”的结点。 ⅲ.搜索到达规则 R1 与 R2 的指示结点;但由于 R1 具有更小代价(更高优先级) ,报文 p 命中规则 R1。如图 9 所示。
a.初始集合剪枝树
b.添加指向 R7 的交换指针 图 16. 构造网格查找树-1 10
网络测量原理与应用
如图 16 所示,此交换指针相当于替代了集合剪枝树中结点 X 的’0’指向的 trie 树分支。 对于从结点 y 引出指向某一复制结点 z 的交换指针(标有 0/1),在分层查找书中,与结 点 z 等同位置的可能有多处,交换指针指向那个距包含 y 结点的域 F2 最近的结点 x.。 如图 17 所示。
2.2 集合剪枝树
分类思想 在集合剪枝树中,每个 trie 树节点(带有唯一前缀)复制其祖先(前序)结点中的所有 规则到本节点自己的规则集中,然后基于新的规则集构造下一维 trie 树。 (通过增加存 储开销,避免回溯,减小算法时间复杂度) 。 集合剪枝树是对分层查找树算法的一种改进。 例 4.使用集合剪枝树算法进行流分类 基于例 3-表 2 中规则集构造二维的集合剪枝树: 1) 未进行剪枝前完整的分层查找树 以图中 A、B、D 结点为例: 在规则集的第一个域 F1 上,结点 A、B 和 D 各自对应规则集{R7},{R4;R5;R6}与 {R1;R2}。
表 1. 流分类器实例(ACL)
如上所示, 一个分类器主要包含三个域: 规则编号, 流描述信息与流匹配后采取的操作。 一个分类器定义了报文的状态或内容, 报文分类就是识别报文遵守、 匹配哪条或哪些规 则的过程。 例 2.简单的流分类过程
图 1. A network 1
网络测量原理与应用
分析图 1 网络环境下, 使用表 1 中分类器对流进行分类的情况, 路由器提供了以下服务: ⅰ.报文过滤 规则 R1 阻塞了所有到 Net A 的外部远程连接,提供了一个私有的研究网 络。 ⅱ.报文路由 规则 R2 使路由能够通过 ATM 网络在应用层使用 rtp 实时从 Net B 向 Net D 发送报文。 ⅲ.流量监管 规则 R3 限制 Net C 到 Net B 总的 tcp 流量不超过 10 Mb/s。 其中,规则 R4 为默认匹配项,处理未命中前 3 条规则的其他报文。 规则、分类器和报文分类的公理化描述 ⅰ.一个分类器 C 包含 N 条规则,{Rj},1<j<N,其中 Rj 由三部分组成: (a) 一个规则表达式 Rj[i],1<i<d,其中 d 是指报头有 d 个域。 (b) 一个数字,Pri(Rj),指出了该条规则在分类器中的优先级。 (c) 一个操作,Action(Rj) 。 ⅱ.对于一个到达报文 P,其报头是 d 维元组(P1,P2,„,Pd) ,我们说它匹配 Rj 当 且仅当 Pi 匹配 Rj[i],其中 1<i<d。 ⅲ.对于某一到达报文 P 且报头是 d 维元组,一个 d 维报文的分类问题即在所有的规则 Rj(1<j<N)中查找到具有最高优先级的规则 Rm。 ·表达式是一个包含简单前缀/长度或操作符/数字的说明。 ·前缀/长度与 IP 查找中定义相同。 ·操作符/数字是例如等于 23、256 到 1023 的区间值或大于等于 1023 更泛化的数值。 此外,通配符用来匹配任意值。正如例 1 中的规则 R4 匹配到达的任意报文。 分析、评价流分类算法的一些性能指标: ⅰ.查找速度 高速链路需要快速分类支持。 ⅱ.存储需求 更小的存储空间,更快的读取速率与更低的功耗。 ⅲ.分类器大小的可伸缩性 不同的应用决定了分类器的大小。 ⅳ.报头域数目的可伸缩性 报文可能包含更多的域段以支持更复杂的服务。 ⅴ.更新时间 分类器变化时,如增加或删除一条规则,数据结构需要更新。 ⅵ.规则的任意性 一个好的分类算法应该能够支持各种不同形式的规则。