39、数据包分类的简单解决方案与二维方案解析

数据包分类的简单解决方案与二维方案解析

1. 解复用算法

在数据包分类中,有人会想能否直接复用现有的解复用算法,如Pathfinder、伯克利数据包过滤器和动态路径查找器等。虽然这些问题有相似之处,但实则存在细微差别。

Pathfinder是首个避免对规则集进行线性搜索的数据包分类方案。不过,它只允许通配符出现在规则末尾,例如允许(D, S, ∗, ∗, ∗),但不允许(D, ∗, Prot, ∗, SourcePort)。在这种限制下,所有规则可合并成一个广义的前缀树(trie),用哈希表替代数组节点,规则查找时间与数据包字段数量成正比。DPF借鉴了Pathfinder将规则合并到前缀树的思路,还加入了动态代码生成以提升性能。然而,这些方案难以处理混合通配符和指定字段的情况,如(D, ∗, Prot, ∗, SourcePort)。

由于数据包分类规则更为通用,Pathfinder使用前缀树的方法效果不佳。虽存在简单的前缀树方案(集剪枝前缀树)能在O(M)时间内完成查找(M为数据包字段数量),但该方案需要Ω(NK)的存储空间(K为数据包字段数量,N为规则数量),因此不适用于大型数据库。相比之下,部分方案仅需O(NM)的存储空间。

2. 传递标签

传递标签是一种巧妙的查找方法,即从上一跳路由器向下一跳路由器传递标签,多协议标签交换(MPLS)就是典型例子。尽管IP查找能跟上线路速度,但数据包分类的算法难题为MPLS创造了重要应用场景。

如今,MPLS主要用于流量工程。例如,若要让A、B两站点间的Web流量沿特定路径传输,可在两站点间建立标签交换路径。流量离开A站点前,路由器进行数据包分类,将Web流量映射到MPLS报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值