CN106209614A - 一种网包分类方法和装置 - Google Patents
一种网包分类方法和装置 Download PDFInfo
- Publication number
- CN106209614A CN106209614A CN201510217646.XA CN201510217646A CN106209614A CN 106209614 A CN106209614 A CN 106209614A CN 201510217646 A CN201510217646 A CN 201510217646A CN 106209614 A CN106209614 A CN 106209614A
- Authority
- CN
- China
- Prior art keywords
- rule
- sub
- collection
- dimension
- cut
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种网包分类方法和装置,其中方法包括:采用循环分组法对初始规则集进行分组,生成预设数目的子规则集,循环分组法包括:由待分组的规则集集合中选取规则集交叠率最高的目标规则集,根据切分点对目标规则集进行切分得到两个子规则集,所述两个子规则集中的其中一个子规则集的规则集交叠率小于另一个子规则集的规则集交叠率;将所述两个子规则集放入规则集集合中,并继续对规则集集合中的子规则集进行切分,直至规则集集合中的子规则集的数目达到预设数目;分别对每一个子规则集进行建树,得到与子规则集对应的决策树,决策树用于对网包进行分类处理。本发明提高了决策树的生成效率。
Description
技术领域
本发明涉及网络技术,特别涉及一种网包分类方法和装置。
背景技术
网包分类大致可理解为根据配置的分类规则,对网包包头中各个不同字段的值进行处理,得到匹配的分类规则,并执行该规则配置的操作动作。许多网络设备提供的诸如访问控制、流量控制、负载均衡、入侵检测等功能均需要用到网包分类。相关技术中一种常用的网包分类方法是基于决策树的网包分类,决策树是根据预设的规则集(规则集包括很多分类规则)生成的描述网包分类过程的一种数据结构,当网络设备接收到网包时,将按照该决策树限定的分类过程最终找到与网包匹配的分类规则,并按照分类规则中的操作动作对网包进行处理,比如丢弃网包或者接受网包等。
目前的问题是,在生成上述决策树的过程中可能会出现规则复制现象,即某个分类规则由于覆盖了分割点而被一分为二,从而导致决策树的节点太多,决策树规模过大;用于存储决策树的存储器无法支持如此大的信息量,限制了决策树对应的规则集规模;而且较大的决策树也使得决策树的生成时间太长,效率太低,决策树生成慢也使得对应的网包分类的效率降低。
发明内容
有鉴于此,本发明提供一种网包分类方法和装置,以降低用于进行网包分类的决策树的规模,提高决策树的生成效率。
具体地,本发明是通过如下技术方案实现的:
第一方面,提供一种网包分类方法,包括:
采用循环分组法对初始规则集进行分组,生成预设数目的子规则集,所述循环分组法包括:由待分组的规则集集合中选取规则集交叠率最高的目标规则集,根据切分点对所述目标规则集进行切分得到两个子规则集,所述两个子规则集中的其中一个子规则集的规则集交叠率小于另一个子规则集的规则集交叠率;将所述两个子规则集放入所述规则集集合中,并继续对所述规则集集合中的子规则集进行切分,直至所述规则集集合中的子规则集的数目达到所述预设数目;
分别对每一个所述子规则集进行建树,得到与所述子规则集对应的决策树,所述决策树用于对网包进行分类处理。
第二方面,提供一种网包分类装置,包括:
分组模块,用于采用循环分组法对初始规则集进行分组,生成预设数目的子规则集,所述循环分组法包括:由待分组的规则集集合中选取规则集交叠率最高的目标规则集,根据切分点对所述目标规则集进行切分得到两个子规则集,所述两个子规则集中的其中一个子规则集的规则集交叠率小于另一个子规则集的规则集交叠率;将所述两个子规则集放入所述规则集集合中,并继续对所述规则集集合中的子规则集进行切分,直至所述规则集集合中的子规则集的数目达到所述预设数目;
建树模块,用于分别对每一个所述子规则集进行建树,得到与所述子规则集对应的决策树,所述决策树用于对网包进行分类处理。
本申请实施例提供的网包分类方法和装置,通过将规则集分组成交叠率不同的两个子规则集,并针对该子规则集进行建树,这种方式就可以实现对用于进行网包分类的决策树规模的降低,提高决策树的生成效率。
附图说明
图1是一个例子中网包分类的原理图;
图2是一个例子中决策树的结构形式图;
图3是一个例子中网包分类方法的流程图;
图4是一个例子中网包分类装置的结构图;
图5是一个例子中循环分组法的示意图;
图6是一个例子中的使用循环分组法的分组流程图;
图7是一个例子中网包分类装置的结构图;
图8是一个例子中网包分类装置的结构图;
图9是一个例子中传统方式的全补洞决策树示意图;
图10是一个例子中部分补洞方式下的决策树示意图;
图11是一个例子中的决策树结构示意图;
图12是一个例子中的节点合并示意图;
图13是一个例子中网包分类装置的结构图;
图14是一个例子中的网包分类方法的实施效果图一;
图15是一个例子中的网包分类方法的实施效果图二。
具体实施方式
在网络设备提供的诸如访问控制、流量控制、入侵检测等功能中,均可能使用到“网包分类”,网包分类例如是网络设备对接收到的网包(Packet),根据决策树进行分类规则的匹配查找,最终得到与该网包匹配的分类规则,按照该分类规则中的操作动作对网包进行处理(例如,丢弃网包)。
上述的网包分类过程可以参见图1的示例,图1简单示例了网包分类的原理。如图1所示,网包分类实际上是从规则集11中找到与待分类的网包12匹配的分类规则,规则集11包括很多分类规则,该分类规则例如是下表1的形式:
表1分类规则
Rule ID | 源IP | 目的IP | 源端口 | 目的端口 | 操作动作 |
001 | 0.0.0.0/0 | 10.0.8.28/32 | 80 | 0~65535 | 丢弃 |
如表1所示,是示例的一种分类规则的形式;需要说明的是,表1只是示 例了分类规则的其中一部分信息,分类规则还可以包括其他信息(比如,该规则的优先级)。规则集11中包括很多这样的分类规则,待分类的网包12,如果其中的各个字段能够匹配上述表1中的各个字段,则表明网包与分类规则匹配;例如,网包12中包括的源IP、目的IP、源端口和目的端口,均与表1中各字段匹配,那么表1的分类规则就是与网包12匹配的分类规则,将按照该分类规则对应的操作动作“丢弃”来处理网包12,即将网包12丢弃。
而图1即示意了如何从规则集11中查找到与网包12匹配的分类规则的过程,整个过程可以包括三部分:分组、建树和查找;如下:
分组器(Tree Splitter)执行的分组处理:对一个规则集执行决策树的建树算法时,通常不可避免地会产生规则裂变和复制,同时随着规则之间重叠情况的加剧,进而导致决策树的规模发生爆炸;将规则集划分为更小的子集可以减少规则之间的重叠度,再分别针对每个子集进行建树将有效减少最终生成决策树的规模。基于此,才要进行规则集的分组,并分别针对各个分组进行建树。
例如,规则集11中包括很多的分类规则,本实施例将该规则集中的分类规则进行分组,得到很多的子规则集;例如,假设规则集11中有50条分类规则,本步骤将规则集分成了三个子规则集,一个子规则集包括10条规则,另一个子规则集包括20条规则,另一个子规则集也包括20条规则。
建树器(Tree Builder)执行的建树处理:本步骤是对“分组”步骤中得到的各个子规则集,分别使用建树算法进行决策树的建立,每一个子规则集经过建树步骤都能得到对应该子规则集的决策树,如图1中所示的其中一个决策树13。决策树是描述分类过程的一种数据结构,图2示例了一种决策树的结构形式。
结合图2,决策树相当于描述了一种分类过程,假设在图2中所示的决策树寻找二维空间点P(3,2)为例,该P(3,2)表示待分类的网包中具有两个维度,一个维度X是“源IP”,另一个维度Y是“目的端口号”(仅是举例),并且每一个维度都可以用数字来表示,源IP的取值代表数字是3,目的端口号取值代表数字是2,那么为P(3,2)寻找匹配的分类规则,即寻找源IP和目的端口 号能与上述网包对应维度的取值相同的分类规则。
在图2中,查找流程如下:从决策树根节点开始沿树进行查找,在决策树根节点位置进行匹配,根节点Cut 1以维度Y作为分割维度,以阈值3作为分割点,而P点在维度Y上是2,小于3,故查找逻辑转向根节点的左孩子节点(left child node)继续递归地进行查找;此时在节点Cut 2处的分割维度为X,分割点是阈值2,而P点的维度X的取值是3,大于等于2,故查找逻辑转向该节点的右孩子节点(right child node)继续递归地进行查找,以此类推,查找逻辑顺着虚线箭头所指的路径直至叶子节点得到匹配的分类规则是R5,即与P(3,2)表示的网包对应的规则是R5。可见,在决策树中涉及到两个关键因素,即分割维度和分割点,按照分割维度和分割点依次将网包进行分类。如上所述,在决策树中可以使用“分割”(cut),分割维度是根据决策树进行分类规则查找时用于指示查找路径的规则维度信息,而分割点是在根据分割维度进行规则查找时在该维度上的阈值,用于根据该阈值指示在该维度上的不同查找路径。
如图1所示,上述的“分组”和“建树”步骤,可以是均由中央处理器(Central Processing Unit,简称:CPU)执行,由CPU执行逻辑指令对规则集11进行分组和建树的处理,得到多个决策树。并且,CPU可以将上述各个决策树下发到硬件现场可编程门阵列(Field-Programmable Gate Array,简称:FPGA),由FPGA接收待分类的网包12,并根据CPU下发的决策树进行分类规则的查找。
查找处理:本步骤是由FPGA执行,在上一步骤的“建树”中,CPU得到的分别对应各个子规则集的决策树,将分别下发到各个查找引擎(Lookup Engine)14中,查找引擎14可以是负责根据决策树进行匹配规则查找的应将。FPGA在接收到网包12后,各个查找引擎都将会根据各自的决策树进行查找,得到与网包12匹配的规则。最后各个查找引擎得到的分类规则都将送入优先级仲裁器(Priority Arbitrator)15,由优先级仲裁器按照分类规则的优先级信息进行排序,选取优先级最高的分类规则作为与网包12匹配的分类规则输出。例如可以是输出匹配的分类规则的规则号(Rule ID),根据规则号再得到对应的分类规则。
在上述基本原理介绍的基础上,下面描述本发明实施例的网包分类方法。 图3示例了一种网包分类方法的流程,可以包括:
301、采用循环分组法对初始规则集进行分组,生成预设数目的子规则集,所述循环分组法包括:由待分组的规则集集合中选取规则集交叠率最高的目标规则集,根据切分点对所述目标规则集进行切分得到两个子规则集,所述两个子规则集中的其中一个子规则集的规则集交叠率小于另一个子规则集的规则集交叠率;将所述两个子规则集放入所述规则集集合中,并继续对规则集集合中的子规则集进行切分,直至所述规则集集合中的子规则集的数目达到所述预设数目;
302、分别对每一个子规则集进行建树,得到与子规则集对应的决策树,所述决策树用于对网包进行分类处理。
其中,在图3所示的流程中,主要是对上述的“分组”步骤进行了改进,在将规则集划分为各个子规则集时,遵循如下规则:将大的规则集切分成一个较大的较简单的子集、以及一个较小的较复杂的子集,按照这种规则集的切分规则进行分组,将有助于降低用于进行网包分类的决策树的规模,缩短决策树的生成时间。可选的,本实施例也可能会出现上述切分得到的两个子集包括的分类规则数目相同的情况。
这种分组规则的改进对应于图1中的“分组器”部分的逻辑指令,这部分逻辑指令可以是存储在CPU的存储器中,并由CPU的处理器调用该指令执行对规则集进行分组的操作。如图4所示,该分组器的逻辑指令对应于存储器中的分组模块41,存储器中还包括建树模块42,其中,分组模块41用于执行步骤301的处理,建树模块42用于执行步骤302的处理。
在步骤301中,可以采用“循环分组法”对初始的规则集进行分组,得到预设数目的子规则集。结合参见图5,示例了该循环分组法的原理,在图5所示的循环分组法进行规则集分组的操作中,将涉及到如下几个基本概念,这些概念是对于一个规则集而言的,对于一个给定的规则集(RS,rule set)来说,这些参数均是固定的。
交叠率(overlap_rate,olr):该参数是针对某条分类规则在某个维度而言 的。对于一个指定维度D,该分类规则所在的规则集中的所有规则在这个维度上的分割点可以构成一个分割点集合(例如,在图2所示的例子中,维度X上的分割点2,维度Y上的分割点3等),每两个相邻的分割点可以构成一个封闭的分割区段,即分割区段是两个分割点之间的区域。对于某条规则而言,该分类规则在所述维度上的取值所覆盖的分割区段个数定义为该条规则在该维度上的交叠率olr,该交叠率的值为一个大于1的整数。
平均交叠率(avg_olr):该参数是针对某个维度而言的。对于一个指定维度D而言,所有分类规则在这个维度上的交叠率求和除以规则总数,被定义为维度D的平均交叠率。
交叠率权重(p_olr):该参数依然是针对某条规则在某个维度而言的。对于一个指定维度D而言,规则集中所有规则的交叠率均可以求出,假设规则集中有n_rules条分类规则,每条规则都有自己在该维度上的交叠率,则维度D上的交叠率个数也是n_rules个,将这些交叠率按照取值从小到大排序,其中规则r1可能排在的位置i∈(0,n_rules-1),此时规则r1的交叠率权重p_olr定义为:p_olr=((i+1)*100)/(n_rules)%。
规则集的切分点(p_cr):切分点包括两个关键参数,即切分维度dim_c和切分点交叠率权重p_olr_c,并且,p_olr_c是对应于dim_c指定的维度而言。假设对于一个选定的p_olr_c,将规则集划分为两个子规则集,分别为sub_l和sub_r,其中,sub_l中的每条分类规则在维度dim_c上的p_olr均小于等于p_olr_c,而sub_r中的每条分类规则在维度dim_c上的p_olr均大于p_olr_c。例如,可以将包含N条规则的规则集划分为(N*p_olr_c)条规则的sub_l、以及(N*(1-p_olr_c))条规则的sub_r。即要确定切分点,则要确定切分维度和切分点交叠率权重,在该切分维度上,根据切分点交叠率权重将规则集划分为各个子规则集。
如上可以看到,在将一个规则集切分为两个子规则集时,可以使用“切分”(split),其中的切分维度是用于在该维度上对规则集中的各个分类规则进行分组,而切分点是在上述切分维度上依据该切分点将规则集中的各个分类规则进行分组的临界位置。
规则集交叠率(rs_olr):该参数针对规则集而言。对于一个指定的规则集而言,其各个维度的平均交叠率avg_olr是确定的,将所有维度的不为1的avg_olr进行平均则是规则集的rs_olr;例如,如果一个规则集的avg_olr为1,那么通常该规则集中的各个分类规则的交叠率都为1,否则,规则集的vg_olr不为1。这个参数可以衡量规则集整体的复杂程度。
在图5的循环分组法进行的规则集分组中,将使用到上述的几个概念。结合图5以及图6所示的分组流程进行说明,包括:
601、将待分组的规则集输入规则集列表中;
例如,待分组的规则集可以是图1中的规则集11,图5中的规则集列表(rs_list)可以是一个双向链表,即按照图5所示的箭头方向,由规则集列表中移出一个规则集后,经过切分将其切分成两个规则集,再插入到该列表中;接着再进行循环,即继续移出一个规则集并切分成两个规则集,再插入,直至规则集列表中的规则集数目达到预设数目。
本实施例可以将规则集列表中的规则集称为子规则集(Sub_RS),待分组的初始的规则集可以输入到该规则集列表中,然后执行上述的循环分组操作。
602、由规则集列表中选取一个子规则集移出;
例如,如果规则集列表中只有一个初始刚刚输入的待分组的规则集,可能此时只有一个规则集,那就将该规则集取出即可;经过分组后,规则集列表中的规则集的数目将至少为两个,此时可以称为子规则集,从该至少两个子规则集中选择一个子规则集取出。
本步骤中,移出的子规则集可以遵循如下原则:以规则集交叠率rs_olr为依据,选取一个规则集交叠率rs_olr最大的子规则集,因为rs_olr可以衡量该规则集整体的复杂程度,而本实施例更加倾向于将较为复杂的规则集切分为更小的子规则集进行建树。此外,本实施例也可以将上述的“规则集列表”称为“待分组的规则集集合”,并且将选取移出的子规则集称为“目标规则集”,而由图5中所示的“规则集选取器”来按照上述原则从待分组的规则集集合中移出一个目标规则集,继续执行603。
603、选取切分点,并根据切分点对目标规则集进行切分,得到第一子规则集和第二子规则集;
例如,可以由图5中的切分点选取器来选取切分点,并根据切分点来对规则集进行一分为二的切分。本实施例中,目标规则集将被切分点拆分成两个子规则集,例如可以称为第一子规则集和第二子规则集,其中,第一子规则集的规则集交叠率小于第二子规则集的规则集交叠率,并且,一般情况下,第一子规则集包括的分类规则数目会大于第二子规则集包括的分类规则数目,即根据切分点拆分得到的两个子规则集,一个是较大较简单的规则集,另一个是较小较复杂的规则集,这种分组方式能够使得对于该规则集建树的决策树的规模得到缩小。
在一个例子中,本实施例提供一种切分点的选取方式:如上面提到过的,切分点的确定涉及两个关键因素,即切分维度dim_c和切分点交叠率权重p_olr_c。如图7所示,本实施例中的分组模块可以包括:因素选取单元71和规则切分单元72;其中,因素选取单元71,用于根据交叠率为1的规则的占比以及平均交叠率,选取切分维度,并将交叠率为1的位置作为切分点。
例如,切分维度的选取中,可以采用两参数加权方式,一个参数是该维度上交叠率为1的规则条数所占的比重,该参数表示的特征是简单规则的占比,另一个参数是该维度上规则的平均交叠率;如果将上述的占比用“x”表示,将平均交叠率用“y”表示,那么每个维度都要计算w=a*x+b*y,这就是两个参数加权,权重值a和b可以根据实际情况设定,根据对各个维度计算得到的w进行比较,选取w值最大的维度作为切分维度,因为本实施例倾向于尽量选择简单规则占比最多的维度,并且复杂度最大的维度,所以才采用两参数加权的方式来计算。
规则切分单元72,用于在因素选取单元71确定的切分维度上,根据切分点交叠率为1,将目标规则集中的交叠率等于1的分类规则划分入两个子规则集中的其中一个子规则集,并将交叠率大于1的分类规则划分入两个子规则集中的另一个子规则集,例如是将交叠率等于1的分类规则划分入第一子规则集,将 交叠率大于1的分类规则划分入第二子规则集。使用以上方式得到的p_cr对规则集进行分组,则得到的两个子规则集中有一个将具有特殊的性质,即在一个特定的dim上(p_cr指定的dim)上的avg_olr参数为1。
604、将第一子规则集和第二子规则集放入规则集列表中;
例如,图5中将根据切分点拆分规则集得到的两个子规则集,又插入到规则集列表中,这样规则集列表中的子规则集的数目也增加。
605、判断规则集列表中的子规则集的数目,是否达到预设数目;
例如,本步骤中,如果判断结果是已经达到预设数目,则本次规则集分组的流程结束,不再进行循环操作;如果判断结果是尚未达到预设数目,则返回执行602,继续进行循环分组,直至规则集列表的子规则集的数目达到预设数目。
在完成分组操作后,还可以继续由建树模块分别对每一个子规则集进行建树,得到与子规则集对应的决策树,所述决策树用于对网包进行分类处理。例如,在FPGA中,对待分类的网包,可以分别根据每一个决策树进行匹配,得到至少一个分类规则,选取至少一个分类规则中的优先级最高的规则作为目标规则,并根据该目标规则对所述网包进行处理。
在另一个实施例中,本实施例的网包分类方法,还可以对“建树”步骤进行改进,设计一种快速建树算法。如上述图2中提到的,建树过程涉及到两个关键因素,即分割维度和分割点,决策树实际上是根据分割维度和分割点生成的描述分类过程的数据结构。
本实施例中,对于分割维度的选择遵循重叠度最小原则,即尽量地选择规则最分散的维度进行分割,而直观上来看重叠度小的一个直接表现就是分割点数目多,所以本实施例选择分割点数目最多的维度作为分割维度,比如针对当前规则集的各个维度分别统计该维度的分割点数目,选取分割点数目最多的维度作为分割维度。同时直观的感受,将分割维度中的所有分割点在分割点数目上的中间位置作为目标分割点,从该目标分割点进行分割会使得左右两个子规则集的规则数目接近相等。例如,在具体实施中,可以将分割维度上的各个分割点进行排序,比如为每个分割点进行标识,并按照标识进行排序,大致选取 位于排序中部的位置作为目标分割点。需要说明的是,这里的目标分割点只是一个大概的位置表述,并不一定有个分割点使得左右两个子规则集的规则数目完全相等,只要接近相等即可。
在对子规则集进行建树的过程中,可以使用上述的分割维度和分割点的确定原则对子规则集进行分割。例如,假设待建树的子规则集包括11条分类规则,对于该子规则集,可以根据上述的原则确定分割维度和分割点进行分割,得到两个分割子集,例如可以称为第一子集(例如,包括5条规则)和第二子集(例如,包括6条规则)。接着,分别对于第一子集和第二子集继续分割,每个子集在分割时都仍然需要确定分割维度和分割点,确定原则同上述的原则,比如,在对其中的第一子集继续分割时,同样是选取分割点最多的维度作为分割维度,从所述分割维度中选择目标分割点进行分割,目标分割点位于所述分割维度中所有分割点的中间位置。以此类推,直至分割得到的每个分割子集在任一维度上包括一个分割区段,该最终分割得到的子集可以包括至少一个分类规则。
上述的建树原理可以应用于图1的建树器,建树器对应的是用于实现针对子规则集进行建树的逻辑指令,分别对每一个子规则集进行建树,这些逻辑指令也可以称为建树模块。图8示例了该建树模块的结构,可以包括:因素选择单元81和决策树建立单元82,其中,
因素选择单元81,用于进行快速分割法中的分割维度和目标分割点的选取,包括:选取分割点最多的维度作为分割维度,从所述分割维度中选择用于进行分割的目标分割点,其中,所述目标分割点位于所述分割维度中所有分割点的中间位置;
决策树建立单元82,用于采用所述快速分割法对所述子规则集进行分割,直至分割后形成的每个分割子集在任一维度上包括一个分割区段;其中,在根据因素选择单元81选取的分割维度和目标分割点分割所述子规则集时,得到两个分割子集。
上述的快速建树方式能够加快建树过程的执行效率,但是需要说明的是,在使用步骤301中的分组方式进行分组后,可以运用其他多种建树算法进行建 树均可以达到减小决策树规模的效果,并不仅仅局限于上述的快速建树方式。
此外,建树模块在进行建树时,还可以根据不同的规则集采用不同的建树算法,例如,建树模块中的因素选择单元可以判断待建树的子规则集的规则集交叠率是否小于某个设定的阈值,该阈值可以是用于区分较大较简单规则集与较小较复杂规则集的数值;如果该子规则集的规则集交叠率小于阈值,表示该子规则集是较大较简单规则集,可以采用上述的快速建树方式确定分割维度和分割点并进行建树,而如果该子规则集的规则集交叠率大于阈值,则表示该子规则集是较小较复杂规则集,则可以使用针对高复杂度的建树算法进行建树(例如hypersplit,或者qualityfirst),这样做既保证了复杂规则集的建树质量,又兼顾了简单规则集的建树速度。
在又一个实施例中,本实施例的网包分类方法,为了进一步缩小决策树的规模,在生成预设数目的子规则集之后,分别对每一个子规则集进行建树之前,对于每一个子规则集进行补洞:在该子规则集中增加一条黑洞规则,所述黑洞规则包括N个维度,N是自然数,所述N个维度中包括n个非敏感维度,n大于等于1且小于N。该补洞的处理可以由CPU上的补洞模块对应的逻辑执行。
上述对于子规则集的补洞执行的是“部分补洞”方式,部分补洞即所述的黑洞规则在一部分维度上表现为非敏感维度,剩余的维度设置为全*特性;其中,“非敏感维度”的特点是,在建树的过程中会忽略黑洞规则的非敏感维度,黑洞规则在非敏感维度上不产生分割点,进而也不产生分割区段,但为了保证黑洞规则在其余敏感维度(即*特性的维度)的正确性,当规则裂变发生在非敏感维度时,复制该黑洞规则至两个分支中。由于部分补洞规则中包括非敏感维度,减少了分割点的产生数目,将减小决策树的规模,加快决策树的生成效率。
图9示例了一种传统方式中的全*补洞方式下的决策树,图10示例了一种部分补洞方式下的决策树,其中,分类规则Rule 0中的阴影部分是规则在相应维度Dim上占据的部分。本实施例针对一条相同的规则R0(其中dim0的取值为[2],dim1的取值为[1],dim2的取值为[1,2],如图中的阴影部分所示),图9和图10分别模拟全*补洞和部分补洞机制分别对其进行建树操作,得到的决策 树见图中所示。可以看到,对于全*补洞而言,分别要在D2维度分割一次、在D0和D1维度各分割两次(决策树中的非叶子节点标识分割点,如图9中的根节点D2,2表示的含义是在分割维度dim2上的分割点2的位置进行分割,左侧包含[0,1],右侧包含[2,3])。直至各个子树达到终止分割的条件(子树的分割节点数目小于等于2),得到的决策树共有5个内部节点和6个叶子节点。而对于部分补洞机制而言,在D2维度的2位置进行一次分割后,左右子树均已达到终止分割的条件(左子树的D0和D1由于是部分补洞,补洞规则不产生分割点和分割区段),此时得到的决策树共有1个内部节点和2个叶子节点。显见,在针对相同的规则集情况下,部分补洞可以大幅度缩减决策树本身的规模。
当一条黑洞规则采用部分补洞方式时,可以通过该黑洞规则的一些特征来识别到这是部分补洞(而不是全补洞)。比如,对于黑洞规则中的非敏感维度,可以使用一个特殊的范围表示法例如[1,0),也就是说,规则中的每个维度通常都会有个取值范围,一般来说取值范围表示时采用类似[0,1)这种由小数值到大数值的区间方式,而上述[1,0)表示显然不合常规即很特殊,则可以据此识别这是非敏感维度,只要识别到非敏感维度,那么根据非敏感维度在规则所有维度中所占的比例可以确定是否是部分补洞,即如果该黑洞规则并非所有的维度都是非敏感维度那么该规则采用的是部分补洞。可见,在部分补洞规则的识别中,只要能识别到非敏感维度即可,又比如,可以使用位图方法,假设黑洞规则包括八个维度,每个维度用一个比特位表示,“0”表示非敏感维度,“1”表示敏感维度,则据此可以识别规则是否是部分补洞。上述仅示例了两种方式,具体实施中也可以采用其他方式。
此外,由于上述的非敏感维度使得最终决策树匹配输出的规则在非敏感维度上没有起作用,所以还需要一次key比较操作才能确定是否匹配上;即在非敏感维度上并没有实际比较网包是否与最终输出规则对应字段匹配,在最后还要专门比较下这些非敏感维度对应的字段是否与最终规则匹配。例如,假设在如下七个维度表现为非敏感特性即非敏感维度(实际实施中可以是任意个数的任意维度,不局限于这些维度):SIP、DIP、SPORT、DPORT、PROT、VPNID、 TOS,那么实际上经过决策树的分类查找到的最终输出的规则,是否与待分类的网包在这些字段上的取值相同,还要专门比较和确定;由此形成“部分补洞+key比较”的机制。上述的key比较处理过程可以由FPGA的查找引擎执行,在根据引擎上的决策树找到匹配的规则后,再针对规则的非敏感维度检查对应字段是否与待分类的网包字段相匹配,保证查找正确性且减小决策树的规模。
在又一个实施例中,为了提高本实施例的网包分类方法所能够支持的决策树规模和规则集数目,本实施例将一部分决策树的节点信息存储在靠近FPGA的BRAM之外的空间,如果将BRAM称为第一存储器,可以将所述的FPGA之外的空间称为第二存储器,该第二存储器例如是动态随机存取存储器(Dynamic Random Access Memory,简称:DRAM)。
图11示例了一种决策树的结构,在该决策树中,BRAM Node是存储在BRAM中的节点,而图11所示的“7层节点”是存储在DRAM中的节点,需要说明的是,图中的7层节点只是一个示例,可以将任意高度小于等于7的子树节点存储在DRAM中,比如当硬件性能提升时,该节点的层数可能多于7层。再结合参见图12,本实施例还采用了节点合并技术,将几层决策树节点合并为一个节点即Merged Node,该Merged Node可以称为决策树中的融合节点,该融合节点包括的节点数量为至少两个,在本实施例中可以最多为七个,即上述的7层节点(决策树三层共1+2+4=7个节点)。选取融合节点包括的节点数量,可以依据在访问DRAM时一次最多读取的节点数量;由于DRAM随机访问的总性能小于FPGA内部的BRAM,且延时也高于BRAM,因此要根据系统访问性能和延迟要求调整DRAM的访问次数,将查找性能和时延控制在合适的范围,上述的节点合并可以使得在访问DRAM时一次性可以读取多个节点的信息,提高访问性能且减少时延。
其中,融合节点的节点信息是存储在第二存储器DRAM中,例如,每个融合节点作为一个节点,可以使用256bit存储在DRAM中(该参数由DRAM控制器决定),其中包含三层决策树节点信息,即最多存储两层中间节点(3个决策树节点)加一层叶子节点(4个决策树节点),例如图12中的Merged Node(L2)节点即 保存了两层中间节点和一层叶子节点的节点信息,最后一层是四个决策树叶子节点的规则索引信息;而对于中间层的节点例如MergedNode(L0)和MergerNode(L1)而言,只能存储2层决策树信息。需要说明的时,在FPGA上的第一存储器中,节点信息中还可以包括索引信息,用于在根据决策树进行分类时通过所述索引信息指向所述第二存储器中的节点信息;比如在决策树的分类规则查找过程中,最初在第一存储器中查找,而后根据该索引信息转至第二存储器查找。
例如,上述的DRAM中保存的MergedNode结构宽度为256bit,它所承载的信息最多包含3个中间节点和4个叶节点,其中包括存储4个叶节点的规则索引以及中间节点的相关信息。此外,还可以通过上述256bit比特中的其中四个比特来表示4个叶子节点是否有效。
如上所述的,通过将融合节点外推到DRAM中存储,使得决策树的规模能够大幅度提升,进而使得能够支持更大规格的规则集,同时引入的DRAM查找时延依然在可控制的范围内。并且如上所述的,上述的网包分类装置可以还包括信息发送模块,如图13所示,通过信息发送模块43将所述决策树的节点信息发送至存储器,所述存储器包括位于FPGA上的第一存储器和位于FPGA之外的第二存储器,所述决策树中的融合节点的节点信息放入所述第二存储器中;所述融合节点包括的节点数量为至少两个。
此外,本发明实施例的网包分类方法,分别对网包分类过程中的分组、建树等步骤进行了改进;实际实施中,可以仅采用其中一个方面的改进,并不一定所有方面的改进全部实行,比如,可以仅将融合节点的节点信息存储在DRAM中(当然要记录DRAM中的节点与BRAM中的节点之间的节点关系,使得在决策树查找时能够由BRAM跳转到DRAM中查找),或者,也可以仅对黑洞规则进行部分补洞,或者,仅实现快速建树算法等。
下面对比已有的Hyper Split算法方案和本实施例的方案对相同规则集处理所消耗的时间、生成决策树占用的资源情况。如图14和图15所示,其中,图13是对比算法(Hyper Split)和改进算法(本实施例的方案)在决策树的生成时 间的对比,并假设规则分组时最终的子规则集的预设数目是4,即算法将原始规则集拆分为4个子规则集后进行建树;图15是对比算法和改进算法在生成的决策树的节点个数的对比。可以看到,本实施例提出的改进算法相较于对比算法而言,在时间消耗和决策树节点数量都有较为明显的优势,其中,针对fw1_32k这个规则集的建树时间提升接近3个数量级,而规则集节点数目则减少了接近4个数量级。其中的fw2_256k、ipc2_256k这四个规则集,实际上对比算法运行了相当长的时间之后由于消耗RAM过大被OS自动结束了,所以无法得知其具体的参数,而使用本实施例提出的改进算法由于缩短了建树时间均能建树成功,运行时间和决策树规模均在可控范围内。
可以看出,本实施例的网包分类方法相较于已有的HyperSplit算法,无论是建树时间还是生成的决策树规模来说都有较大的提升,并且针对HyperSplit无法处理的规则集,本实施例的方法都可以应对,由于缩短了建树时间所以不会被OS自动结束掉,而是可以成功生成决策树并且减小了决策树的模块。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种网包分类方法,其特征在于,包括:
采用循环分组法对初始规则集进行分组,生成预设数目的子规则集,所述循环分组法包括:由待分组的规则集集合中选取规则集交叠率最高的目标规则集,根据切分点对所述目标规则集进行切分得到两个子规则集,所述两个子规则集中的其中一个子规则集的规则集交叠率小于另一个子规则集的规则集交叠率;将所述两个子规则集放入所述规则集集合中,并继续对所述规则集集合中的子规则集进行切分,直至所述规则集集合中的子规则集的数目达到所述预设数目;
分别对每一个所述子规则集进行建树,得到与所述子规则集对应的决策树,所述决策树用于对网包进行分类处理。
2.根据权利要求1所述的方法,其特征在于,所述根据切分点对所述目标规则集进行切分得到两个子规则集,包括:
根据交叠率为1的规则的占比以及平均交叠率,选取切分维度,并将交叠率为1的位置作为切分点;
在所述切分维度上,根据所述切分点,将所述目标规则集中的交叠率等于1的分类规则划分入所述两个子规则集中的其中一个子规则集,并将交叠率大于1的分类规则划分入另一个子规则集。
3.根据权利要求1所述的方法,其特征在于,所述分别对每一个所述子规则集进行建树,包括:
采用快速分割法对所述子规则集进行分割,直至分割后形成的每个分割子集在任一维度上包括一个分割区段,所述快速分割法包括:选取分割点最多的维度作为分割维度,从所述分割维度中选择用于进行分割的目标分割点,根据所述分割维度和目标分割点分割所述子规则集,得到两个分割子集;所述目标分割点位于所述分割维度中所有分割点的中间位置。
4.根据权利要求3所述的方法,其特征在于,在所述选取分割点最多的维度作为分割维度之前,还包括:确定所述子规则集的规则集交叠率小于阈值。
5.根据权利要求1所述的方法,其特征在于,在所述生成预设数目的子规则集之后,分别对每一个所述子规则集进行建树之前,还包括:
在所述子规则集中增加一条黑洞规则,所述黑洞规则包括N个维度,N是自然数,所述N个维度中包括n个非敏感维度,n大于等于1且小于N;
所述分别对每一个所述子规则集进行建树,包括:在建树过程中的分割维度是所述非敏感维度时,复制所述黑洞规则至两个分支中。
6.根据权利要求1所述的方法,其特征在于,在所述得到与所述子规则集对应的决策树之后,还包括:
将所述决策树的节点信息发送至存储器,所述存储器包括位于FPGA上的第一存储器和位于FPGA之外的第二存储器,所述决策树中的融合节点的节点信息放入所述第二存储器中;所述融合节点包括的节点数量为至少两个。
7.一种网包分类装置,其特征在于,包括:
分组模块,用于采用循环分组法对初始规则集进行分组,生成预设数目的子规则集,所述循环分组法包括:由待分组的规则集集合中选取规则集交叠率最高的目标规则集,根据切分点对所述目标规则集进行切分得到两个子规则集,所述两个子规则集中的其中一个子规则集的规则集交叠率小于另一个子规则集的规则集交叠率;将所述两个子规则集放入所述规则集集合中,并继续对所述规则集集合中的子规则集进行切分,直至所述规则集集合中的子规则集的数目达到所述预设数目;
建树模块,用于分别对每一个所述子规则集进行建树,得到与所述子规则集对应的决策树,所述决策树用于对网包进行分类处理。
8.根据权利要求7所述的装置,其特征在于,所述分组模块,包括:
因素选取单元,用于根据交叠率为1的规则的占比以及平均交叠率,选取切分维度,并将交叠率为1的位置作为切分点;
规则切分单元,用于在所述切分维度上,根据所述切分点,将所述目标规则集中的交叠率等于1的分类规则划分入所述两个子规则集中的其中一个子规则集,并将交叠率大于1的分类规则划分入另一个子规则集。
9.根据权利要求7所述的装置,其特征在于,
所述建树模块,在分别对每一个所述子规则集进行建树时,包括:采用快速分割法对所述子规则集进行分割,直至分割后形成的每个分割子集在任一维度上包括一个分割区段,所述快速分割法包括:选取分割点最多的维度作为分割维度,从所述分割维度中选择用于进行分割的目标分割点,根据所述分割维度和目标分割点分割所述子规则集,得到两个分割子集;所述目标分割点位于所述分割维度中所有分割点的中间位置。
10.根据权利要求9所述的装置,其特征在于,
所述建树模块,还用于在所述选取分割点最多的维度作为分割维度之前,确定所述子规则集的规则集交叠率小于阈值。
11.根据权利要求7所述的装置,其特征在于,还包括:补洞模块,用于在所述子规则集中增加一条黑洞规则,所述黑洞规则包括N个维度,N是自然数,所述N个维度中包括n个非敏感维度,n大于等于1且小于N;
所述建树模块,在分别对每一个所述子规则集进行建树时,包括:在建树过程中的分割维度是所述非敏感维度时,复制所述黑洞规则至两个分支中。
12.根据权利要求7所述的装置,其特征在于,还包括:
信息发送模块,用于将所述决策树的节点信息发送至存储器,所述存储器包括位于FPGA上的第一存储器和位于FPGA之外的第二存储器,所述决策树中的融合节点的节点信息放入所述第二存储器中;所述融合节点包括的节点数量为至少两个。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510217646.XA CN106209614B (zh) | 2015-04-30 | 2015-04-30 | 一种网包分类方法和装置 |
PCT/CN2016/080678 WO2016173541A1 (en) | 2015-04-30 | 2016-04-29 | Packet classification |
US15/569,137 US10425343B2 (en) | 2015-04-30 | 2016-04-29 | Packet classification |
EP16785969.3A EP3269099B1 (en) | 2015-04-30 | 2016-04-29 | Packet classification |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510217646.XA CN106209614B (zh) | 2015-04-30 | 2015-04-30 | 一种网包分类方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106209614A true CN106209614A (zh) | 2016-12-07 |
CN106209614B CN106209614B (zh) | 2019-09-17 |
Family
ID=57198143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510217646.XA Active CN106209614B (zh) | 2015-04-30 | 2015-04-30 | 一种网包分类方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10425343B2 (zh) |
EP (1) | EP3269099B1 (zh) |
CN (1) | CN106209614B (zh) |
WO (1) | WO2016173541A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888494A (zh) * | 2017-11-29 | 2018-04-06 | 湖南大学 | 一种基于社区发现的包分类方法及系统 |
CN108632235A (zh) * | 2017-08-31 | 2018-10-09 | 新华三技术有限公司 | 一种网包分类决策树建立方法及装置 |
WO2019183962A1 (zh) * | 2018-03-30 | 2019-10-03 | 北京大学深圳研究生院 | 一种基于等长度和等密度切割的网络数据包分类的方法 |
CN114710378A (zh) * | 2022-03-03 | 2022-07-05 | 中国人民解放军国防科技大学 | 一种基于决策树的并行报文分类查找方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020172595A1 (en) | 2019-02-22 | 2020-08-27 | Shubharanjan Dasgupta | Automated closed-loop actions in a network using a distributed ledger |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308533B (zh) * | 2010-06-28 | 2013-10-09 | 华为技术有限公司 | 对报文进行分类的方法及装置 |
CN103841112A (zh) * | 2014-03-18 | 2014-06-04 | 杭州华三通信技术有限公司 | 基于网包分类的分类规则处理方法及装置、匹配装置 |
CN103888350A (zh) * | 2014-03-31 | 2014-06-25 | 清华大学 | 一种多域网包分类规则集的分组方法 |
CN102255788B (zh) * | 2010-05-19 | 2014-08-20 | 北京启明星辰信息技术股份有限公司 | 报文分类决策构建系统及方法、报文分类系统及方法 |
CN102405622B (zh) * | 2010-08-24 | 2014-11-05 | 华为技术有限公司 | 二叉树建立、压缩和查找的方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7031314B2 (en) * | 2001-05-16 | 2006-04-18 | Bytemobile, Inc. | Systems and methods for providing differentiated services within a network communication system |
CN100417140C (zh) * | 2005-10-24 | 2008-09-03 | 华为技术有限公司 | 一种流分类装置和方法以及采用该流分类装置的基站 |
CN101478551B (zh) | 2009-01-19 | 2011-12-28 | 清华大学 | 基于多核处理器的多域网包分类方法 |
US9160668B2 (en) * | 2010-05-03 | 2015-10-13 | Pluribus Networks Inc. | Servers, switches, and systems with switching module implementing a distributed network operating system |
CN102420831B (zh) * | 2011-12-16 | 2014-07-02 | 清华大学 | 一种多域网包分类方法 |
US8718064B2 (en) * | 2011-12-22 | 2014-05-06 | Telefonaktiebolaget L M Ericsson (Publ) | Forwarding element for flexible and extensible flow processing software-defined networks |
US9686200B2 (en) * | 2014-03-31 | 2017-06-20 | Nicira, Inc. | Flow cache hierarchy |
-
2015
- 2015-04-30 CN CN201510217646.XA patent/CN106209614B/zh active Active
-
2016
- 2016-04-29 WO PCT/CN2016/080678 patent/WO2016173541A1/en active Application Filing
- 2016-04-29 US US15/569,137 patent/US10425343B2/en active Active
- 2016-04-29 EP EP16785969.3A patent/EP3269099B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102255788B (zh) * | 2010-05-19 | 2014-08-20 | 北京启明星辰信息技术股份有限公司 | 报文分类决策构建系统及方法、报文分类系统及方法 |
CN102308533B (zh) * | 2010-06-28 | 2013-10-09 | 华为技术有限公司 | 对报文进行分类的方法及装置 |
CN102405622B (zh) * | 2010-08-24 | 2014-11-05 | 华为技术有限公司 | 二叉树建立、压缩和查找的方法和装置 |
CN103841112A (zh) * | 2014-03-18 | 2014-06-04 | 杭州华三通信技术有限公司 | 基于网包分类的分类规则处理方法及装置、匹配装置 |
CN103888350A (zh) * | 2014-03-31 | 2014-06-25 | 清华大学 | 一种多域网包分类规则集的分组方法 |
Non-Patent Citations (2)
Title |
---|
韩伟涛: "基于动态点切分的多决策树包分类算法", 《电子与信息学报》 * |
马腾等: ""基于规则集划分的多决策树报文分类算法"", 《计算机应用》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108632235A (zh) * | 2017-08-31 | 2018-10-09 | 新华三技术有限公司 | 一种网包分类决策树建立方法及装置 |
CN108632235B (zh) * | 2017-08-31 | 2020-07-07 | 新华三技术有限公司 | 一种网包分类决策树建立方法及装置 |
US11184279B2 (en) | 2017-08-31 | 2021-11-23 | New H3C Technologies Co., Ltd. | Building decision tree for packet classification |
CN107888494A (zh) * | 2017-11-29 | 2018-04-06 | 湖南大学 | 一种基于社区发现的包分类方法及系统 |
CN107888494B (zh) * | 2017-11-29 | 2020-06-26 | 湖南大学 | 一种基于社区发现的包分类方法及系统 |
WO2019183962A1 (zh) * | 2018-03-30 | 2019-10-03 | 北京大学深圳研究生院 | 一种基于等长度和等密度切割的网络数据包分类的方法 |
CN114710378A (zh) * | 2022-03-03 | 2022-07-05 | 中国人民解放军国防科技大学 | 一种基于决策树的并行报文分类查找方法及系统 |
CN114710378B (zh) * | 2022-03-03 | 2024-03-26 | 中国人民解放军国防科技大学 | 一种基于决策树的并行报文分类查找方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20180152385A1 (en) | 2018-05-31 |
WO2016173541A1 (en) | 2016-11-03 |
US10425343B2 (en) | 2019-09-24 |
CN106209614B (zh) | 2019-09-17 |
EP3269099B1 (en) | 2021-11-03 |
EP3269099A1 (en) | 2018-01-17 |
EP3269099A4 (en) | 2018-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106096727B (zh) | 一种基于机器学习的网络模型构造方法及装置 | |
CN106209614A (zh) | 一种网包分类方法和装置 | |
CN104866502B (zh) | 数据匹配的方法及装置 | |
Shahana et al. | Survey on feature subset selection for high dimensional data | |
CN107193899A (zh) | 一种图算法友善的强连通图划分方法 | |
CN107784110B (zh) | 一种索引建立方法及装置 | |
WO2017039684A1 (en) | Classifier | |
CN109300041A (zh) | 理财策略推荐方法、电子装置及可读存储介质 | |
Gulzar et al. | SCSA: Evaluating skyline queries in incomplete data | |
Goertzel et al. | ENIGMAWatch: proofWatch meets ENIGMA | |
CN108241692A (zh) | 数据的查询方法及装置 | |
US11288266B2 (en) | Candidate projection enumeration based query response generation | |
Rodriguez-Torres et al. | Deterministic oversampling methods based on SMOTE | |
Zhang et al. | An efficient NPN Boolean matching algorithm based on structural signature and Shannon expansion | |
CN106649385A (zh) | 基于HBase数据库的数据排序方法和装置 | |
CN110532388B (zh) | 文本聚类的方法、设备和存储介质 | |
Worring et al. | Browsing visual collections using graphs | |
CN104077555B (zh) | 一种识别图片搜索中坏例的方法和装置 | |
CN116108076B (zh) | 物化视图查询方法、系统、设备及存储介质 | |
CN108984630B (zh) | 复杂网络中节点重要性在垃圾网页检测中的应用方法 | |
Oyamada et al. | Towards proximity graph auto-configuration: An approach based on meta-learning | |
CN102254040A (zh) | 一种基于支撑向量机的Web划分方法 | |
US9830355B2 (en) | Computer-implemented method of performing a search using signatures | |
Perdih et al. | Semantic reasoning from model-agnostic explanations | |
CN108268620A (zh) | 一种基于hadoop数据挖掘的文档分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |