选择数据包分类算法的方法和装置制造方法及图纸

技术编号:10308715 阅读:142 留言:0更新日期:2014-08-13 12:49
本发明专利技术公开了一种选择数据包分类算法的方法和装置。该方法包括:确定数据包的第一域的第一取值范围和对数据包进行分类的规则集中的规则在第一域上的第一范围的集合;根据第一取值范围和第一范围的集合,生成第一分割树;根据第一分割树,确定第一最大平衡距离;根据第一最大平衡距离,选择用于对数据包进行分类的数据包分类算法。本发明专利技术实施例根据规则集的范围分布情况在数据包分类算法之间进行选择,仅需要创建分割树,避免了对每个数据包分类算法进行分别创建决策树的操作。能够根据该分割树,快速的选择数据包分类算法,提高选择数据包分类算法的方法的效率。

【技术实现步骤摘要】
选择数据包分类算法的方法和装置
本专利技术涉及通信
,并且更具体地,涉及选择数据包分类算法的方法和装置。
技术介绍
数据包分类技术被广泛应用于各类网络设备中,是构建灵活可编程网络的关键技术。工业界一般采用三态内容寻址存储器(Ternary Content Addressable Memory,简称“TCAM”)来实现数据包分类,其主要缺点有功耗大,容量小,芯片尺寸大,价格昂贵。与TCAM对应的另一种数据包分类方法是算法解决方案。算法解决方案采用高性能算法,快速检索数据包分类规则,达到高性能数据包分类的目的。算法解决方案功耗小,价格低廉,因此,数据包分类算法具有很大的应用场景。不同的数据包分类算法具有不同的性能,因此,正确地选择数据包分类算法能够取得较好的性能。在大量已专利技术的数据包分类算法中,基于决策树的数据包分类算法是性能最优的一类算法。基于决策树的数据包分类算法的代表算法是HyperSplit算法和HyperCuts算法。但是,HyperCuts和HyperSplit算法存在创建决策树时间过长的问题。然而,现有技术中需要分别对HyperCuts算法和HyperSplit算法进行创建决策树,并通过比较两种数据包分类算法的建树结果来选择数据包分类算法对数据包进行分类。由于HyperCuts算法和HyperSplit算法创建决策树的时间过长,因此,该选择数据包分类算法的方法耗时过长,效率低。
技术实现思路
本专利技术实施例提供一种选择数据包分类算法的方法和装置,能够提高选择数据包分类算法的方法的效率。第一方面,提供了一种选择数据包分类算法的方法,该方法包括:确定数据包的第一域的第一取值范围和对该数据包进行分类的规则集中的规则在该第一域上的第一范围的集合;根据该第一取值范围和该第一范围的集合,生成第一分割树,该第一分割树的根节点代表的区间为该第一取值范围,该第一分割树的叶子节点代表的区间为该第一范围;根据该第一分割树,确定第一最大平衡距离,该第一最大平衡距离为该第一分割树的根节点所在的第一子树与该第一分割树的叶子节点所在的第二子树之间包含的子树的最大个数;根据该第一最大平衡距离,选择用于对该数据包进行分类的数据包分类算法。结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:确定该数据包的第二域的第二取值范围和对该数据包进行分类的该规则集中的规则在该第二域上的第二范围的集合;根据该第二取值范围和该第二范围的集合,生成第二分割树,该第二分割树的根节点代表的区间为该第二取值范围,该第二分割树的叶子节点代表的区间为该第二范围;根据该第二分割树,确定第二最大平衡距离,该第二最大平衡距离为该第二分割树的根节点所在的第三子树与该第二分割树的叶子节点所在的第四子树之间包含的该子树的最大个数;其中,该根据该第一最大平衡距离,选择用于对该数据包进行分类的数据包分类算法,包括:确定该第一最大平衡距离和该第二最大平衡距离的较大值;根据该较大值,选择用于对该数据包进行分类的数据包分类算法。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该第一域为源IP地址域,该第二域为目的IP地址域,或者该第一域为目的IP地址域,该第二域为源IP地址域。结合第一方面或第一方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,该根据该第一取值范围和该第一范围的集合,生成第一分割树,包括:根据该第一取值范围,生成该第一分割树的根节点;根据该第一取值范围,确定该第一分割树的根节点的第一分割点;从该第一范围的集合中选择第一窄范围的集合,该第一窄范围的长度与该第一取值范围的长度的比值小于第一数值;根据该第一取值范围、该第一分割点和该第一窄范围的集合,生成该第一分割树的子节点,该子节点代表的区间与该第一窄范围相交;根据该第一分割树的根节点和该第一分割树的子节点,生成该第一分割树,该第一分割树的叶子节点代表的区间为该第一窄范围。结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该根据该第一取值范围,确定该第一分割树的根节点的第一分割点,包括:根据公式Im=(Imax-1min+l)/2+Imin-l确定该第一分割点;其中,Im是该第一分割点,Imax是该第一取值范围的最大值,Imin是该第一取值范围的最小值。结合第一方面的第三种可能的实现方式或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,该根据该第一最大平衡距离,选择用于对该数据包进行分类的数据包分类算法,包括:根据该第一窄范围的集合,确定该第一窄范围的集合对应的第一规则数;根据该第一规则数,确定第一判断值;根据该第一最大平衡距离和该第一判断值,选择用于对该数据包进行分类的数据包分类算法。结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,该根据该第一规则数,确定第一判断值,包括:根据公式X = (log2numRules)/2确定该第一判断值;其中,X是该第一判断值,numRules是该第一规则数;其中,该根据该第一最大平衡距离和该第一判断值,选择用于对该数据包进行分类的数据包分类算法,包括:在该第一最大平衡距离大于该第一判断值时,选择HyperSplit算法;在该第一最大平衡距离小于或者等于该第一判断值时,选择HyperCuts算法。结合第一方面或第一方面的第一种至第六种可能的实现方式中的任一种可能的实现方式,在第一方面的第七种可能的实现方式中,该子树为准平衡子树,该根据该第一分割树,确定第一最大平衡距离,包括:根据该第一分割树,确定该第一分割树包含的该准平衡子树,该准平衡子树的k+Ι层的节点数与k层的节点数的比值大于或者等于第二数值,k为大于或者等于I的正整数;对该第一分割树进行深度优先遍历,确定该第一分割树的根节点所在的第一准平衡子树和该第一分割树的叶子节点所在的第二准平衡子树;确定该第一准平衡子树和该第二准平衡子树之间包含的该准平衡子树的最大个数为该第一最大平衡距离。结合第一方面的第三种至第六种可能的实现方式中的任一种可能的实现方式,在第一方面的第八种可能的实现方式中,该第一域为源IP地址域或目的IP地址域,该第一数值取0.05 ;该第一域为端口域或协议域,该第一数值取0.5。结合第一方面的第七种可能的实现方式,在第一方面的第九种可能的实现方式中,该第二数值取1.5-1.8之间任一数值。第二方面,提供了一种选择数据包分类算法的装置,该装置包括:第一确定模块,用于确定数据包的第一域的第一取值范围和对该数据包进行分类的规则集中的规则在该第一域上的第一范围的集合;生成模块,用于根据该第一取值范围和该第一范围的集合,生成第一分割树,该第一分割树的根节点代表的区间为该第一取值范围,该第一分割树的叶子节点代表的区间为该第一范围;第二确定模块,用于根据该第一分割树,确定第一最大平衡距离,该第一最大平衡距离为该第一分割树的根节点所在的第一子树与该第一分割树的叶子节点所在的第二子树之间包含的子树的最大个数;选择模块,用于根据该第一最大平衡距离,选择用于对该数据包进行分类的数据包分类算法。结合第二方面,在第二方面的第一种可能的实现方式中,该第一确定模块,还用于确定该数本文档来自技高网...
选择数据包分类算法的方法和装置

【技术保护点】
一种选择数据包分类算法的方法,其特征在于,包括:确定数据包的第一域的第一取值范围和对所述数据包进行分类的规则集中的规则在所述第一域上的第一范围的集合;根据所述第一取值范围和所述第一范围的集合,生成第一分割树,所述第一分割树的根节点代表的区间为所述第一取值范围,所述第一分割树的叶子节点代表的区间为所述第一范围;根据所述第一分割树,确定第一最大平衡距离,所述第一最大平衡距离为所述第一分割树的根节点所在的第一子树与所述第一分割树的叶子节点所在的第二子树之间包含的子树的最大个数;根据所述第一最大平衡距离,选择用于对所述数据包进行分类的数据包分类算法。

【技术特征摘要】
1.一种选择数据包分类算法的方法,其特征在于,包括: 确定数据包的第一域的第一取值范围和对所述数据包进行分类的规则集中的规则在所述第一域上的第一范围的集合; 根据所述第一取值范围和所述第 一范围的集合,生成第一分割树,所述第一分割树的根节点代表的区间为所述第一取值范围,所述第一分割树的叶子节点代表的区间为所述第一范围; 根据所述第一分割树,确定第一最大平衡距离,所述第一最大平衡距离为所述第一分割树的根节点所在的第一子树与所述第一分割树的叶子节点所在的第二子树之间包含的子树的最大个数; 根据所述第一最大平衡距离,选择用于对所述数据包进行分类的数据包分类算法。2.根据权利要求1所述的方法,其特征在于,还包括: 确定所述数据包的第二域的第二取值范围和对所述数据包进行分类的所述规则集中的规则在所述第二域上的第二范围的集合; 根据所述第二取值范围和所述第二范围的集合,生成第二分割树,所述第二分割树的根节点代表的区间为所述第二取值范围,所述第二分割树的叶子节点代表的区间为所述第二范围; 根据所述第二分割树,确定第二最大平衡距离,所述第二最大平衡距离为所述第二分割树的根节点所在的第三子树与所述第二分割树的叶子节点所在的第四子树之间包含的所述子树的最大个数; 其中,所述根据所述第一最大平衡距离,选择用于对所述数据包进行分类的数据包分类算法,包括: 确定所述第一最大平衡距离和所述第二最大平衡距离的较大值; 根据所述较大值,选择用于对所述数据包进行分类的数据包分类算法。3.根据权利要求2所述的方法,其特征在于,所述第一域为源IP地址域,所述第二域为目的IP地址域,或者所述第一域为目的IP地址域,所述第二域为源IP地址域。4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述第一取值范围和所述第一范围的集合,生成第一分割树,包括: 根据所述第一取值范围,生成所述第一分割树的根节点; 根据所述第一取值范围,确定所述第一分割树的根节点的第一分割点; 从所述第一范围的集合中选择第一窄范围的集合,所述第一窄范围的长度与所述第一取值范围的长度的比值小于第一数值; 根据所述第一取值范围、所述第一分割点和所述第一窄范围的集合,生成所述第一分割树的子节点,所述子节点代表的区间与所述第一窄范围相交; 根据所述第一分割树的根节点和所述第一分割树的子节点,生成所述第一分割树,所述第一分割树的叶子节点代表的区间为所述第一窄范围。5.根据权利要求4所述的方法,其特征在于,所述根据所述第一取值范围,确定所述第一分割树的根节点的第一分割点,包括: 根据公式4 =Imax —2/min +1+4;a -1确定所述第一分割点;其中,Im是所述第一分割点,Imax是所述第一取值范围的最大值,Ifflin是所述第一取值范围的最小值。6.根据权利要求4或5所述的方法,其特征在于,所述根据所述第一最大平衡距离,选择用于对所述数据包进行分类的数据包分类算法,包括: 根据所述第一窄范围的集合,确定所述第一窄范围的集合对应的第一规则数; 根据所述第一规则数,确定第一判断值; 根据所述第一最大平衡距离和所述第一判断值,选择用于对所述数据包进行分类的数据包分类算法。7.根据权利要求6所述的方法,其特征在于,所述根据所述第一规则数,确定第一判断值,包括: 根据公式I = l0g2 }WRl,leS确定所述第一判断值; 其中,X是所述第一判断值,numRules是所述第一规则数;其中, 所述根据所述第一最大平衡距离和所述第一判断值,选择用于对所述数据包进行分类的数据包分类算法,包括: 在所述第一最大平 衡距离大于所述第一判断值时,选择HyperSplit算法; 在所述第一最大平衡距离小于或者等于所述第一判断值时,选择HyperCuts算法。8.根据权利要求1-7中任一项所述的方法,其特征在于,所述子树为准平衡子树,所述根据所述第一分割树,确定第一最大平衡距离,包括: 根据所述第一分割树,确定所述第一分割树包含的所述准平衡子树,所述准平衡子树的k+Ι层的节点数与k层的节点数的比值大于或者等于第二数值,k为大于或者等于I的正整数; 对所述第一分割树进行深度优先遍历,确定所述第一分割树的根节点所在的第一准平衡子树和所述第一分割树的叶子节点所在的第二准平衡子树; 确定所述第一准平衡子树和所述第二准平衡子树之间包含的...

【专利技术属性】
技术研发人员:贺鹏丁万夫林程勇谢高岗关洪涛黄昆
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1