网站大量收购独家精品文档,联系QQ:2885784924

基于规则集划分的多决策树报文分类算法.docVIP

基于规则集划分的多决策树报文分类算法.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于规则集划分的多决策树报文分类算法.doc

基于规则集划分的多决策树报文分类算法   摘要:   为克服决策树算法处理高速网络、大容量规则集下的报文分类问题时内存使用量大的弊端,提出一种基于规则集划分的多决策树报文分类算法。在保证规则子集数量可控的前提下,采用启发式算法将规则集划分为有限个规则子集,最大限度分离交叠规则;提出两级级联决策树结构,降低决策树深度以减少规则查找时间。理论分析表明,该算法空间复杂度较传统单决策树算法大幅降低。仿真结果表明,该算法的内存使用量比目前空间性能最好的EffiCuts算法减少了30%,且维度可扩展性更好。   关键词:报文分类;规则集划分;多决策树;内存使用量;大容量规则集   中图分类号:TP393.0   文献标志码:A   0引言   报文分类是网络应用领域的关键技术之一。目前业界的解决方案主要有两种:基于硬件的三态内容可寻址寄存器(Ternary Content Addressable Memory,TCAM)和基于随机存取存储器(Random Access Memory,RAM),它们均可以线速处理报文。随着链路带宽不断增加、网络应用日益多元化,分类规则集呈现出新的特点:容量增大、规则维数增多、范围规则大量出现,使得基于TCAM的多域报文分类算法举步维艰(TCAM不宜处理范围规则)[1-3],而运行于可编程门阵列(Field Programmable Gate Array,FPGA)+RAM架构的决策树算法在规则集容量、规则维数方面扩展性强,且适合处理范围规则,成为研究热点。   规则集中的规则在某些域相互交叠,使得这类算法在预处理阶段构建立决策树时,不可避免出现规则复制,带来严重的存储空间消耗。受限于高速存储器的容量,高速网络、大容量规则集下的报文分类算法必须解决内存消耗量大的问题。为此在预处理阶段需要对规则集进行合适的划分,使得规则子集内部的规则相互交叠的概率大幅降低,从而达到抑制规则复制、减少算法内存使用量的目的。划分规则集、建立多决策树结构的报文分类算法是本文研究的内容。   2相关工作   早期基于决策树的多域报文分类算法包括HiCuts算法[5]和HyperCuts算法[6],均折中考虑了分类速率与内存使用量,但它们采用均匀切分规则空间的启发式算法不可避免带来规则复制(见图2左图,R2在左侧子节点出现复制)。近年出现的HyperSplit算法[7]提出了沿投影端点非均匀切分规则空间的思路,减小了规则复制的概率,算法内存使用量大幅降低(见图2右图,没有规则复制),但HyperSplit对规则空间的二分处理导致决策树深度过大,算法基于FPGA实现的逻辑复杂度极高,使得系统无法提供满足需求的吞吐率。   3算法描述   本文算法包含两个部分:规则集划分算法和决策树构建算法。首先通过规则集划分算法将原始规则集划分为多个规则子集,然后对每个规则子集建立决策树,形成多决策树并行查找的系统架构。   3.3基于多决策树的报文分类算法   基于多决策树的报文分类算法包括3个部分:决策树构建、规则查找和规则更新。   3.3.1决策树构建   规则集划分完成后,对每个规则子集分别建立决策树。传统的决策树算法从根节点开始,利用选择切分维度和切分点的启发式算法,连续切分多维规则空间,直至节点对应规则子集包含的规则数量不大于预先设定的门限,该节点为决策树的一个叶节点。   本文对传统决策树结构进行改进,提出两级决策树级联算法[11]:1)对每棵决策树的根节点,由于其对应规则集中的规则在维度x上互不交叠,为降低决策树高度,保持规则数量在子节点分布均衡,采取沿x维度对规则等数量多点切分的方法;2)对每棵决策树根节点的子节点,以其作为根节点,按照HyperSplit算法建立第二级决策树,原因在于HyperSplit沿规则投影点切分规则空间的方法大大减少了算法内存使用量。决策树结构见图4。   3.3.2规则查找   基于决策树的报文分类算法按如下过程完成规则查找:报文到来后,提取头部关键字,逐层遍历决策树,直至找到叶节点,再线性查找叶节点对应的少量规则,输出匹配规则索引。在多决策树的报文分类系统中,上述过程在所有决策树中并行执行,最后通过优先级判决器,输出优先级最高的规则索引,见图5。   3.3.3规则更新   为提供足够吞吐率,一般基于决策树的报文分类算法通过将树形结构在FPGA上映射为多级深度流水线实现,而规则的增量更新通过在流水线中插入Write Bubble实现[12-13]。首先离线计算每级流水线待更新的节点内容,然后启动更新过程,插入wtite bubble。每一个write bubble分配一个标识符,当写使能位被置位后,write bubble用新的节点内容更新FPGA片上相应的双端口B

您可能关注的文档

文档评论(0)

guan_son + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档