CN102308533B - 对报文进行分类的方法及装置 - Google Patents
对报文进行分类的方法及装置 Download PDFInfo
- Publication number
- CN102308533B CN102308533B CN201080002602.0A CN201080002602A CN102308533B CN 102308533 B CN102308533 B CN 102308533B CN 201080002602 A CN201080002602 A CN 201080002602A CN 102308533 B CN102308533 B CN 102308533B
- Authority
- CN
- China
- Prior art keywords
- rule
- fragment code
- fragment
- rank
- message
- 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.)
- Active
Links
Images
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]
Abstract
本发明实施例公开了一种对报文进行分类的方法及装置,涉及通信技术领域,用以减少分类过程中的规则复制,提高分类效率。本发明实施例提供的对报文进行分类的方法,包括:接收报文(201);在已创建的至少一个决策树中查找与所述报文相匹配的规则,所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树(202);根据查找到的所述规则对所述报文进行分类处理(203)。本发明实施例提供的方法及装置适用于路由器。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种对报文进行分类的方法及装置。
背景技术
流分类,即对接收到的报文进行分类,是路由器的关键功能之一;它为路由器的网络安全、QoS(Quality of Service,服务质量)、负载平衡、流量计数等复杂的增值服务提供技术保障。
基于决策树的流分类方法,其基本思想是:采用某种切分策略递归地将规则集分开,直到每个子规则集中的规则数都小于预先设定的Bucket Size(桶深);通过切分可以建立一棵决策树,决策树的中间结点保存切分规则集所使用的方法,叶子结点保存子规则集,也就是说,叶子结点中保存着所有可能的匹配规则。
在对接收到的报文进行分类时,首先从报文头中抽出相关的域组成关键字,然后使用关键字遍历已经建立好的决策树,将关键字跟叶子结点中的规则进行比较,最终可以得到与报文匹配且优先级最高的规则。基于决策树的算法有HiCuts(一维切分)、HyperCuts(多维切分)和Modular(选位切分)等。
然而在以上这些基于决策树的流分类方法中,由于规则中通配符‘*’的存在,导致规则的复制很难避免,进而造成内存占用量增加、切分效率较低等问题。
针对上述问题,现有技术中存在如下对基于决策树的流分类方法进行改进的方案:首先将原始规则集划分成若干个互相不重叠的子规则集,然后再对得到的子规则集构建决策树。
上述将原始规则集划分成若干子规则集的过程可以通过如下方式实现:
1)根据前缀对规则集进行分类;例如,在对标准Ipv4五元组规则进行分类时,就可以考虑依据其中的源IP和/或目的IP地址的前缀对规则进行分类;
2)根据范围对规则进行分类;例如,在对标准Ipv4五元组规则进行分类时,可以依据源端口和/或目的端口的范围对规则进行分类;
如果仅针对一个域对原始规则集进行划分,则上述1)和2)中得到的子类即为所需要的子规则集。而如果原始规则集中存在多个域,例如上述Ipv4五元组规则可能就需要针对5个域进行划分;此时,可以根据交叉积方法将根据不同分类方法所得到的子类进行不同的组合,得到多个互不重叠的子规则集。假设要根据一个地址域和一个端口域对原始规则集进行划分,首先可以用上面1)和2)中介绍的方法将原始规则集分别划分为s1和s2个子类,然后用交叉积的方法就可以将原始规则集划分为s1*s2个子规则集。
通过上述改进后的基于决策树的流分类算法,可以将原始规则集划分为“完全”不重叠的子规则集,从一定程序上减少规则的复制;不过,在利用上述改进后的流分类算法进行报文分类的过程中,发明人发现现有技术中至少还存在如下问题:
规则是否出现复制取决于,在切分时规则在用于切分的位中是否存在通配符‘*’,并不是取决于规则的域之间是否重叠;因此,上述方案仅适用于完全按照域进行切分的流分类算法中。
发明内容
本发明的实施例提供一种对报文进行分类的方法及装置,用以减少分类过程中的规则复制,提高分类效率。
为达到上述目的,本发明的实施例采用如下技术方案:
一种对报文进行分类的方法,包括:
接收报文;
在已创建的至少一个决策树中查找与所述报文相匹配的规则,所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树;
根据查找到的所述规则对所述报文进行分类处理。
一种对报文进行分类的装置,包括:
接收单元,用于接收报文;
查找单元,用于在已创建的至少一个决策树中查找与所述报文相匹配的规则,所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树;
分类单元,用于根据查找到的所述规则对所述报文进行分类处理。
本发明实施例提供的对报文进行分类的方法及装置,由于其在进行规则查找过程中所利用的决策树是基于分段码对原始规则集进行划分后进而创建的决策树,而使用分段码对规则集进行划分不仅可以减少规则的复制,而且可以使决策树的深度、内存占用量和建树时间都大大降低;因此,利用本发明实施例中提供的方案进行规则查找时,可以在保持查找带宽不变的前提下,大大提高查找、分类等处理过程的速度。与现有技术相比,本发明实施例中提供的方法及装置,可以减少分类过程中的规则复制,提高分类效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为规则集切分示意图;
图2为本发明实施例一中的对报文进行分类的方法的流程图;
图3为本发明实施例二中的对报文进行分类的方法的流程图;
图4为本发明实施例二中的对规则集进行划分的流程图;
图5为本发明实施例四中的对报文进行分类的装置的结构示意图;
图6为本发明实施例五中的对报文进行分类的装置的结构示意图;
图7为本发明实施例五中的划分单元的结构示意图。
具体实施方式
在基于决策树的流分类过程中,规则中通配符‘*’(指某一个二进制位为‘*’)的数量和位置决定了在构建决策树过程中,是否容易导致规则复制。
由于通配符‘*’的数量不同导致规则复制的情况在前述部分中已有描述,这里再解释一下‘*’的位置对规则复制的影响。在表1、表2所示的两个例子中,‘*’的个数完全相同,只是在规则中出现的位置不同。对于表1中的4条规则‘*’出现的位置完全相同,因此在对表1中的规则集进行切分时,只需要选择第一维(Dim1)的前两位将规则集切分为4个子规则集;每个子规则集包含一条规则,并且没有规则复制,如图1(a)所示。对于表2中的规则,‘*’的位置交叉出现;这时,无论选择哪一位进行切分都会导致规则的复制。例如,选择第一维(Dim1)的第一位和第二维(Dim2)的第一位进行切分,可以将表2中的规则集切分为4个子规则集,而每个子规则集中都有2条规则,如图1(b)所示。由上可知,虽然在表1和表2所示的两个例子中‘*’的个数都完全相同,但规则复制的程度却相差甚远。
表1
规则 | Dim1 | Dim2 |
R1 | 00* | * |
R2 | 01* | * |
R3 | 10* | * |
R4 | 11* | * |
表2
规则 | Dim1 | Dim2 |
R1 | 00* | * |
R2 | * | 01* |
R3 | 10* | * |
R4 | * | 11* |
对于一个规则集,如果选择某些位进行切分时不会导致复制,我们就称这个规则集中的规则是匹配的;如果无论选择哪一位进行切分都会导致复制,就称该规则集中的规则是不匹配的。在图1所对应的示例中,表1中的4条规则就是匹配的;表2中的4条规则就是不匹配的。而且,对于匹配规则,切分时不会导致复制的可选位越多,则相互匹配的程度越高,在创建决策树的过程中越不容易导致复制。
为了更好地描述规则之间的匹配性,下面我们引入规则分段的思想。
首先,我们将每条规则可以看作一个由‘0’,‘1’,和‘*’组成的三值位串。如果将每条规则对应的位串分为N(N≥2)段,并统计每一段中‘*’的个数,则该段中‘*’的数量主导着在使用该段中的位进行切分时,该规则是否容易被复制。当一条规则的某一段中‘*’的个数超过某个阈值t时(比如一段规则中包含16位字符,当‘*’的个数超过8时),就可以认为该段中的位对于该规则是“坏”的,即用该段中的位进行切分时,该规则容易被复制,或者说有较大的被复制的趋势;否则就认为该段中的位对于该规则是“好”的。通过统计每条规则中哪些段是“好”的,哪些段是“坏”的,可以对每条规则中‘*’的个数和位置有一个大概的了解,并依此作为划分规则集的依据。
具体地,每条规则都是由‘0’、‘1’和‘*’组成的三值位串,即在每条规则中包含有多位字符‘0’、‘1’和‘*’;以其中至少两位字符为一段,将每条规则对应的位串分为N段,当某一段中‘*’的个数超过某个阈值t时,称该段为“坏”的,将其编码为0;否则,称该段为“好”的,编码为1。这样,每条规则就对应一个N位的二进制码,称为分段码。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
如图2所示,本发明实施例提供的对报文进行分类的方法,包括:
201、接收报文。
路由器可以接收来自网络的多个报文,然后由流分类器对报文中的多个域进行检查,以便查找与所述报文相匹配的规则。
202、在已创建的至少一个决策树中查找与所述报文相匹配的规则,所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树。
基于分段码对原始规则集进行划分后进而创建的决策树在创建时,同时考虑通配符‘*’的数量和位置,相比于通过现有方法创建的决策树,其出现规则复制的情况更少,且决策树的深度较现有的决策树要小,因此利用本实施例中的基于分段码对原始规则集进行划分后进而创建的决策树可以缩短查找与所述报文相匹配的规则的时间,提高分类效率。
203、根据查找到的所述规则对所述报文进行分类处理。
在步骤203中,可以认为与同一条规则相匹配的所有报文属于一类,而针对不同类的报文其处理方式可能是不一样的,例如所述处理可以是丢弃、接受、计数等。
在本实施例中,上述各步骤的执行主体可以是路由器、或者集成在路由器内部的流分类引擎。
本发明实施例提供的对报文进行分类的方法,由于其在进行规则查找过程中所利用的决策树是基于分段码对原始规则集进行划分后进而创建的决策树,而使用分段码对规则集进行划分不仅可以减少规则的复制,而且可以使决策树的深度、内存占用量和建树时间都大大降低;因此,利用本发明实施例中提供的方案进行规则查找时,可以在保持查找带宽不变的前提下,大大提高查找、分类等处理过程的速度。
实施例二:
下面将以一具体实施例来对本发明实施例中提供的对报文进行分类的方法进行详细描述。不过在对所述方法的实现过程进行详述之前,可以先介绍以下几个概念:
1)通过上面的描述可知,分段码是根据规则中‘*’的数量和位置而确定的N位二进制码。具体地,在每条规则中包含有多位字符‘0’、‘1’和‘*’;以其中至少两位字符为一段,将每条规则对应的位串分为N段,当某一段中‘*’的个数超过某个阈值t时,称该段为“坏”的,将其编码为0;否则,称该段为“好”的,编码为1。这样,每条规则就对应一个N位的二进制码,称为分段码。
在实际的规则中,比如Ipv4标准5元组规则,各个域都可以用前缀或范围来表示。源IP和目的IP地址自然就用前缀表示;对于协议号,可以看作掩码长度为0(该域为‘*’)或8的前缀;端口号用范围表示。
对于前缀,通过掩码长度就可以判断对应的字符段是“好”的还是“坏”的。比如,对于包含32位二进制码的IP地址来说,以16位作为一段,则源IP可以分为2段,对应2个二进制位来作为其分段码;当一段中‘*’的个数超过8时,就认为该段为“坏”的。这样,当某条规则的源IP的掩码长度maskLen<8时,源IP对应的分段码中的两个二进制位为00;当8≤maskLen<24时,编码为10;当maskLen≥24时,编码为11。
对于范围,可以用范围的长度判断某一段是“好”的,还是“坏”的。范围(如协议号)的上下限一般都是16位的二进制数。我们可以将一个范围域作为一段,如果某个范围的长度大于阈值L,则称该段是“坏”的,编码为0;否则,称其为“好”的,编码为1。L优选地跟前缀中‘*’的个数的阈值t相对应,其关系为t=log2L。这样,有利于后面计算子规则集的最低匹配级别。
分段时,各段的长度及阈值也不一定相同。比如对于Ipv4标准5元组规则,可以将源IP和目的IP中每16位分为一段,从而分别将源IP和目的IP分为两段,‘*’的个数的阈值为8;源端口和目的端口用范围表示,各作为一个段,范围长度阈值为256;协议号用8位二进制表示,作为一个段,‘*’的个数的阈值为小于8的正整数(对应特定的协议号和‘*’两种情况)。这样,规则就被分为7段,分段码用7位二进制数表示。
2)如果两个分段码进行按位与运算(AND操作)之后的结果为0,表示两个分段码不匹配;否则表示匹配。相互匹配的分段码称为匹配分段码。
两个匹配分段码进行按位与操作后,结果的二进制表示中1的个数定义为该两个分段码的匹配级别。
例如,任取两个分段码A和B,如果(A&B)==0,则A和B不匹配;否则A和B匹配,且匹配级别=(A&B)的二进制表示中1的个数。对于不匹配的分段码,我们也说其匹配级别为0。如果分段码A和B匹配,则称A是B的匹配分段码,同时B也是A的匹配分段码。分段码之间的匹配级别越高,与这些分段码关联的规则在一起时越容易切分,也就是说利用这些分段码进行规则切分时出现复制的趋势越小。
3)在使用分段码进行规则集划分时,需要先选定一个分段码,然后计算所有的分段码跟该分段码的匹配级别,并将分段码按照匹配级别分类。在此,被选定的分段码称为种子分段码。
选定种子分段码之后,可以计算其它分段码跟种子分段码的匹配级别。在计算匹配级别之后,可以为各个分段码设定优先级次序。方式如下:
(1)匹配级别越高,优先级越高;
(2)如果匹配级别相同,对应的规则数越多,优先级越高。
4)多个分段码依次连续按位与之后的结果称为这些分段码的公共匹配分段码。
例如,存在多个分段码A、B、C、D,则计算这四个分段码的公共匹配分段码时,需要先将A和B进行按位与运算,然后将A和B的按位与结果与C进行按位与运算,后面依次类推,从而得到A、B、C、D的公共匹配分段码。
假设跟N个分段码相对应的规则组成的子规则集为S,则这N个分段码的公共匹配分段码反映了S中的规则之间的匹配程度。公共匹配分段码中1的个数越多,说明S中的规则之间的匹配程度越高;在对S进行切分时,就有越多的位可以选择而不容易导致规则的复制。
同时,公共匹配分段码反映了对子规则集创建决策树时,选择哪些位进行切分不易导致规则复制。如果分段码中的某一位为1,且跟该位对应的段中包含k位字符,而判断该段是“好”的还是“坏”的所用的‘*’的数量的阈值为t,则使用该段中的前(k-t)位对规则集进行切分时,不易导致规则复制。在Modular算法中,我们可以使用公共匹配分段码中为1的位所对应的段中的前(k-t)位建立更有效的jump table(跳转表)。在选位时,也可以优先选择这些不易导致规则复制的位。在HiCuts和HyperCuts算法中,可以根据公共匹配分段码优先选择那些不易导致规则复制的维(对应某些分段)中的位进行切分,从而使切分更高效。
下面将以上述基本概念为基础,详细介绍本实施例中提供的对报文进行分类的方法。
在本实施例中,所述对报文进行分类的方法,如图3所示,具体包括以下步骤:
301、根据分段码将原始规则集划分成至少两个子规则集。
为了能够减少复制,同时使决策树的深度减小、缩短建树时间,需要对原始规则集进行划分,使其分成多个子规则集;然后,再对所述多个子规则集分别构建决策树。
具体地,所述根据分段码将原始规则集划分成至少两个子规则集的过程,如图4所示,可以通过以下步骤来实现:
S11、以至少两位字符为一段对所述原始规则集中的每条规则进行分段,并计算每条规则对应的分段码。
如果将所述原始规则集中的一条规则分成了N(N≥2)段,则这条规则对应的分段码就是一个N位的二进制码。
S12、在得到了每条规则对应的分段码之后,统计相同的分段码对应的规则数量,并按照所述规则数量从高到低的次序对所述分段码进行排序。
在本步骤中,当然还可以是按照所述分段码对应的规则的数量从低到高的次序对所述分段码进行排序;具体的排序方式可以根据实际执行过程中的需要来确定。
S13、在所述按照规则数量进行排序后的分段码中选取对应规则数量最多的分段码作为种子分段码,与按照规则数量排序后的其它分段码两两进行按位与操作;统计按位与结果中1的个数,按照所述按位与结果中1的个数的多少对所述分段码进行分类排序。
在步骤S13中,之所以选对应规则数量最多的分段码作为种子分段码,是为了尽快地把大部分的规则分离出来。这样,种子分段码不仅仅本身对应的规则数多,而且一般情况下跟它匹配的分段码也较多。
通过前面的描述可知,两个分段码进行按位与运算后得到的二进制结果中,1的个数即为这两个分段码之间的匹配级别。那么,在步骤S13中,就是以其他分段码与所述种子分段码之间的匹配级别对所得到的全部分段码进行排序。所述分段码之间的匹配级别反映了规则切分时的复制的趋势,即当所述的匹配级别越高,则规则切分时的复制的趋势越小,反之亦然。
S14、将所述按照匹配级别排序后的、且匹配级别不为0的分段码依次进行连续按位与操作,并在连续按位与的结果中1的个数小于最低匹配级别时,将最后一个参与连续按位与的分段码归入到匹配级别为0的类别中。
其中,将匹配级别不为0的分段码依次进行连续按位与操作,指的是:依次将所述匹配级别不为0的分段码中、前面所有分段码的按位与结果与后面一个分段码进行按位与运算,直至得到全部分段码相按位与后的结果。
在所述依次进行连续按位与操作的过程中,所有可能使按位与结果中1的个数小于最低匹配级别的分段码都被归入到了与种子分段码的匹配级别为0的类别中;那么剩余的分段码进行连续按位与操作后得到的最终结果也就是,与种子分段码之间的匹配级别大于0的类别中所有分段码的公共匹配分段码。
此外,还应该将计算得到的所述匹配级别大于0的分段码的公共匹配分段码进行保存。
在步骤S14中,所述最低匹配级别Lmin可以通过如下公式计算得到:
其中,符号代表向上取整;k为分段码的每个二进制位对应的字符数;t为分段后可用于规则切分的字符段中包含的通配符的最大值,也就是一段字符中‘*’的数量的阈值;numRules为划分前原始规则集中的规则数;bucketSize为所述决策树的叶子结点中保存的最大规则数;f为所述决策树中平均每个叶子结点的利用效率,该值在决策树创建之前很难得到精确的结果,因此可以根据经验值来设定。
一个规则集的最低匹配级别反映了该规则集中,可以用于切分而不易导致复制的位的多少。当规则数较少时,只需要较少的位就可以将它们分开,这时可以将最低匹配级别设得小一些;当规则数很多时,需要用很多位才能切分开,这时需要把最低匹配级别设得高一些。比如,设定一段中‘*’的个数超过8时,该段对应的位为‘0’。假设在一个规则集中,规则之间的最低匹配级别是1,那么这些规则在用不超过8位进行切分时规则的复制程度较小,但当需要用更多的位进行切分时,还是可能导致较多复制。这种情况可以通过提高规则集的最低匹配级别来解决。
S15、将所述匹配级别大于0的分段码对应的规则归入到第一子规则集。
同时,可以将步骤S14中得到的所有匹配级别大于0的分段码的公共匹配分段码和最低匹配级别作为所述第一子规则集的属性进行保存。
S16、在所述匹配级别为0的分段码所对应的规则数小于等于第一阈值时,将所述匹配级别为0的分段码对应的规则归入到第二子规则集,并结束规则集的继续划分;在所述匹配级别为0的分段码所对应的规则数大于所述第一阈值时,从所述匹配级别为0的多个分段码中重新选取对应规则数量最多的一个分段码,返回步骤S13,以对所述匹配级别为0的所有分段码继续划分。
其中,所述第一阈值可以是但不限于每个叶子结点中可容纳的规则数的倍数,例如n*bucketSize,n≥2;在所述匹配级别为0的分段码所对应的规则数小于等于n*bucketSize时,可以认为此时剩余的规则数较少,可以不必要进一步对规则集进行划分。
如果在判断规则划分是否可以结束时,涉及到两个阈值的话,则可以通过以下方式来确定剩余的匹配级别为0的分段码应该归入的子规则集。具体地,
在所述匹配级别为0的分段码所对应的规则数小于等于第一阈值且大于第二阈值时,这里的第二阈值要小于所述第一阈值,其可以是但不限于每个叶子结点中可容纳的规则数,此时可以将所述匹配级别为0的分段码对应的规则归入到第二子规则集,以针对不同的子规则集构建不同的决策树,减低每个决策树的深度;
而在所述匹配级别为0的分段码所对应的规则数小于等于所述第二阈值时,由于剩余的匹配级别为0的分段码所对应的规则数很小,因此可以将所述匹配级别为0的分段码对应的规则归入到所述第一子规则集中;这种划分方案适用于原始规则集本身就比较小的情况,根据所述第一子规则集构建的决策树的深度不会很大,对分类过程中的查找速率影响不大。
通过上述方法,对于一些规则之间匹配很好的规则集,不必划分或划分的子规则集数目较少;而对于匹配不好的规则集,可以划分成较多的子规则集。这样,可以实现规则集的按需划分。
另外,也可以事先设定要产生的子规则集的数目;比如,可以设置将原始规则集划分成2个子规则集。这样,在步骤S16中,即使在所述匹配级别为0的分段码所对应的规则数大于所述第一阈值时,只要
已经产生的子规则集数=预先设定的子规则集数-1
那么,就可以结束规则集划分,将匹配级别为0的规则直接作为一个新的子规则集。
在完成了步骤S11至S16之后,基本上可以将所述原始规则集划分成至少两个子规则集。
在上述根据分段码将原始规则集划分成至少两个子规则集的过程中,还可以将步骤S13和步骤S14进行合并,即:以步骤S13中得到的按位与结果中1的个数与最低匹配级别进行比较,具体地,当步骤S13中的当按位与结果中1的个数小于最低匹配级别时,则将当前与种子分段码进行按位与操作的分段码归入到匹配级别为0的类别中。此时相当于仅以其他分段码与所述种子分段码之间的匹配级别作为判断标准,来对规则集进行划分。
302、针对步骤301中得到的至少两个子规则集分别构建决策树,并对其进行保存。
在路由器对报文进行分类的过程中,上述步骤301和302不必要在每次进行分类时都执行;只要在路由器中已经保存有所述基于分段码对原始规则集进行划分后进而创建的决策树,则在后续的分类过程中可以直接将上述两个步骤跳过。
303、接收报文。
路由器可以接收来自网络的多个报文,然后由流分类器对报文中的多个域进行检查,以便查找与所述报文相匹配的规则。
304、在已创建的至少一个决策树中查找与所述报文相匹配的规则,所述决策树为步骤302中基于分段码对原始规则集进行划分后进而创建的决策树。
305、根据查找到的所述规则对所述报文进行分类处理。
在步骤305中,可以认为与同一条规则相匹配的所有报文属于一类,而针对不同类的报文其处理方式是不一样的,例如所述处理可以是丢弃、接受、计数等。
本发明实施例中提供的对报文进行分类的方法,通过确定不同的规则对应的分段码,并从其中选取出种子分段码,继而根据其他分段码与所述种子分段码之间的匹配级别以及预先设定的最低匹配分段码来对分段码进行分类,以实现原始规则集的划分,从而得到至少两个子规则集并构建至少两个决策树;之后,就可以根据所述已构建的决策树对接收到的报文进行分类处理。使用本实施例中提供的方法,尤其是利用分段码对原始规则集进行划分的过程,不仅可以减少规则的复制,在进行规则集切分时准确地选位,从而使决策树的深度、内存占用量和建树时间都大大降低,提高划分规则集的处理速度,而且在对报文进行分类时,也可以降低规则查找时间,提高分类效率。
实施例三:
为了更好地理解上述实施例二中描述的对原始规则集进行划分的过程,在本实施例中将给出一个具体的实例来加以说明。
如表3中所示,原始规则集中有10条2维规则,每条规则的位数是8。所述规则由‘0’、‘1’和‘*’组成的三值位串表示。设置每8位为一段,当每段中‘*’的个数大于4时,所述段的编码为‘0’,否则所述段的编码为‘1’。
表3
规则 | Dim_1 | Dim_2 | 分段码 |
R1 | 10101*** | 00010*** | 11 |
R2 | 11010*** | 11001*** | 11 |
R3 | 00011*** | 0110**** | 11 |
R4 | 1011**** | 1010**** | 11 |
R5 | 01100*** | 101***** | 10 |
R6 | 001***** | 10100*** | 01 |
R7 | ******** | 01110*** | 01 |
R8 | ******** | 10001*** | 01 |
R9 | 11001*** | ******** | 10 |
R10 | ******** | ******** | 00 |
在本实施例中,所述原始规则集划分的结束条件设置如下:
i)将所述原始规则集最多划分为2个子规则集;
ii)当所述子规则集中的匹配级别为0的规则数小于等于2时,无须继续划分;
iii)当匹配级别为0的规则数大于2且小于等于4时,则可以直接把所述子规则集中的匹配级别为0的规则作为一个新的子规则集。
由于表3中所示的规则数较少,因此,可以设置最低匹配级别为1。
在设置好所述结束条件后,规则集的划分方法如下所示:
S21、计算表3中所示的每条规则的分段码;结果如表3的最后一列所示。
S22、将所述分段码按规则数从高到低的次序排序(如表4所示)。
表4
分段码 | 11 | 01 | 10 | 00 |
规则数 | 4 | 3 | 2 | 1 |
S23、由于所述分段码中规则数最多的分段码为‘11’,因此将分段码‘11’作为种子分段码,并找出与所述分段码‘11’相匹配的所有分段码,同时根据所述其他每个分段码与种子分段码‘11’之间的匹配级别进行分类(如表5所示)。
表5
匹配级别 | 2 | 1 | 0 |
分段码 | 11 | 01,10 | 00 |
规则数 | 4 | 5 | 1 |
S24、将表5中的匹配级别不为0的分段码依次进行连续按位与操作,在连续按位与结果中1的个数小于最低匹配级别时,将最后参与连续按位与操作的分段码移到匹配级别为0的类别中。如表6所示,分段码01和10不匹配,而分段码01对应的规则数较多,因此分段码01先与分段码11进行按位与操作,得到结果01,进而以结果01与分段码10进行按位与操作,在进行了第二次按位与后的结果中1的个数小于最低匹配级别1;因此,将分段码10移到匹配级别为0的类别中。
表6
匹配级别 | 2 | 1 | 0 |
分段码 | 11 | 01 | 10,00 |
规则数 | 4 | 3 | 3 |
S25、将匹配级别大于0的分段码(11和01)对应的规则归入到一个子规则集;同时记录下它们的公共匹配分段码为01。
S26、如表6所示,匹配级别为0的规则数为3,满足条件iii),即当匹配级别为0的规则数大于2且小于等于4时,则可以直接把所述子规则集中的匹配级别为0的规则作为一个新的子规则集;所以将匹配级别为0的规则归入到一个新的子规则集。
根据所述以上步骤对原始规则集进行划分,则可以把原始规则集分为两个子规则集;并根据公共匹配分段码(01)可知,当用第二维的前4位对第一个子规则集进行切分时,则不会有规则复制。
本发明实施例提供的方案,根据分段码来对规则集进行划分进而创建决策树,能够同时考虑每条规则中通配符‘*’的数量和位置对规则划分的影响,使得构建决策树的时候可以选取适当的位对规则进行切分,这样可以有效地减少规则的复制,缩短了建树时间,提高内存的利用率。
实施例四:
对应于上述实施例一中的对报文进行分类的方法,本发明实施例提供了一种用于对报文进行分类的装置,如图5所示,该装置包括:
接收单元51,用于接收报文,所述报文可以是来自网络的多个报文;
查找单元52,用于在已创建的至少一个决策树中查找与所述报文相匹配的规则,所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树;
分类单元53,用于根据查找到的所述规则对所述报文进行分类处理;这里所说的处理,可以是针对不同类别的报文需执行的操作,例如丢弃、接受、计数等。
本实施例中的对报文进行分类的装置,可以是路由器,也可以是集成在路由器中的流分类引擎。
本发明实施例提供的对报文进行分类的装置,由于其在进行规则查找过程中所利用的决策树是基于分段码对原始规则集进行划分后进而创建的决策树,而使用分段码对规则集进行划分不仅可以减少规则的复制,而且可以使决策树的深度、内存占用量和建树时间都大大降低;因此,利用本发明实施例中提供的方案进行规则查找时,可以在保持查找带宽不变的前提下,大大提高查找、分类等处理过程的速度。
实施例五:
下面将以一具体实施例来对本发明实施例中提供的对报文进行分类的装置进行详细描述。
在本实施例中,所述对报文进行分类的装置,如图6所示,包括:接收单元61、查找单元62和分类单元63,以及划分单元64和建树单元65;其中,
划分单元64,用于根据分段码将原始规则集划分成至少两个子规则集;其中,所述分段码指的是将一条规则分成N(N≥2)段后,根据每一段中通配符‘*’的数量确定的代表所述规则的N位二进制码,其具体的确定方式参见实施例二中的描述,这里不再详述。
建树单元65,用于针对所述划分单元64划分得到的至少两个子规则集中的每个子规则集创建决策树,以便在进行报文分类时所述查找单元62进行规则查找。
此外,所述接收单元61,用于接收报文;所述报文可以是路由器接收到的来自网络的多个报文;
查找单元62,用于在已创建的至少一个决策树中查找与所述报文相匹配的规则,所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树;
分类单元63,用于根据查找到的所述规则对所述报文进行分类处理;这里所说的处理,可以是针对不同类别的报文需执行的操作,例如丢弃、接受、计数等。
在本实施例中,如图7所示,所述划分单元64可以通过如下方式来实现:
具体地,划分单元64包括:分段模块641、排序模块642、分类模块643、归类模块644、第一分集模块645、第二分集模块646、第三分集模块647、计算模块648、保存模块649;其中,
分段模块641,用于以至少两位字符为一段对所述原始规则集中的每条规则进行分段,并计算每条规则对应的分段码;
排序模块642,用于统计相同的分段码对应的规则数量,并按照所述规则数量从高到低对所述分段码进行排序;
分类模块643,用于选取对应规则数量最多的分段码,与按照规则数量排序后的其它分段码两两进行按位与操作,并将按位与结果中1的个数作为匹配级别对所述分段码按匹配级别从高到低的次序进行排序;
归类模块644,用于将所述按照匹配级别排序后的、且匹配级别不为0的分段码依次进行连续按位与操作,并在连续按位与的结果中1的个数小于最低匹配级别时,将最后一个参与连续按位与操作的分段码归入到匹配级别为0的类别中;
第一分集模块645,用于将所述匹配级别大于0的分段码对应的规则归入到第一子规则集;
第二分集模块646,用于在所述匹配级别为0的分段码所对应的规则数小于等于第一阈值时,将所述匹配级别为0的分段码对应的规则归入到第二子规则集;而如果所述匹配级别为0的分段码所对应的规则数大于第一阈值,则需要通过划分单元64,尤其是划分单元64中的分类模块643、归类模块644、第一分集模块645和第二分集模块646,从所述匹配级别为0的多个分段码中重新选取对应规则数量最多的一个分段码,以完成所述匹配级别为0的分段码的继续划分。
如果需要对子规则集的划分做更细致的限定,那么可以引入一个小于所述第一阈值的第二阈值;此时,所述第二分集模块646,具体用于在所述匹配级别为0的分段码所对应的规则数小于等于第一阈值、大于第二阈值时,将所述匹配级别为0的分段码对应的规则归入到第二子规则集;
此时,所述划分单元64还包括第三分集模块647,该第三分集模块647用于在所述匹配级别为0的分段码所对应的规则数小于等于所述第二阈值时,将所述匹配级别为0的分段码对应的规则归入到所述第一子规则集中。
进一步地,所述归类模块644在进行分段码的归类时所利用到的最低匹配级别可以通过计算模块648来计算得到;具体地,计算模块648用于根据如下公式计算得到所述最低匹配级别:
其中,Lmin为所述最低匹配级别;符号代表向上取整;k为分段码的每个二进制位对应的字符数;t为分段后可用于规则切分的字符段中包含的通配符的最大值;numRules为划分前原始规则集中的规则数;bucketSize为所述决策树的叶子结点中保存的最大规则数;f为所述决策树中平均每个叶子结点的利用效率。
此外,所述划分单元64还包括保存模块649,该保存模块649用于计算并保存经所述归类模块644进行归类处理后的匹配级别大于0的分段码依次进行连续按位与操作后的按位与结果,即经所述归类模块644进行归类处理后的匹配级别大于0的分段码的公共匹配分段码。
利用本实施例中的装置进行报文分类的过程,可以参看实施例二中的描述,此处不再赘述。
本发明实施例提供的对报文进行分类的装置,通过确定不同的规则对应的分段码,并从其中选取出种子分段码,继而根据其他分段码与所述种子分段码之间的匹配级别以及预先设定的最低匹配分段码来对分段码进行分类,以实现原始规则集的划分,从而得到至少两个子规则集并构建至少两个决策树;之后,就可以根据所述已构建的决策树对接收到的报文进行分类处理。使用本实施例中提供的装置,尤其是利用分段码对原始规则集进行划分,不仅可以减少规则的复制,在进行规则集切分时准确地选位,从而使决策树的深度、内存占用量和建树时间都大大降低,提高划分规则集的处理速度,而且在对报文进行分类时,也可以降低规则查找时间,提高分类效率。
此外,本发明实施例中提供的对报文进行分类的方法及装置,还可以支持增量更新。此处所涉及的增量更新指的是,在对原始规则集进行划分为多个子规则集后,当需要再增加或删除一些规则时,利用基于分段码的方法无需对已划分好的子规则集进行重新划分,只需要将新增的规则分到合适的子规则集中,或者将旧的规则从某个子规则集中删除。
当新增一个规则时,首先计算所述规则的分段码,并按照所述多个子规则集的产生顺序计算分段码跟各子规则集的公共匹配分段码的匹配级别。当所述新增规则的分段码跟某个子规则集的公共匹配分段码的匹配级别大于或等于该子规则集的最低匹配级别时,将所述新增规则添加到该子规则集中。
当删除一个规则时,首先计算所述规则的分段码,根据各子规则集的公共匹配分段码和最低匹配级别判断所述规则属于哪一个子规则集,并把所述规则从所述的子规则集中删除。当某个子规则集中的规则删除后,其包含的规则数量小于某个阈值时,则将该子规则集跟其它子规则集合并;所述阈值在实际过程中可以根据实际需要来设置。
通过分段码的方法对规则集进行划分,可以很灵活的对子规则集进行更新,所述更新包括所述子规则集中新规则的增加或所述子规则集中旧规则的删除等。与现有技术相比,所述分段码的方法大大降低了更新的时间和所述更新活动带来的内存占有量。
当规则数较多且难以切分时,可以采用软硬件结合的解决方案。将容易切分的规则通过软件方式来处理,而不容易切分的规则放在TCAM(TernaryContent Addressable Memory,三态内容寻址存储器)中进行处理。然而,由于TCAM的集成和存储效率低、功耗大,因此应当将尽量少且跟其它规则不匹配的规则放在TCAM中处理,以减少TCAM的使用。
在本发明实施例提供的方案中,基于分段码对原始规则集进行划分可以尽快地将大部分规则分离出来;而且,由于分段码方法保证了规则之间的匹配性,这些分离出来的规则很容易通过软件方式来进行切分,剩余的不容易切分的少量规则可以放在TCAM中。这样,既可以提高算法的性能,又能节省TCAM的空间。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种对报文进行分类的方法,其特征在于,包括:
接收报文;
在已创建的至少一个决策树中查找与所述报文相匹配的规则,所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树,所述分段码为是根据所述原始规则集中的规则中‘*’的数量和位置而确定的N位二进制码;
根据查找到的所述规则对所述报文进行分类处理。
2.根据权利要求1所述的对报文进行分类的方法,其特征在于,在所述在已创建的至少一个决策树中查找与所述报文相匹配的规则之前,还包括:
根据分段码将原始规则集划分成至少两个子规则集;
针对每个所述子规则集创建决策树。
3.根据权利要求2所述的对报文进行分类的方法,其特征在于,所述根据分段码将原始规则集划分成至少两个子规则集,包括:
以至少两位字符为一段对所述原始规则集中的每条规则进行分段,并计算每条规则对应的分段码;
统计相同的分段码对应的规则数量,并按照所述规则数量从高到低对所述分段码进行排序;
选取对应规则数量最多的分段码,顺次与按照规则数量排序后的其他分段码两两进行按位与操作,并将按位与结果中1的个数作为匹配级别对所述分段码进行分类排序;
将所述按照匹配级别排序后的、且匹配级别不为0的分段码依次进行连续按位与操作,并在连续按位与的结果中1的个数小于最低匹配级别时,将最后一个参与连续按位与操作的分段码归入到匹配级别为0的类别中;
将所述匹配级别大于0的分段码对应的规则归入到第一子规则集;
在所述匹配级别为0的分段码所对应的规则数小于等于第一阈值时,将所述匹配级别为0的分段码对应的规则归入到第二子规则集;在所述匹配级别为0的分段码所对应的规则数大于所述第一阈值时,从所述匹配级别为0的多个分段码中重新选取对应规则数量最多的一个分段码,并重复上述步骤以对所述匹配级别为0的分段码继续划分。
4.根据权利要求3所述的对报文进行分类的方法,其特征在于,在所述将所述按照匹配级别排序后的、且匹配级别不为0的分段码依次进行连续按位与操作之后,还包括:
计算并保存所述匹配级别大于0的分段码依次进行连续按位与操作后的按位与结果。
5.根据权利要求3所述的对报文进行分类的方法,其特征在于,
所述在所述匹配级别为0的分段码所对应的规则数小于等于第一阈值时,将所述匹配级别为0的分段码对应的规则归入到第二子规则集,为:在所述匹配级别为0的分段码所对应的规则数小于等于第一阈值、大于第二阈值时,将所述匹配级别为0的分段码对应的规则归入到第二子规则集;其中,所述第一阈值大于所述第二阈值;则,
所述根据分段码将原始规则集划分成至少两个子规则集,还包括:
在所述匹配级别为0的分段码所对应的规则数小于等于所述第二阈值时,将所述匹配级别为0的分段码对应的规则归入到所述第一子规则集中。
7.一种对报文进行分类的装置,其特征在于,包括:
接收单元,用于接收报文;
查找单元,用于在已创建的至少一个决策树中查找与所述报文相匹配的规则,所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树,所述分段码为是根据所述原始规则集中的规则中‘*’的数量和位置而确定的N位二进制码;
分类单元,用于根据查找到的所述规则对所述报文进行分类处理。
8.根据权利要求7所述的对报文进行分类的装置,其特征在于,还包括:
划分单元,用于根据分段码将原始规则集划分成至少两个子规则集;
建树单元,用于针对每个所述子规则集创建决策树,以便所述查找单元进行规则查找。
9.根据权利要求8所述的对报文进行分类的装置,其特征在于,所述划分单元,包括:
分段模块,用于以至少两位字符为一段对所述原始规则集中的每条规则进行分段,并计算每条规则对应的分段码;
排序模块,用于统计相同的分段码对应的规则数量,并按照所述规则数量从高到低对所述分段码进行排序;
分类模块,用于选取对应规则数量最多的分段码,顺次与按照规则数量排序后的其他分段码两两进行按位与操作,并将按位与结果中1的个数作为匹配 级别对所述分段码进行分类排序;
归类模块,用于将所述按照匹配级别排序后的、且匹配级别不为0的分段码依次进行连续按位与操作,并在连续按位与的结果中1的个数小于最低匹配级别时,将最后一个参与连续按位与操作的分段码归入到匹配级别为0的类别中;
第一分集模块,用于将所述匹配级别大于0的分段码对应的规则归入到第一子规则集;
第二分集模块,用于在所述匹配级别为0的分段码所对应的规则数小于等于第一阈值时,将所述匹配级别为0的分段码对应的规则归入到第二子规则集。
10.根据权利要求9所述的对报文进行分类的装置,其特征在于,
所述划分单元,还用于在所述匹配级别为0的分段码所对应的规则数大于所述第一阈值时,从所述匹配级别为0的多个分段码中重新选取对应规则数量最多的一个分段码,以对所述匹配级别为0的分段码继续划分。
11.根据权利要求9所述的对报文进行分类的装置,其特征在于,还包括:
保存模块,用于计算并保存经所述归类模块进行归类处理后的匹配级别大于0的分段码依次进行连续按位与操作后的按位与结果。
12.根据权利要求9所述的对报文进行分类的装置,其特征在于,
所述第二分集模块,具体用于在所述匹配级别为0的分段码所对应的规则数小于等于第一阈值、大于第二阈值时,将所述匹配级别为0的分段码对应的规则归入到第二子规则集;其中,所述第一阈值大于所述第二阈值;且,
所述划分单元还包括:
第三分集模块,用于在所述匹配级别为0的分段码所对应的规则数小于等于所述第二阈值时,将所述匹配级别为0的分段码对应的规则归入到所述第一 子规则集中。
13.根据权利要求9所述的对报文进行分类的装置,其特征在于,还包括;
计算模块,用于根据如下公式计算得到所述最低匹配级别:
其中,Lmin为所述最低匹配级别;k为分段码的每个二进制位对应的字符数;t为分段后可用于规则切分的字符段中包含的通配符的最大值;numRules为划分前原始规则集中的规则数;bucketSize为所述决策树的叶子结点中保存的最大规则数;f为所述决策树中平均每个叶子结点的利用效率;符号代表向上取整。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2010/074575 WO2011085577A1 (zh) | 2010-06-28 | 2010-06-28 | 对报文进行分类的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102308533A CN102308533A (zh) | 2012-01-04 |
CN102308533B true CN102308533B (zh) | 2013-10-09 |
Family
ID=44303819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080002602.0A Active CN102308533B (zh) | 2010-06-28 | 2010-06-28 | 对报文进行分类的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8732110B2 (zh) |
EP (1) | EP2582096B1 (zh) |
CN (1) | CN102308533B (zh) |
WO (1) | WO2011085577A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209614A (zh) * | 2015-04-30 | 2016-12-07 | 杭州华三通信技术有限公司 | 一种网包分类方法和装置 |
WO2022152231A1 (zh) * | 2021-01-15 | 2022-07-21 | 华为技术有限公司 | 一种网络配置规则的处理方法以及相关设备 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664787B (zh) | 2012-04-01 | 2014-10-08 | 华为技术有限公司 | 决策树的生成方法和装置 |
CN103516757B (zh) * | 2012-06-28 | 2016-12-21 | 华为技术有限公司 | 内容处理方法、装置及系统 |
GB2521406A (en) | 2013-12-18 | 2015-06-24 | Ibm | Transforming rules into generalised rules in a rule management system |
CN103780435B (zh) * | 2014-02-18 | 2017-09-26 | 迈普通信技术股份有限公司 | 使用端口号掩码对数据流进行分类的方法及系统 |
US9967309B2 (en) * | 2014-10-06 | 2018-05-08 | Microsoft Technology Licensing, Llc | Dynamic loading of routes in a single-page application |
CN105072122A (zh) * | 2015-08-19 | 2015-11-18 | 山东超越数控电子有限公司 | 一种数据包快速匹配分类方法 |
CN106096022B (zh) * | 2016-06-22 | 2020-02-11 | 杭州迪普科技股份有限公司 | 多域网包分类规则的划分方法及装置 |
CN108572921B (zh) * | 2017-05-15 | 2021-03-12 | 北京金山云网络技术有限公司 | 规则集更新方法、装置、规则匹配方法及装置 |
CN109218211B (zh) * | 2017-07-06 | 2022-04-19 | 创新先进技术有限公司 | 数据流的控制策略中阈值的调整方法、装置和设备 |
GB2580285B (en) | 2018-08-13 | 2021-01-06 | Metaswitch Networks Ltd | Packet processing graphs |
US11552887B2 (en) * | 2019-08-07 | 2023-01-10 | Arista Networks, Inc. | System and method of processing packet classification with range sets |
CN110705227A (zh) * | 2019-08-15 | 2020-01-17 | 广州文冲船厂有限责任公司 | 一种型材下料表的转化方法 |
CN112367262B (zh) * | 2020-08-20 | 2022-07-05 | 国家计算机网络与信息安全管理中心 | 一种五元组规则的匹配方法及装置 |
CN113347173B (zh) * | 2021-05-31 | 2022-04-22 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
CN117609894B (zh) * | 2024-01-23 | 2024-04-09 | 中国人民解放军国防科技大学 | 一种基于分区策略的高性能报文分类方法、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992674A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种基于多比特分割的多维分组分类方法 |
CN1992673A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种高速路由器及防火墙中实现快速分组流识别的方法 |
CN101345707A (zh) * | 2008-08-06 | 2009-01-14 | 北京邮电大学 | 一种实现IPv6报文分类的方法及设备 |
CN101478551A (zh) * | 2009-01-19 | 2009-07-08 | 清华大学 | 基于多核处理器的多域网包分类方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039641B2 (en) | 2000-02-24 | 2006-05-02 | Lucent Technologies Inc. | Modular packet classification |
SE532426C2 (sv) * | 2008-05-26 | 2010-01-19 | Oricane Ab | Metod för datapaketklassificering i ett datakommunikationsnät |
-
2010
- 2010-06-28 EP EP10842861.6A patent/EP2582096B1/en active Active
- 2010-06-28 WO PCT/CN2010/074575 patent/WO2011085577A1/zh active Application Filing
- 2010-06-28 CN CN201080002602.0A patent/CN102308533B/zh active Active
-
2012
- 2012-12-21 US US13/724,797 patent/US8732110B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992674A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种基于多比特分割的多维分组分类方法 |
CN1992673A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种高速路由器及防火墙中实现快速分组流识别的方法 |
CN101345707A (zh) * | 2008-08-06 | 2009-01-14 | 北京邮电大学 | 一种实现IPv6报文分类的方法及设备 |
CN101478551A (zh) * | 2009-01-19 | 2009-07-08 | 清华大学 | 基于多核处理器的多域网包分类方法 |
Non-Patent Citations (3)
Title |
---|
宁卓,龚俭.《基于最大属性熵的GIDS报文分类算法》.《西安电子科技大学学报(自然科学版)》.2007,第2页第2段. * |
张定心.《报文分类算法的研究》.《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑2004年第01期》.2004,全文. * |
高蕾,谭明峰,龚正虎.《IP报文分类算法综述与评价》.《计算机工程与科学》.2006,第28卷(第3期),全文. * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209614A (zh) * | 2015-04-30 | 2016-12-07 | 杭州华三通信技术有限公司 | 一种网包分类方法和装置 |
CN106209614B (zh) * | 2015-04-30 | 2019-09-17 | 新华三技术有限公司 | 一种网包分类方法和装置 |
WO2022152231A1 (zh) * | 2021-01-15 | 2022-07-21 | 华为技术有限公司 | 一种网络配置规则的处理方法以及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102308533A (zh) | 2012-01-04 |
EP2582096A1 (en) | 2013-04-17 |
US8732110B2 (en) | 2014-05-20 |
EP2582096B1 (en) | 2016-03-30 |
EP2582096A4 (en) | 2013-07-03 |
WO2011085577A1 (zh) | 2011-07-21 |
US20130166491A1 (en) | 2013-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102308533B (zh) | 对报文进行分类的方法及装置 | |
CN101345707B (zh) | 一种实现IPv6报文分类的方法及设备 | |
CN102377664B (zh) | 一种基于tcam的区域匹配装置和方法 | |
US7536476B1 (en) | Method for performing tree based ACL lookups | |
CN104579941A (zh) | 一种OpenFlow交换机中的报文分类方法 | |
US20160071016A1 (en) | Scope In Decision Trees | |
US20150117461A1 (en) | Packet Classification | |
Meiners et al. | Split: Optimizing space, power, and throughput for TCAM-based classification | |
CN1482548A (zh) | 对多重搜索实行的过滤器规则进行划分的方法和系统 | |
Meiners et al. | Hardware based packet classification for high speed internet routers | |
KR100512949B1 (ko) | 필드레벨 트리를 이용한 패킷분류장치 및 방법 | |
CN101241499B (zh) | 在高内存访问位宽下实现Patricia查找树的方法 | |
Abbasi et al. | MBitCuts: optimal bit-level cutting in geometric space packet classification | |
Yang et al. | Fast OpenFlow table lookup with fast update | |
Chang et al. | Fast packet classification using recursive endpoint-cutting and bucket compression on FPGA | |
CN100472427C (zh) | 一种数据包递归流分类方法 | |
US9900409B2 (en) | Classification engine for data packet classification | |
Kekely et al. | Packet classification with limited memory resources | |
Li et al. | MEET-IP: Memory and energy efficient TCAM-based IP lookup | |
Chang | Efficient multidimensional packet classification with fast updates | |
US20040177150A1 (en) | Method for filter selection and array matching | |
US6781961B1 (en) | Systems and methods for routing messages sent between computer systems | |
CN108259353A (zh) | 一种基于匹配字段具体值重复率的多级流表设计方法 | |
Gulzar et al. | A model for computing skyline data items in cloud incomplete databases | |
Rafiee et al. | Pruned Kd-tree: a memory-efficient algorithm for multi-field packet classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |