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

文档序号:7803154阅读:189来源:国知局
选择数据包分类算法的方法和装置制造方法
【专利摘要】本发明公开了一种选择数据包分类算法的方法和装置。该方法包括:确定数据包的第一域的第一取值范围和对数据包进行分类的规则集中的规则在第一域上的第一范围的集合;根据第一取值范围和第一范围的集合,生成第一分割树;根据第一分割树,确定第一最大平衡距离;根据第一最大平衡距离,选择用于对数据包进行分类的数据包分类算法。本发明实施例根据规则集的范围分布情况在数据包分类算法之间进行选择,仅需要创建分割树,避免了对每个数据包分类算法进行分别创建决策树的操作。能够根据该分割树,快速的选择数据包分类算法,提高选择数据包分类算法的方法的效率。
【专利说明】选择数据包分类算法的方法和装置
【技术领域】
[0001]本发明涉及通信【技术领域】,并且更具体地,涉及选择数据包分类算法的方法和装置。
【背景技术】
[0002]数据包分类技术被广泛应用于各类网络设备中,是构建灵活可编程网络的关键技术。工业界一般采用三态内容寻址存储器(Ternary Content Addressable Memory,简称“TCAM”)来实现数据包分类,其主要缺点有功耗大,容量小,芯片尺寸大,价格昂贵。与TCAM对应的另一种数据包分类方法是算法解决方案。算法解决方案采用高性能算法,快速检索数据包分类规则,达到高性能数据包分类的目的。算法解决方案功耗小,价格低廉,因此,数据包分类算法具有很大的应用场景。
[0003]不同的数据包分类算法具有不同的性能,因此,正确地选择数据包分类算法能够取得较好的性能。在大量已发明的数据包分类算法中,基于决策树的数据包分类算法是性能最优的一类算法。基于决策树的数据包分类算法的代表算法是HyperSplit算法和HyperCuts算法。但是,HyperCuts和HyperSplit算法存在创建决策树时间过长的问题。
[0004]然而,现有技术中需要分别对HyperCuts算法和HyperSplit算法进行创建决策树,并通过比较两种数据包分类算法的建树结果来选择数据包分类算法对数据包进行分类。由于HyperCuts算法和HyperSplit算法创建决策树的时间过长,因此,该选择数据包分类算法的方法耗时过长,效率低。

【发明内容】

[0005]本发明实施例提供一种选择数据包分类算法的方法和装置,能够提高选择数据包分类算法的方法的效率。
[0006]第一方面,提供了一种选择数据包分类算法的方法,该方法包括:确定数据包的第一域的第一取值范围和对该数据包进行分类的规则集中的规则在该第一域上的第一范围的集合;根据该第一取值范围和该第一范围的集合,生成第一分割树,该第一分割树的根节点代表的区间为该第一取值范围,该第一分割树的叶子节点代表的区间为该第一范围;根据该第一分割树,确定第一最大平衡距离,该第一最大平衡距离为该第一分割树的根节点所在的第一子树与该第一分割树的叶子节点所在的第二子树之间包含的子树的最大个数;根据该第一最大平衡距离,选择用于对该数据包进行分类的数据包分类算法。
[0007]结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:确定该数据包的第二域的第二取值范围和对该数据包进行分类的该规则集中的规则在该第二域上的第二范围的集合;根据该第二取值范围和该第二范围的集合,生成第二分割树,该第二分割树的根节点代表的区间为该第二取值范围,该第二分割树的叶子节点代表的区间为该第二范围;根据该第二分割树,确定第二最大平衡距离,该第二最大平衡距离为该第二分割树的根节点所在的第三子树与该第二分割树的叶子节点所在的第四子树之间包含的该子树的最大个数;其中,该根据该第一最大平衡距离,选择用于对该数据包进行分类的数据包分类算法,包括:确定该第一最大平衡距离和该第二最大平衡距离的较大值;根据该较大值,选择用于对该数据包进行分类的数据包分类算法。
[0008]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该第一域为源IP地址域,该第二域为目的IP地址域,或者该第一域为目的IP地址域,该第二域为源IP地址域。
[0009]结合第一方面或第一方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,该根据该第一取值范围和该第一范围的集合,生成第一分割树,包括:根据该第一取值范围,生成该第一分割树的根节点;根据该第一取值范围,确定该第一分割树的根节点的第一分割点;从该第一范围的集合中选择第一窄范围的集合,该第一窄范围的长度与该第一取值范围的长度的比值小于第一数值;根据该第一取值范围、该第一分割点和该第一窄范围的集合,生成该第一分割树的子节点,该子节点代表的区间与该第一窄范围相交;根据该第一分割树的根节点和该第一分割树的子节点,生成该第一分割树,该第一分割树的叶子节点代表的区间为该第一窄范围。
[0010]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该根据该第一取值范围,确定该第一分割树的根节点的第一分割点,包括:根据公式Im=(Imax-1min+l)/2+Imin-l确定该第一分割点;其中,Im是该第一分割点,Imax是该第一取值范围的最大值,Imin是该第一取值范围的最小值。
[0011]结合第一方面的第三种可能的实现方式或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,该根据该第一最大平衡距离,选择用于对该数据包进行分类的数据包分类算法,包括:根据该第一窄范围的集合,确定该第一窄范围的集合对应的第一规则数;根据该第一规则数,确定第一判断值;根据该第一最大平衡距离和该第一判断值,选择用于对该数据包进行分类的数据包分类算法。
[0012]结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,该根据该第一规则数,确定第一判断值,包括:根据公式X = (log2numRules)/2确定该第一判断值;其中,X是该第一判断值,numRules是该第一规则数;其中,该根据该第一最大平衡距离和该第一判断值,选择用于对该数据包进行分类的数据包分类算法,包括:在该第一最大平衡距离大于该第一判断值时,选择HyperSplit算法;在该第一最大平衡距离小于或者等于该第一判断值时,选择HyperCuts算法。
[0013]结合第一方面或第一方面的第一种至第六种可能的实现方式中的任一种可能的实现方式,在第一方面的第七种可能的实现方式中,该子树为准平衡子树,该根据该第一分割树,确定第一最大平衡距离,包括:根据该第一分割树,确定该第一分割树包含的该准平衡子树,该准平衡子树的k+Ι层的节点数与k层的节点数的比值大于或者等于第二数值,k为大于或者等于I的正整数;对该第一分割树进行深度优先遍历,确定该第一分割树的根节点所在的第一准平衡子树和该第一分割树的叶子节点所在的第二准平衡子树;确定该第一准平衡子树和该第二准平衡子树之间包含的该准平衡子树的最大个数为该第一最大平衡距离。
[0014]结合第一方面的第三种至第六种可能的实现方式中的任一种可能的实现方式,在第一方面的第八种可能的实现方式中,该第一域为源IP地址域或目的IP地址域,该第一数值取0.05 ;该第一域为端口域或协议域,该第一数值取0.5。
[0015]结合第一方面的第七种可能的实现方式,在第一方面的第九种可能的实现方式中,该第二数值取1.5-1.8之间任一数值。
[0016]第二方面,提供了一种选择数据包分类算法的装置,该装置包括:第一确定模块,用于确定数据包的第一域的第一取值范围和对该数据包进行分类的规则集中的规则在该第一域上的第一范围的集合;生成模块,用于根据该第一取值范围和该第一范围的集合,生成第一分割树,该第一分割树的根节点代表的区间为该第一取值范围,该第一分割树的叶子节点代表的区间为该第一范围;第二确定模块,用于根据该第一分割树,确定第一最大平衡距离,该第一最大平衡距离为该第一分割树的根节点所在的第一子树与该第一分割树的叶子节点所在的第二子树之间包含的子树的最大个数;选择模块,用于根据该第一最大平衡距离,选择用于对该数据包进行分类的数据包分类算法。
[0017]结合第二方面,在第二方面的第一种可能的实现方式中,该第一确定模块,还用于确定该数据包的第二域的第二取值范围和对该数据包进行分类的该规则集中的规则在该第二域上的第二范围的集合;该生成模块,还用于根据该第二取值范围和该第二范围的集合,生成第二分割树,该第二分割树的根节点代表的区间为该第二取值范围,该第二分割树的叶子节点代表的区间为该第二范围;该第二确定模块,还用于根据该第二分割树,确定第二最大平衡距离,该第二最大平衡距离为该第二分割树的根节点所在的第三子树与该第二分割树的叶子节点所在的第四子树之间的该子树的最大个数;其中,该选择模块,具体用于确定该第一最大平衡距离和该第二最大平衡距离的较大值;具体用于根据该较大值,选择用于对该数据包进行分类的数据包分类算法。
[0018]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该第一域为源IP地址域,该第二域为目的IP地址域,或者该第一域为目的IP地址域,该第二域为源IP地址域。
[0019]结合第二方面或第二方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,该生成模块,具体用于根据该第一取值范围,生成该第一分割树的根节点;具体用于根据该第一取值范围,确定该第一分割树的根节点的第一分割点;具体用于从该第一范围的集合中选择第一窄范围的集合,该第一窄范围的长度与该第一取值范围的长度的比值小于第一数值;具体用于根据该第一取值范围、该第一分割点和该第一窄范围的集合,生成该第一分割树的子节点,该子节点代表的区间与该第一窄范围相交;具体用于根据该第一分割树的根节点和该第一分割树的子节点,生成该第一分割树,该第一分割树的叶子节点代表的区间为该第一窄范围。
[0020]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,该生成模块,具体用于根据公式Im = (Imax-1min+l)/2+Imin-l确定该第一分割点;其中,Im是该第一分割点,Imax是该第一取值范围的最大值,Imin是该第一取值范围的最小值。
[0021]结合第二方面的第三种或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,该选择模块,用于根据该第一窄范围的集合,确定该第一窄范围的集合对应的第一规则数;用于根据该第一规则数,确定第一判断值;用于根据该第一最大平衡距离和该第一判断值,选择用于对该数据包进行分类的数据包分类算法。
[0022]结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,该选择模块,具体用于根据公式X = (log2numRules)/2确定该第一判断值;其中,X是该第一判断值,numRules是该第一规则数;其中,该选择模块,具体用于在该第一最大平衡距离大于该第一判断值时,选择HyperSplit算法;具体用于在该第一最大平衡距离小于或者等于该第一判断值时,选择HyperCuts算法。
[0023]结合第二方面或第二方面的第一种至第六种可能的实现方式中的任一种可能的实现方式,在第二方面的第七种可能的实现方式中,该子树为准平衡子树,该第二确定模块,用于根据该第一分割树,确定该第一分割树包含的该准平衡子树,该准平衡子树的k+1层的节点数与k层的节点数的比值大于或者等于第二数值,k为大于或者等于I的正整数;用于对该第一分割树进行深度优先遍历,确定该第一分割树的根节点所在的第一准平衡子树和该第一分割树的叶子节点所在的第二准平衡子树;用于确定该第一准平衡子树和该第二准平衡子树之间包含的该准平衡子树的最大个数为该第一最大平衡距离。
[0024]结合第二方面的第三种至第六种可能的实现方式中的任一种可能的实现方式,在第二方面的第八种可能的实现方式中,该第一域为源IP地址域或目的IP地址域,该第一数值取0.05 ;该第一域为端口域或协议域,该第一数值取0.5。
[0025]结合第二方面的第七种可能的实现方式,在第二方面的第九种可能的实现方式中,该第二数值取1.5-1.8之间任一数值。
[0026]本发明实施例根据规则集的范围分布情况在数据包分类算法之间进行选择,仅需要创建分割树,避免了对每个数据包分类算法进行分别创建决策树的操作。能够根据该分割树,快速的选择数据包分类算法,提高选择数据包分类算法的方法的效率。
【专利附图】

【附图说明】
[0027]为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028]图1是根据本发明一个实施例的选择数据包分类算法的方法的示意性流程图。
[0029]图2是根据本发明另一个实施例的选择数据包分类算法的方法的示意性流程图。
[0030]图3是根据本发明另一个实施例的选择数据包分类算法的方法的示意性流程图。
[0031]图4是根据本发明另一个实施例的选择数据包分类算法的方法的示意性流程图。
[0032]图5是根据本发明另一个实施例的选择数据包分类算法的方法的示意性流程图。
[0033]图6是根据本发明另一个实施例的选择数据包分类算法的方法的过程的示意性流程图。
[0034]图7是根据本发明一个实施例的选择数据包分类算法的装置的框图。
[0035]图8是根据本发明另一个实施例的装置的示意框图。
【具体实施方式】
[0036]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]应理解,本发明实施例的技术方案可以应用于各种通信系统,例如:全球移动通讯(Global System of Mobile communication, GSM)系统、码分多址(Code DivisionMultiple Access, CDMA)系统、宽带码分多址(Wideband Code Division MultipleAccess, WCDMA)系统、通用分组无线业务(General Packet Radio Service, GPRS)、长期演进(Long Term Evolution, LTE)系统、LTE 频分双工(Frequency Division Duplex, FDD)系统、LTE 时分双工(Time Division Duplex,TDD)、通用移动通信系统(Universal MobileTelecommunication System, UMTS)或全球互联微波接入(Worldwide Interoperabilityfor Microwave Access, WiMAX)通信系统等。
[0038]图1是根据本发明一个实施例的选择数据包分类算法的方法的示意性流程图。图1的方法可以由选择数据包分类算法的装置300执行。
[0039]110,确定数据包的第一域的第一取值范围和对该数据包进行分类的规则集中的规则在该第一域上的第一范围的集合。
[0040]数据包的第一域可以为该数据包包头的多个域中的一个域,该第一域的第一取值范围可以为该第一域可以取得的最大范围。该第一取值范围为该第一域的固有属性值,可以根据第一域的类型确定第一域的取值范围。例如,端口域的取值范围为[0,65535],IP地址域的取值范围为[O, 2~ (32)-1] 0
[0041]数据包包头中的域的个数为对该数据包进行分类的规则的维度。例如,一个数据包包头的域包括源IP地址,目的IP地址,源端口号,目的端口号和协议类型。则对该数据包进行分类的数据包分类规则为:
[0042]153.0.0.0/8224.0.0.0/80:6553580:80TCP->DR0P (规则 I)
[0043]其中,153.0.0.0/8表示该规则I在源IP地址域上的范围,224.0.0.0/8表示该规则I在目的IP地址域上的范围,0:65535表示该规则I在源端口域上的范围,80:80表示规则I在目的端口域上的范围。该规则I为5维规则,表示若该数据包包头的域满足源IP地址符合153.0.0.0/8,目的IP地址符合224.0.0.0/8,源端口处于0:65535,目的端口号为80,协议号是TCP协议时,则执行丢弃操作。
[0044]该规则集可以包括多个规则,该规则集中的每个规则在数据包的多个域上对应多个范围。每个规则均可以包括在第一域上的第一范围。该第一范围的集合可以表示为规则集的多个规则在第一域上的多个第一范围的集合。例如,规则集中的N个规则在第一域上的第一范围的集合包含的第一范围的个数可以为N个,也可以少于N个,本发明实施例并不限于此。
[0045]可选地,作为另一实施例,规则集中的规则在该第一域上的第一范围的集合的获取方式可以为通过扫描规则集中的每个规则的范围得出。例如,可以通过查询代码,查询第一范围,并可以通过存储代码,将查询到的第一范围进行存储,以便于在创建第一分割树时使用。
[0046]120,根据该第一取值范围和该第一范围的集合,生成第一分割树,该第一分割树的根节点代表的区间为该第一取值范围,该第一分割树的叶子节点代表的区间为该第一范围。
[0047]具体地,根据该第一取值范围和该第一范围的集合,生成的第一分割树可以用来衡量规则集中的第一范围分布的均匀性。例如,第一范围的分布越均匀,则该第一分割树越接近于满二叉树。
[0048]根据该第一取值范围,可以确定该第一分割树的根节点代表的区间,根据该第一取值范围和该第一范围的集合,可以确定该第一分割树的子节点代表的区间。
[0049]应理解,该第一分割树包含一个根节点,该第一分割树的根节点代表一个区间,该根节点代表的一个区间可以为数据包的第一域的取值范围。例如,数据包的域有四个比特,则该域的取值范围为[0,15]。根据该域的取值范围可以确定根节点代表的区间为[0,15]。
[0050]还应理解,该第一分割树包含至少一个叶子节点,该第一分割树的每个叶子节点可以代表一个区间,该第一分割树的至少一个叶子节点可以代表与至少一个叶子节点对应的至少一个区间。该第一分割树的至少一个叶子节点的至少一个区间可以为该规则集中的规则在第一域的第一范围。
[0051]130,根据第一分割树,确定第一最大平衡距离,该第一最大平衡距离为该第一分割树的根节点所在的第一子树与该第一分割树的叶子节点所在的第二子树之间包含的子树的最大个数。
[0052]可选地,作为另一实施例,该子树可以为满足一定条件的二叉树。平衡距离可以表示分割树的根节点所在的子树到分割树的叶子节点所在的子树中间包含的子树的个数。最大平衡距离可以表示该分割树所有的平衡距离中最大的一个。根节点所在的子树、叶子节点所在的子树和包含的子树可以相同也可以不同,也可以为同时满足一定条件的二叉树,本发明实施例并不限于此。
[0053]该第一分割树的根节点所在的第一子树、该第一分割树的叶子节点所在的第二子树和两者中间包含的子树可以相同也可以不相同,也可以为同时满足一定条件的二叉树,本发明实施例并不限于此。
[0054]该第一分割树的每个叶子节点都对应一个平衡距离,则该平衡距离中的最大值可以为第一最大平衡距离。
[0055]140,根据该第一最大平衡距离,选择用于对该数据包进行分类的数据包分类算法。
[0056]可选地,作为另一实施例,基于决策树的数据包分类算法是性能较优的一个数据包分类算法。基于决策树的数据包分类算法可以包括HyperSplit算法和HyperCuts算法,选择数据包分类算法的方法可以为从该HyperSplit算法和HyperCuts算法中选择合适的数据包分类算法,对数据包进行分类。
[0057]可选地,作为另一实施例,根据该第一最大平衡距离,选择数据包分类算法,可以通过分析该第一最大平衡距离来选择数据包分类算法,也可以将该第一最大平衡距离与某一阈值进行比较,根据比较的结果选择数据包分类算法,本发明实施例并不限于此。
[0058]本发明实施例根据规则集的范围分布情况在数据包分类算法之间进行选择,仅需要创建分割树,避免了对每个数据包分类算法进行分别创建决策树的操作。能够根据该分割树,快速的选择数据包分类算法,提高选择数据包分类算法的方法的效率。
[0059]图2是根据本发明另一个实施例的选择数据包分类算法的方法的示意性流程图。如图2所示,可选地,该方法还包括:
[0060]150,确定数据包的第二域的第二取值范围和对该数据包进行分类的规则集中的规则在该第二域上的第二范围的集合;
[0061]160,根据该第二取值范围和该第二范围的集合,生成第二分割树,该第二分割树的根节点代表的区间为该第二取值范围,该第二分割树的叶子节点代表的区间为该第二范围;
[0062]170,根据该第二分割树,确定第二最大平衡距离,该第二最大平衡距离为该第二分割树的根节点所在的第三子树与该第二分割树的叶子节点所在的第四子树之间包含的子树的最大个数;
[0063]应理解,步骤150,160, 170的技术方案与步骤110,120, 130的技术方法相同,此处
为避免重复,在权利要求和说明书中省略确定第二最大平衡的步骤。
[0064]其中,140,根据该第一最大平衡距离,选择用于对数据包进行分类的数据包分类算法,包括:
[0065]140A,确定该第一最大平衡距离和该第二最大平衡距离的较大值;
[0066]140B,根据该较大值,选择用于对该数据包进行分类的数据包分类算法。
[0067]可选地,作为另一实施例。本发明实施例可以针对一个域的范围分布情况进行创建分割树,确定该分割树的最大平衡距离;也可以针对两个域的范围分布情况分别创建两个分割树。根据该两个分割树,分别确定最大平衡距离。根据该两个最大平衡距离中的较大值来选择数据包分类算法。可选地,也可以针对多个域的范围分布情况分别创建对应的多个分割树。根据该多个分割树,分别确定对应的多个最大平衡距离。根据该多个最大平衡距离中的最大值来选择数据包分类算法,本发明实施例并不限于此。
[0068]本发明实施例根据规则集在多个域上的范围的分布情况在数据包分类算法之间进行选择,创建对应的多个分割树。分别确定对应的多个最大平衡距离,根据该多个最大平衡距离的最大值选择数据包分类算法。能够提高选择数据包分类算法的方法的准确性。该方法避免了对每个数据包分类算法进行分别创建决策树的操作,提高选择数据包分类算法的方法的效率和准确性。
[0069]可选地,作为另一个实施例。该第一域可以为源IP地址域,该第二域可以为目的IP地址域,或者该第一域为目的IP地址域,该第二域为源IP地址域。根据源IP地址域和目的IP地址域对应的第一范围和第二范围,分别生成两个对应的分割树。根据该两个分割树,则分别确定源IP地址域对应的最大平衡距离Dsrc和目的IP地址域对应的最大平衡距离Ddst。根据该两个最大平衡距离中的较大值来选择数据包分类算法对数据包进行分类。
[0070]本发明实施例提供的选择数据包分类算法的方法,根据源IP地址域对应的范围和目的IP地址域对应的范围分别创建分割树,确定该两个分割树对应的两个最大平衡距离中的较大值。比较较大值和从源IP地址域对应的范围和目的IP地址域对应的范围中选择的满足条件的窄范围对应的规则的个数,从HyperSplit算法和HyperCuts算法中选择数据包分类算法。该方法避免了对每个数据包分类算法进行分别创建决策树的操作,能够快速的选择数据包分类算法,提高选择数据包分类算法的方法的效率。
[0071]图3是根据本发明另一个实施例的选择数据包分类算法的方法的示意性流程图。如图3所示,根据第一取值范围和第一范围的集合,生成第一分割树,包括:
[0072]121,根据该第一取值范围,生成该第一分割树的根节点。
[0073]具体地,该第一分割树的每个节点代表一个区间,该第一取值范围可以作为该第一分割树的根节点所代表的区间。例如,数据包的域有四个比特,则该域的取值范围为[O,15]。根据该域的取值范围可以确定根节点代表的区间为[O,15]。
[0074]122,根据该第一取值范围,确定该第一分割树的根节点的第一分割点。
[0075]可选地,该第一分割点可以根据经验从该第一取值范围中包含的数值中选择一个数值作为该第一分割点,也可以取该第一取值范围的中间值作为该第一分割点,也可以通过计算确定该第一分割点,本发明实施例并不限于此。
[0076]可选地,作为另一实施例。选择该第一分割点的计算方法可以为:
[0077]Ia =7丽_《-+1+/_ -1
[0078]其中,Im是该第一分割点,Imax是该第一取值范围的最大值,Ifflin是该第一取值范围的最小值。例如,该第一取值范围是[0,15],则可以表示为[Imin,Imax]。其中,Imin = O, Imax=15,根据上述公式计算,可以得到Im = 7ο
[0079]123,从第一范围的集合中选择第一窄范围的集合,该第一窄范围的长度与该第一取值范围的长度的比值小于第一数值。
[0080]可以基于第一范围的集合生成第一分割树,该第一范围可以为长度较短的第一窄范围。该第一窄范围可以满足该第一窄范围的长度与该第一取值范围的长度的比值小于第一数值。也可以为基于其他方法定义的自定义的范围,本发明实施例并不限于此。
[0081]可选地,作为另一实施例。第一域为源IP地址域或目的IP地址域,该第一数值可以取0.05。第一域为端口域或协议域,该第一数值可以取0.5。例如,若规则集中规则的第一范围表示为(FyF11),则该第一范围满足第一窄范围的条件可以为:1)如果是源IP地址域或目的IP地址域,则(Fh-FJI)/Ien⑴〈0.05。2)如果是端□域或者协议域,则(Fh-FJI)/len(I)〈0.5。其中,I表示数据包的第一域的第一取值范围,Ien(I)表示该第一域的第一取值范围的长度。
[0082]可选地,作为另一实施例。该第一数值的取值也可以取其他数值,例如0.045、
0.046,0.047,0.048,0.049,0.051,0.052等。满足基于该其他数值确定的长度较短的窄范围可以生成分割树,并根据该分割树可以准确地选择数据包分类算法。对于该第一数值的取值,本发明实施例并不限于此。
[0083]124,根据该第一取值范围、该第一分割点和该第一窄范围的集合,生成该第一分割树的子节点,该子节点代表的第一范围与该第一窄范围相交。
[0084]应理解,该第一分割树的子节点包括除根节点的其他节点,该其他节点包括该第一分割树的叶子节点和该第一分割树的中间节点。
[0085]根据该第一取值范围和该第一分割点,可以生成该第一分割树的根节点的左节点和右节点。具体地,该第一分割点可以把该第一分割树的根节点代表的区间分为该第一分割树的根节点的左右节点分别代表的两个区间。例如,该第一取值范围为[0,15],根据上述公式可以确定分割点为7。根据该分割点7,确定该根节点的左右节点代表的区间分别为[O, 7]和[8,15]。
[0086]可选地,作为另一实施例。该第一分割树除去根节点和该根节点的左右节点的其他子节点的生成过程可以为与该根节点的左右节点的生成过程相同,即通过确定分割点,将父节点的区间分为该父节点的左右节点的两个区间。[0087]生成的该第一分割树的子节点可以满足该子节点代表的区间与该第一窄范围相交,并删除不满足条件的子节点。可选地,相交的定义可以为:若范围I为(FmFih),范围2为(匕,F2h),若不满足F1H〈Fa或F2H〈F^则称该范围I和范围2相交。
[0088]以上生成该第一分割树的子节点的迭代过程直到该第一分割树的子节点代表的区间为该第一窄范围时,停止迭代过程。将所代表的区间为第一窄范围的子节点可以作为该第一分割树的叶子节点。例如,该第一取值范围为[0,15],可以确定分割点为7。根据该分割点7,确定该根节点的左右节点代表的区间分别为[0,7]和[8,15]。分别确定左右节点作为父节点的分割点3和11,则该左节点的左右节点所代表的两个区间可以为[0,3]和[3,7],该右节点的左右节点所代表的两个区间可以为[8,11]和[12,15],依次类推可依次确定分割树中每个子节点所代表的区间依次为[O, 7]、[8,15]、[O, 3]、[3,7]、[8,11]、[12,15]、[O, I]、[2,3]、[8,9]和[10,11]。若第一窄范围包括[2,3]、[8,9]和[12,15],在保证该第一分割树的叶子节点所代表的区间为该第一窄范围且该子节点代表的区间与该第一窄范围相交,可以将不满足相交条件的节点删除。因此,依次确定的子节点代表的区间删除[3,7]、[O, I]和[10,11]。因此可以确定该第一分割树的叶子节点代表的区间为[2,3]、[8,9]和[12,15] ο
[0089]125,根据该第一分割树的根节点和该第一分割树的子节点,生成该第一分割树,该第一分割树的叶子节点代表的区间为该第一窄范围。
[0090]本发明实施例根据规则集的范围分布情况在数据包分类算法之间进行选择,仅根据规则集的范围创建分割树,通过该分割树的叶子节点代表的区间量化范围分布的均匀性。该方法避免了对每个数据包分类算法进行分别创建决策树的操作,能够根据该分割树的量化结果,快速的选择数据包分类算法,提高选择数据包分类算法的方法的效率。
[0091] 可选地,作为另一实施例,该生成第一分割树的方法可以由代码实现。具体实现方式可以如下列代码所示:
[0092]
【权利要求】
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 }W"Rl,leS确定所述第一判断值; 其中,X是所述第一判断值,numRules是所述第一规则数;其中, 所述根据所述第一最大平衡距离和所述第一判断值,选择用于对所述数据包进行分类的数据包分类算法,包括: 在所述第一最大平 衡距离大于所述第一判断值时,选择HyperSplit算法; 在所述第一最大平衡距离小于或者等于所述第一判断值时,选择HyperCuts算法。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述子树为准平衡子树,所述根据所述第一分割树,确定第一最大平衡距离,包括: 根据所述第一分割树,确定所述第一分割树包含的所述准平衡子树,所述准平衡子树的k+Ι层的节点数与k层的节点数的比值大于或者等于第二数值,k为大于或者等于I的正整数; 对所述第一分割树进行深度优先遍历,确定所述第一分割树的根节点所在的第一准平衡子树和所述第一分割树的叶子节点所在的第二准平衡子树; 确定所述第一准平衡子树和所述第二准平衡子树之间包含的所述准平衡子树的最大个数为所述第一最大平衡距离。
9.根据权利要求4-7中任一项所述的方法,其特征在于, 所述第一域为源IP地址域或目的IP地址域,所述第一数值取0.05 ; 所述第一域为端口域或协议域,所述第一数值取0.5。
10.根据权利要求8所述的方法,其特征在于,所述第二数值取1.5-1.8之间任一数值。
11.一种选择数据包分类算法的装置,其特征在于,包括: 第一确定模块,用于确定数据包的第一域的第一取值范围和对所述数据包进行分类的规则集中的规则在所述第一域上的第一范围的集合; 生成模块,用于根据所述第一取值范围和所述第一范围的集合,生成第一分割树,所述第一分割树的根节点代表的区间为所述第一取值范围,所述第一分割树的叶子节点代表的区间为所述第一范围; 第二确定模块,用于根据所述第一分割树,确定第一最大平衡距离,所述第一最大平衡距离为所述第一分割树的根节点所在的第一子树与所述第一分割树的叶子节点所在的第二子树之间包含的子树的最大个数;选择模块,用于根据所述第一最大平衡距离,选择用于对所述数据包进行分类的数据包分类算法。
12.根据权利要求11所述的装置,其特征在于, 所述第一确定模块,还用于确定所述数据包的第二域的第二取值范围和对所述数据包进行分类的所述规则集中的规则在所述第二域上的第二范围的集合; 所述生成模块,还用于根据所述第二取值范围和所述第二范围的集合,生成第二分割树,所述第二分割树的根节点代表的区间为所述第二取值范围,所述第二分割树的叶子节点代表的区间为所述第二范围; 所述第二确定模块,还用于根据所述第二分割树,确定第二最大平衡距离,所述第二最大平衡距离为所述第二分割树的根节点所在的第三子树与所述第二分割树的叶子节点所在的第四子树之间的所述子树的最大个数; 其中,所述选择模块, 具体用于确定所述第一最大平衡距离和所述第二最大平衡距离的较大值; 具体用于根据所述较大值,选择用于对所述数据包进行分类的数据包分类算法。
13.根据权利要求12所述的装置,其特征在于,所述第一域为源IP地址域,所述第二域为目的IP地址域,或者所述第一域为目的IP地址域,所述第二域为源IP地址域。
14.根据权利要求11-13中任一项所述的装置,其特征在于,所述生成模块, 具体用于根据所述第一取值范围,生成所述第一分割树的根节点; 具体用于根据所述第一取值范围,确定所述第一分割树的根节点的第一分割点; 具体用于从所述第一范围的集合中选择第一窄范围的集合,所述第一窄范围的长度与所述第一取值范围的长度的比值小于第一数值; 具体用于根据所述第一取值范围、所述第一分割点和所述第一窄范围的集合,生成所述第一分割树的子节点,所述子节点代表的区间与所述第一窄范围相交; 具体用于根据所述第一分割树的根节点和所述第一分割树的子节点,生成所述第一分割树,所述第一分割树的叶子节点代表的区间为所述第一窄范围。
15.根据权利要求14所述的装置,其特征在于,所述生成模块,具体用于根据公式
16.根据权利要求14或15所述的装置,其特征在于,所述选择模块, 用于根据所述第一窄范围的集合,确定所述第一窄范围的集合对应的第一规则数; 用于根据所述第一规则数,确定第一判断值; 用于根据所述第一最大平衡距离和所述第一判断值,选择用于对所述数据包进行分类的数据包分类算法。
17.根据权利要求16所述的装置,其特征在于,所述选择模块,具体用于根据公式
18.根据权利要求11-17中任一项所述的装置,其特征在于,所述子树为准平衡子树,所述第二确定模块, 用于根据所述第一分割树,确定所述第一分割树包含的所述准平衡子树,所述准平衡子树的k+1层的节点数与k层的节点数的比值大于或者等于第二数值,k为大于或者等于1的正整数; 用于对所述第一分割树进行深度优先遍历,确定所述第一分割树的根节点所在的第一准平衡子树和所述第一分割树的叶子节点所在的第二准平衡子树; 用于确定所述第一准平衡子树和所述第二准平衡子树之间包含的所述准平衡子树的最大个数为所述第一最大平衡距离。
19.根据权利要求14-17中任一项所述的装置,其特征在于, 所述第一域为源IP地址域或目的IP地址域,所述第一数值取0.05 ; 所述第一域为端口域或协议域,所述第一数值取0.5。
20.根据权利要求18所述的装置,其特征在于,所述第二数值取1.5-1.8之间任一数值。
【文档编号】H04L12/861GK103986667SQ201410190571
【公开日】2014年8月13日 申请日期:2014年5月7日 优先权日:2014年5月7日
【发明者】贺鹏, 丁万夫, 林程勇, 谢高岗, 关洪涛, 黄昆 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1