CN102308533A - 对报文进行分类的方法及装置 - Google Patents
对报文进行分类的方法及装置 Download PDFInfo
- Publication number
- CN102308533A CN102308533A CN2010800026020A CN201080002602A CN102308533A CN 102308533 A CN102308533 A CN 102308533A CN 2010800026020 A CN2010800026020 A CN 2010800026020A CN 201080002602 A CN201080002602 A CN 201080002602A CN 102308533 A CN102308533 A CN 102308533A
- Authority
- CN
- China
- Prior art keywords
- rule
- fragment code
- rank
- fragment
- matching
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000003066 decision tree Methods 0.000 claims abstract description 80
- 230000011218 segmentation Effects 0.000 claims abstract description 13
- 239000012634 fragment Substances 0.000 claims description 246
- 238000005520 cutting process Methods 0.000 claims description 46
- 235000017166 Bambusa arundinacea Nutrition 0.000 claims description 3
- 235000017491 Bambusa tulda Nutrition 0.000 claims description 3
- 241001330002 Bambuseae Species 0.000 claims description 3
- 235000015334 Phyllostachys viridis Nutrition 0.000 claims description 3
- 239000011425 bamboo Substances 0.000 claims description 3
- 235000015170 shellfish Nutrition 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 2
- 230000010076 replication Effects 0.000 abstract 1
- 239000000203 mixture Substances 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000007635 classification algorithm Methods 0.000 description 3
- 239000012141 concentrate Substances 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 101000773151 Homo sapiens Thioredoxin-like protein 4B Proteins 0.000 description 1
- 102100030273 Thioredoxin-like protein 4B Human genes 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
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 ) 中介绍的方法将原始规则集分别划分为 si和 s2个子类, 然后用交叉积的方法就可以将原始规则集划分为 si * s2个子规则集。
通过上述改进后的基于决策树的流分类算法, 可以将原始规则集划分为 "完全"不重叠的子规则集, 从一定程序上減少规则的复制; 不过, 在利用上述 改进后的流分类算法进行报文分类的过程中, 发明人发现现有技术中至少还 存在如下问题:
规则是否出现复制取决于, 在切分时规则在用于切分的位中是否存在通 配符' *,, 并不是取决于规则的域之间是否重叠; 因此, 上述方案仅适用于完 全按照域进行切分的流分类算法中。
发明内容
本发明的实施例提供一种对报文进行分类的方法及装置 , 用以減少分类 过程中的规则复制, 提高分类效率。
为达到上述目的 , 本发明的实施例采用如下技术方案:
一种对报文进行分类的方法, 包括:
接收报文;
在已创建的至少一个决策树中查找与所述报文相匹配的规则, 所述决策 树为基于分段码对原始规则集进行划分后进而创建的决策树;
根据查找到的所述规则对所述报文进行分类处理。
一种对报文进行分类的装置, 包括:
接收单元, 用于接收报文;
查找单元, 用于在已创建的至少一个决策树中查找与所述 #艮文相匹配的 规则, 所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树; 分类单元, 用于根据查找到的所述规则对所述报文进行分类处理。
本发明实施例提供的对报文进行分类的方法及装置, 由于其在进行规则 查找过程中所利用的决策树是基于分段码对原始规则集进行划分后进而创建 的决策树, 而使用分段码对规则集进行划分不仅可以减少规则的复制, 而且 可以使决策树的深度、 内存占用量和建树时间都大大降低; 因此, 利用本发 明实施例中提供的方案进行规则查找时, 可以在保持查找带宽不变的前提下, 大大提高查找、 分类等处理过程的速度。 与现有技术相比, 本发明实施例中 提供的方法及装置, 可以减少分类过程中的规则复制, 提高分类效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实 施例描述中所需要使用的附图作筒单地介绍, 显而易见地, 下面描述中的附 图仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创 造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1为规则集切分示意图;
图 2为本发明实施例一中的对报文进行分类的方法的流程图;
图 3为本发明实施例二中的对报文进行分类的方法的流程图;
图 4为本发明实施例二中的对规则集进行划分的流程图;
图 5为本发明实施例四中的对报文进行分类的装置的结构示意图; 图 6为本发明实施例五中的对报文进行分类的装置的结构示意图; 图 Ί为本发明实施例五中的划分单元的结构示意图。
具体实施方式
在基于决策树的流分类过程中, 规则中通配符 (指某一个二进制位
为 '*,)的数量和位置决定了在构建决策树过程中, 是否容易导致规则复制。 由于通配符 '*, 的数量不同导致规则复制的情况在前述部分中已有描述, 这里再解释一下 的位置对规则复制的影响。 在表 1、 表 2所示的两个例 子中, '*' 的个数完全相同, 只是在规则中出现的位置不同。 对于表 1中的 4 条规则 出现的位置完全相同, 因此在对表 1中的规则集进行切分时, 只 需要选择第一维(Diml ) 的前两位将规则集切分为 4个子规则集; 每个子规 则集包含一条规则, 并且没有规则复制, 如图 1 (a)所示。 对于表 2中的规则, '*, 的位置交叉出现; 这时,无论选择哪一位进行切分都会导致规则的复制。 例如, 选择第一维(Diml ) 的第一位和第二维(Dim2 ) 的第一位进行切分, 可以将表 2中的规则集切分为 4个子规则集, 而每个子规则集中都有 2条规 则, 如图 1(b)所示。 由上可知, 虽然在表 1和表 2所示的两个例子中 的 个数都完全相同, 但规则复制的程度却相差甚远。
对于一个规则集, 如果选择某些位进行切分时不会导致复制, 我们就称 这个规则集中的规则是匹配的; 如果无论选择哪一位进行切分都会导致复制, 就称该规则集中的规则是不匹配的。 在图 1所对应的示例中, 表 1中的 4条 规则就是匹配的; 表 2中的 4条规则就是不匹配的。 而且, 对于匹配规则, 切分时不会导致复制的可选位越多, 则相互匹配的程度越高, 在创建决策树 的过程中越不容易导致复制。
为了更好地描述规则之间的匹配性, 下面我们引入规则分段的思想。
首先, 我们将每条规则可以看作一个由 '0,, '1 ', 和' *,组成的三值位串。 如果将每条规则对应的位串分为 N ( N > 2 )段, 并统计每一段中' *,的个数, 则该段中 '*,的数量主导着在使用该段中的位进行切分时, 该规则是否容易被 复制。 当一条规则的某一段中 '*,的个数超过某个阔值 t时 (比如一段规则中包 含 16位字符, 当' *,的个数超过 8时), 就可以认为该段中的位对于该规则是 "坏" 的, 即用该段中的位进行切分时, 该规则容易被复制, 或者说有较大 的被复制的趋势; 否则就认为该段中的位对于该规则是 "好" 的。 通过统计 每条规则中哪些段是 "好" 的, 哪些段是 "坏" 的, 可以对每条规则中 的个数和位置有一个大概的了解, 并依此作为划分规则集的依据。
具体地, 每条规则都是由 '0,、 '1,和' *'组成的三值位串, 即在每条规则 中包含有多位字符' 0,、 '1,和' *,; 以其中至少两位字符为一段, 将每条规则对 应的位串分为 N段, 当某一段中' *'的个数超过某个阈值 t时, 称该段为 "坏" 的, 将其编码为 0; 否则, 称该段为 "好" 的, 编码为 1。 这样, 每条规则就 对应一个 N位的二进制码, 称为分段码。 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行 清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而 不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
实施例一:
如图 2所示, 本发明实施例提供的对报文进行分类的方法, 包括:
201、 接收报文。
路由器可以接收来自网络的多个报文, 然后由流分类器对报文中的多个 域进行检查, 以便查找与所述 4艮文相匹配的规则。
202、 在已创建的至少一个决策树中查找与所述 文相匹配的规则, 所述 决策树为基于分段码对原始规则集进行划分后进而创建的决策树。
基于分段码对原始规则集进行划分后进而创建的决策树在创建时, 同时
考虑通配符 '*, 的数量和位置, 相比于通过现有方法创建的决策树, 其出现 规则复制的情况更少, 且决策树的深度较现有的决策树要小, 因此利用本实 施例中的基于分段码对原始规则集进行划分后进而创建的决策树可以缩短查 找与所述报文相匹配的规则的时间, 提高分类效率。
203、 根据查找到的所述规则对所述报文进行分类处理。
在步骤 203 中, 可以认为与同一条规则相匹配的所有报文属于一类, 而 针对不同类的报文其处理方式可能是不一样的, 例如所述处理可以是丢弃、 接受、 计数等。
在本实施例中, 上述各步骤的执行主体可以是路由器、 或者集成在路由 器内部的流分类引擎。
本发明实施例提供的对报文进行分类的方法, 由于其在进行规则查找过 程中所利用的决策树是基于分段码对原始规则集进行划分后进而创建的决策 树, 而使用分段码对规则集进行划分不仅可以减少规则的复制, 而且可以使 决策树的深度、 内存占用量和建树时间都大大降低; 因此, 利用本发明实施 例中提供的方案进行规则查找时, 可以在保持查找带宽不变的前提下, 大大 提高查找、 分类等处理过程的速度。
实施例二:
下面将以一具体实施例来对本发明实施例中提供的对报文进行分类的方 法进行详细描述。 不过在对所述方法的实现过程进行详述之前, 可以先介绍 以下几个 f既念:
1 )通过上面的描述可知, 分段码是根据规则中 的数量和位置而确定的 N位二进制码。 具体地, 在每条规则中包含有多位字符' 0,、 T和' *,; 以其中 至少两位字符为一段, 将每条规则对应的位串分为 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所示, 可以通过以下步骤来实现:
S 11、 以至少两位字符为一段对所述原始规则集中的每条规则进行分段, 并计算每条规则对应的分段码。
如果将所述原始规则集中的一条规则分成了 N ( N > 2 )段, 则这条规则 对应的分段码就是一个 N位的二进制码。
512、 在得到了每条规则对应的分段码之后, 统计相同的分段码对应的规 则数量, 并按照所述规则数量从高到低的次序对所述分段码进行排序。
在本步骤中, 当然还可以是按照所述分段码对应的规则的数量从低到高 的次序对所述分段码进行排序; 具体的排序方式可以根据实际执行过程中的 需要来确定。
513、在所述按照规则数量进行排序后的分段码中选 应规则数量最多 的分段码作为种子分段码, 与按照规则数量排序后的其它分段码两两进行按 位与操作; 统计按位与结果中 1的个数, 按照所述按位与结杲中 1的个数的
多少对所述分段码进行分类排序。
在步骤 S13 中, 之所以选对应规则数量最多的分段码作为种子分段码, 是为了尽快地把大部分的规则分离出来。 这样, 种子分段码不仅仅本身对应 的规则数多, 而且一般情况下跟它匹配的分段码也较多。
通过前面的描述可知, 两个分段码进行按位与运算后得到的二进制结果 中, 1的个数即为这两个分段码之间的匹配级别。 那么, 在步骤 S 13中, 就是 以其他分段码与所述种子分段码之间的匹配级别对所得到的全部分段码进行 排序。 所述分段码之间的匹配级别反映了规则切分时的复制的趋势, 即当所 述的匹配级别越高, 则规则切分时的复制的趋势越小, 反之亦然。
S 14、 将所述按照匹配级别排序后的、 且匹配级别不为 0的分段码依次进 行连续按位与操作, 并在连续按位与的结杲中 1的个数小于最低匹配级别时, 将最后一个参与连续按位与的分段码归入到匹配级别为 0的类别中。
其中, 将匹配级别不为 0的分段码依次进行连续按位与操作, 指的是: 依次将所述匹配级别不为 0 的分段码中、 前面所有分段码的按位与结果与后 面一个分段码进行按位与运算 , 直至得到全部分段码相按位与后的结果。
在所述依次进行连续按位与操作的过程中, 所有可能使按位与结果中 1 的个数 、于最低匹配级别的分段码都被归入到了与种子分段码的匹配级别为
0 的类别中; 那么剩余的分段码进行连续按位与操作后得到的最终结果也就 是, 与种子分段码之间的匹配级别大于 0的类别中所有分段码的公共匹配分 段码。
此外, 还应该将计算得到的所述匹配级别大于 0的分段码的公共匹配分 段码进行保存。
在步骤 S14中, 所述最低匹配级别 可以通过如下公式计算得到:
其中, 符号 "「," 代表向上取整; k为分段码的每个二进制位对应的字
符数; t为分段后可用于规则切分的字符段中包含的通配符的最大值, 也就是 一段字符中 '*, 的数量的阈值; num ules为划分前原始规则集中的规则数; bucketSize为所述决策树的叶子结点中保存的最大规则数; f为所述决策树中 平均每个叶子结点的利用效率, 该值在决策树创建之前很难得到精确的结果, 因此可以根据经验值来设定。
一个规则集的最低匹配级别反映了该规则集中, 可以用于切分而不易导 致复制的位的多少。 当规则数较少时, 只需要较少的位就可以将它们分开, 这时可以将最低匹配级别设得'、一些; 当规则数很多时, 需要用很多位才能 切分开, 这时需要把最低匹配级别设得高一些。 比如, 设定一段中' *,的个数 超过 8时, 该段对应的位为' 0,。 假设在一个规则集中, 规则之间的最低匹配 级别是 1 , 那么这些规则在用不超过 8位进行切分时规则的复制程度较小,但 当需要用更多的位进行切分时, 还是可能导致较多复制。 这种情况可以通过 提高规则集的最低匹配級别来解决。
515、 将所述匹配级别大于 0的分段码对应的规则归入到第一子规则集。 同时, 可以将步骤 S14中得到的所有匹配级别大于 0的分段码的公共匹 配分段码和最低匹配级别作为所述第一子规则集的属性进行保存。
516、在所述匹配级别为 0的分段码所对应的规则数小于等于第一阔值时, 将所述匹配级别为 0的分段码对应的规则归入到第二子规则集, 并结束规则 集的继续划分; 在所述匹配级别为 0 的分段码所对应的规则数大于所述第一 阈值时, 从所述匹配级别为 0的多个分段码中重新选取对应规则数量最多的 一个分段码, 返回步骤 S13 , 以对所述匹配级别为 0的所有分段码继续划分。
其中, 所述第一阔值可以是但不限于每个叶子结点中可容纳的规则数的 倍数, 例如 n*bucketSize, n > 2; 在所述匹配级别为 0的分段码所对应的规则 数小于等于 n*bucketSize时,可以认为此时剩余的规则数较少,可以不必要进 一步对规则集进行划分。
如果在判断规则划分是否可以结束时, 涉及到两个阔值的话, 则可以通
过以下方式来确定剩余的匹配级别为 0 的分段码应该归入的子规则集。 具体 地,
在所述匹配级别为 0的分段码所对应的规则数小于等于第一阈值且大于 笫二阁值时, 这里的第二阈值要小于所述第一阈值, 其可以是但不限于每个 叶子结点中可容纳的规则数, 此时可以将所述匹配级别为 0的分段码对应的 规则归入到第二子规则集, 以针对不同的子规则集构建不同的决策树, 减低 每个决策树的深度;
而在所述匹配级别为 0的分段码所对应的规则数小于等于所述第二阈值 时, 由于剩余的匹配级别为 0的分段码所对应的规则数很小, 因此可以将所 述匹配级别为 0 的分段码对应的规则归入到所述第一子规则集中; 这种划分 方案适用于原始规则集本身就比较小的情况, 根据所述第一子规则集构建的 决策树的深度不会很大, 对分类过程中的查找速率影响不大。
通过上述方法, 对于一些规则之间匹配很好的规则集, 不必划分或划分 的子规则集数 I较少; 而对于匹配不好的规则集, 可以划分成较多的子规则 集。 这样, 可以实现规则集的按需划分。
另外, 也可以事先设定要产生的子规则集的数目; 比如, 可以设置将原 始规则集划分成 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,、 T和' *,组成的三值位串表示。 设置每 8位为一段, 当每段 中' *,的个数大于 4时, 所述段的编码为' 0' , 否则所述段的编码为' Γ。
表 3
在本实施例中 , 所述原始规则集划分的结束条件设置如下:
i)将所述原始规则集最多划分为 2个子规则集;
ii) 当所述子规则集中的匹配级别为 0的规则数小于等于 2时, 无须继续 划分;
iii)当匹配级别为 0的规则数大于 2且小于等于 4时, 则可以直接把所述 子规则集中的匹配级别为 0的规则作为一个新的子规则集。
由于表 3中所示的规则数较少, 因此, 可以设置最低匹配级别为 1。 在设置好所述结束条件后, 规则集的划分方法如下所示:
521、计算表 3中所示的每条规则的分段码;结果如表 3的最后一列所示。
522、 将所述分段码按规则数从高到低的次序排序 (如表 4所示)。
表 4
S23、由于所述分段码中规则数最多的分段码为 'Ι Γ , 因此将分段码 '11, 作为种子分段码, 并找出与所述分段码 '11' 相匹配的所有分段码, 同时根 据所述其他每个分段码与种子分段码 '11, 之间的匹配级别进行分类 (如表 5 所示)。
表 5
S24、 将表 5中的匹配级别不为 0的分段码依次进行连续按位与操作, 在 连续按位与结果中 1 的个数小于最低匹配级别时, 将最后参与连续按位与操 作的分段码移到匹配级别为 0的类别中。 如表 6所示, 分段码 01和 10不匹 配, 而分段码 01对应的规则数较多 , 因此分段码 01先与分段码 11进行按位 与操作, 得到结果 01 , 进而以结果 01与分段码 10进行按位与操作, 在进行 了第二次按位与后的结果中 1 的个数小于最低匹配级别 1; 因此, 将分段码 10移到匹配级别为 0的类别中。
表 6
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, 用于根据分段码将原始规则集划分成至少两个子规则集; 其中, 所述分段码指的是将一条规则分成 Ν ( Ν > 2 )段后, 根据每一段中通 配符 '*' 的数量确定的代表所述规则的 Ν位二进制码, 其具体的确定方式参 见实施例二中的描述, 这里不再详述。
建树单元 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用于根据 如下公式计算得到所述 匹配级别:
其中, 为所述最低匹配级别; 符号 "「,"代表向上取整; k为分段码 的每个二进制位对应的字符数; t为分段后可用于规则切分的字符段中包含的 通配符的最大值; numRules为划分前原始规则集中的规则数; bucketSize为 所述决策树的叶子结点中保存的最大规则数; f为所述决策树中平均每个叶子 结点的利用效率。
此外, 所述划分单元 64还包括保存模块 649, 该保存模块 649用于计算 并保存经所述归类模块 644进行归类处理后的匹配级别大于 0的分段码依次 进行连续按位与操作后的按位与结果, 即经所述归类模块 644进行归类处理 后的匹配级别大于 0的分段码的公共匹配分段码。
利用本实施例中的装置进行报文分类的过程, 可以参看实施例二中的描 述, 此处不再赞述。
本发明实施例提供的对报文进行分类的装置, 通过确定不同的规则对应 的分段码, 并从其中选取出种子分段码, 继而根据其他分段码与所述种子分 段码之间的匹配级别以及预先设定的最低匹配分段码来对分段码进行分类, 以实现原始规则集的划分, 从而得到至少两个子规则集并构建至少两个决策 树; 之后, 就可以根据所述已构建的决策树对接收到的报文进行分类处理。 使用本实施例中提供的装置, 尤其是利用分段码对原始规则集进行划分, 不 仅可以减少规则的复制, 在进行规则集切分时准确地选位, 从而使决策树的
深度、 内存占用量和建树时间都大大降低, 提高划分规则集的处理速度, 而 且在对报文进行分类时, 也可以降低规则查找时间, 提高分类效率。 此外, 本发明实施例中提供的对报文进行分类的方法及装置, 还可以支 持增量更新。 此处所涉及的增量更新指的是, 在对原始规则集进行划分为多 个子规则集后, 当需要再增加或删除一些规则时, 利用基于分段码的方法无 需对已划分好的子规则集进行重新划分, 只需要将新增的规则分到合适的子 规则集中, 或者将旧的规则从某个子规则集中删除。
当新增一个规则时, 首先计算所述规则的分段码, 并按照所述多个子规 则集的产生顺序计算分段码跟各子规则集的公共匹配分段码的匹配级别。 当 所述新增规则的分段码跟某个子规则集的公共匹配分段码的匹配级别大于或 等于 该子规则集的最低匹配级别时, 将所述新增规则添加到该子规则集中。
当删除一个规则时, 首先计算所述规则的分段码, 根据各子规则集的公 共匹配分段码和最低匹配级别判断所述规则属于哪一个子规则集, 并把所述 规则从所述的子规则集中删除。 当某个子规则集中的规则删除后, 其包含的 规则数量小于某个阈值时, 则将该子规则集跟其它子规则集合并; 所述闹值 在实际过程中可以根据实际需要来设置„
通过分段码的方法对规则集进行划分, 可以很灵活的对子规则集进行更 新, 所述更新包括所述子规则集中新规则的增加或所述子规则集中旧规则的 删除等。 与现有技术相比, 所述分段码的方法大大降低了更新的时间和所述 更新活动带来的内存占有量。 当规则数较多且难以切分时, 可以采用软硬件结合的解决方案。 将容易 切分的规则通过软件方式来处理, 而不容易切分的规则放在 TCAM ( Ternary Content Addressable Memory, 三态内容寻址存储器) 中进行处理。 然而, 由 于 TCAM的集成和存储效率低、 功耗大, 因此应当将尽量少且跟其它规则不 匹配的规则放在 TCAM中处理, 以减少 TCAM的使用。
在本发明实施例提供的方案中, 基于分段码对原始规则集进行划分可以 尽快地将大部分规则分离出来; 而且, 由于分段码方法保证了规则之间的匹 配性, 这些分离出来的规则很容易通过软件方式来进行切分, 剩余的不容易 切分的少量规则可以放在 TCAM中。 这样, 既可以提高算法的性能, 又能节 省 TCAM的空间。
通过以上的实施方式的描述, 所属领域的技术人员可以清楚地了解到本 发明可借助软件加必需的通用硬件的方式来实现, 当然也可以通过硬件, 但 很多情况下前者是更佳的实施方式。 基于这样的理解, 本发明的技术方案本 质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来, 该 计算机软件产品存储在可读取的存储介质中, 如计算机的软盘, 硬盘或光盘 等, 包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器, 或者网络设备等)执行本发明各个实施例所述的方法。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易 想到的变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保 护范围应以权利要求的保护范围为准。
Claims (10)
- 权利要求 书1、 一种对报文进行分类的方法, 其特征在于, 包括:接收报文;在已创建的至少一个决策树中查找与所述报文相匹配的规则, 所述决策树 为基于分段码对原始规则集进行划分后进而创建的决策树;根据查找到的所述规则对所述报文进行分类处理。
- 2、 根据权利要求 1所述的对报文进行分类的方法, 其特征在于, 在所述在 已创建的至少一个决策树中查找与所述 4艮文相匹配的规则之前, 还包括:根据分段码将原始规则集划分成至少两个子规则集;针对每个所述子规则集创建决策树。
- 3、 根据权利要求 2所述的对报文进行分类的方法, 其特征在于, 所述根据 分段码将原始规则集划分成至少两个子规则集, 包括:以至少两位字符为一段对所述原始规则集中的每条规则进行分段, 并计算 每条规则对应的分段码;统计相同的分段码对应的规则数量, 并按照所述规则数量从高到低对所述 分段码进行排序;选取对应规则数量最多的分段码, 顺次与按照规则数量排序后的其他分段 码两两进行按位与操作, 并将按位与结果中 1 的个数作为匹配级别对所述分段 码进行分类排序;将所述按照匹配级别排序后的、 且匹配级别不为 0的分段码依次进行连续 按位与操作, 并在连续按位与的结杲中 1 的个数小于最低匹配级别时, 将最后 一个参与连续按位与操作的分段码归入到匹配级别为 0的类别中;将所述匹配级别大于 0的分段码对应的规则归入到第一子规则集; 在所述匹配级别为 0的分段码所对应的规则数小于等于第一阈值时, 将所 述匹配级别为 0的分段码对应的规则归入到第二子规则集;在所述匹配级别为 0 的分段码所对应的规则数大于所述第一阔值时, 从所述匹配级别为 0 的多个分 段码中重新选取对应规则数量最多的一个分段码, 并重复上述步驟以对所述匹 配级别为 0的分段码继续划分。
- 4、 根据权利要求 3所述的对报文进行分类的方法, 其特征在于, 在所述将 所述按照匹配级别排序后的、 且匹配级别不为 0 的分段码依次进行连续按位与 操作之后, 还包括:计算并保存所述匹配级别大于 0 的分段码依次进行连续按位与操作后的按 位与结果。5、 根据权利要求 3所述的对报文进行分类的方法, 其特征在于, 所述在所述匹配级别为 0的分段码所对应的规则数小于等于第一阈值时, 将所述匹配级别为 0的分段码对应的规则归入到第二子规则集, 为: 在所述匹 配级别为 0 的分段码所对应的规则数小于等于第一阁值、 大于第二阔值时, 将 所述匹配级别为 0 的分段码对应的规则归入到第二子规则集; 其中, 所述笫一 阈值大于所述第二阈值; 贝' J ,所述根据分段码将原始规则集划分成至少两个子规则集, 还包括: 在所述匹配级别为 0的分段码所对应的规则数小于等于所述第二阈值时, 将所述匹配级别为 0的分段码对应的规则归入到所述第一子规则集中。6、 根据权利要求 3所述的对报文进行分类的方法, 其特征在于, 所述最低 匹配级别可以通过如下公式计 得到:其中, 为所述最低匹配级别; k为分段码的每个二进制位对应的字符数; t为分段后可用于规则切分的字符段中包含的通配符的最大值; numRules为划分 前原始规则集中的规则数; bucketSize为所述决策树的叶子结点中保存的最大规 则数; f为所述决策树中平均每个叶子结点的利用效率。
- 7、 一种对报文进行分类的装置, 其特征在于, 包括:接收单元, 用于接收报文; 查找单元, 用于在已创建的至少一个决策树中查找与所述报文相匹配的规 则, 所述决策树为基于分段码对原始规则集进行划分后进而创建的决策树; 分类单元, 用于 ^艮据查找到的所述规则对所述报文进行分类处理。
- 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所述的对报文进行分类的装置, 其特征在于, 还包括; 计算模块, 用于根据如下公式计算得到所述最低匹配级别:其中, 为所述最低匹配级别; 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 true CN102308533A (zh) | 2012-01-04 |
CN102308533B CN102308533B (zh) | 2013-10-09 |
Family
ID=44303819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080002602.0A Expired - Fee Related 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 (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107250981A (zh) * | 2014-10-06 | 2017-10-13 | 邻客音公司 | 单页应用中的路由动态加载 |
CN108572921A (zh) * | 2017-05-15 | 2018-09-25 | 北京金山云网络技术有限公司 | 规则集更新方法、装置、规则匹配方法及装置 |
US10425343B2 (en) | 2015-04-30 | 2019-09-24 | Hewlett Packard Enterprise Development Lp | Packet classification |
CN112367262A (zh) * | 2020-08-20 | 2021-02-12 | 国家计算机网络与信息安全管理中心 | 一种五元组规则的匹配方法及装置 |
CN113347173A (zh) * | 2021-05-31 | 2021-09-03 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
CN117609894A (zh) * | 2024-01-23 | 2024-02-27 | 中国人民解放军国防科技大学 | 一种基于分区策略的高性能报文分类方法、设备及介质 |
Families Citing this family (13)
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 | 迈普通信技术股份有限公司 | 使用端口号掩码对数据流进行分类的方法及系统 |
CN105072122A (zh) * | 2015-08-19 | 2015-11-18 | 山东超越数控电子有限公司 | 一种数据包快速匹配分类方法 |
CN106096022B (zh) * | 2016-06-22 | 2020-02-11 | 杭州迪普科技股份有限公司 | 多域网包分类规则的划分方法及装置 |
CN109218211B (zh) * | 2017-07-06 | 2022-04-19 | 创新先进技术有限公司 | 数据流的控制策略中阈值的调整方法、装置和设备 |
GB2580285B (en) * | 2018-08-13 | 2021-01-06 | Metaswitch Networks Ltd | Packet processing graphs |
US20210350260A1 (en) * | 2018-09-21 | 2021-11-11 | Nec Corporation | Decision list learning device, decision list learning method, and decision list learning program |
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 | 广州文冲船厂有限责任公司 | 一种型材下料表的转化方法 |
CN114840133A (zh) * | 2021-01-15 | 2022-08-02 | 华为技术有限公司 | 一种网络配置规则的处理方法以及相关设备 |
US12058023B2 (en) * | 2021-06-28 | 2024-08-06 | Arista Networks, Inc. | Staging in-place updates of packet processing rules of network devices to eliminate packet leaks |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992673A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种高速路由器及防火墙中实现快速分组流识别的方法 |
CN1992674A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种基于多比特分割的多维分组分类方法 |
CN101345707A (zh) * | 2008-08-06 | 2009-01-14 | 北京邮电大学 | 一种实现IPv6报文分类的方法及设备 |
CN101478551A (zh) * | 2009-01-19 | 2009-07-08 | 清华大学 | 基于多核处理器的多域网包分类方法 |
WO2009145712A1 (en) * | 2008-05-26 | 2009-12-03 | Oricane Ab | Method for data packet classification in a data communications network |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039641B2 (en) | 2000-02-24 | 2006-05-02 | Lucent Technologies Inc. | Modular packet classification |
-
2010
- 2010-06-28 CN CN201080002602.0A patent/CN102308533B/zh not_active Expired - Fee Related
- 2010-06-28 WO PCT/CN2010/074575 patent/WO2011085577A1/zh active Application Filing
- 2010-06-28 EP EP10842861.6A patent/EP2582096B1/en active Active
-
2012
- 2012-12-21 US US13/724,797 patent/US8732110B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992673A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种高速路由器及防火墙中实现快速分组流识别的方法 |
CN1992674A (zh) * | 2005-12-31 | 2007-07-04 | 华为技术有限公司 | 一种基于多比特分割的多维分组分类方法 |
WO2009145712A1 (en) * | 2008-05-26 | 2009-12-03 | Oricane Ab | Method for data packet classification in a data communications network |
CN101345707A (zh) * | 2008-08-06 | 2009-01-14 | 北京邮电大学 | 一种实现IPv6报文分类的方法及设备 |
CN101478551A (zh) * | 2009-01-19 | 2009-07-08 | 清华大学 | 基于多核处理器的多域网包分类方法 |
Non-Patent Citations (3)
Title |
---|
宁卓,龚俭: "《基于最大属性熵的GIDS报文分类算法》", 《西安电子科技大学学报(自然科学版)》, 30 September 2007 (2007-09-30), pages 2 - 2 * |
张定心: "《报文分类算法的研究》", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑2004年第01期》, 15 January 2004 (2004-01-15) * |
高蕾,谭明峰,龚正虎: "《IP报文分类算法综述与评价》", 《计算机工程与科学》, vol. 28, no. 3, 31 December 2006 (2006-12-31) * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107250981A (zh) * | 2014-10-06 | 2017-10-13 | 邻客音公司 | 单页应用中的路由动态加载 |
CN107250981B (zh) * | 2014-10-06 | 2021-04-02 | 微软技术许可有限责任公司 | 单页应用中的路由动态加载 |
US10425343B2 (en) | 2015-04-30 | 2019-09-24 | Hewlett Packard Enterprise Development Lp | Packet classification |
CN108572921A (zh) * | 2017-05-15 | 2018-09-25 | 北京金山云网络技术有限公司 | 规则集更新方法、装置、规则匹配方法及装置 |
CN108572921B (zh) * | 2017-05-15 | 2021-03-12 | 北京金山云网络技术有限公司 | 规则集更新方法、装置、规则匹配方法及装置 |
CN112367262A (zh) * | 2020-08-20 | 2021-02-12 | 国家计算机网络与信息安全管理中心 | 一种五元组规则的匹配方法及装置 |
CN113347173A (zh) * | 2021-05-31 | 2021-09-03 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
CN113347173B (zh) * | 2021-05-31 | 2022-04-22 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
CN117609894A (zh) * | 2024-01-23 | 2024-02-27 | 中国人民解放军国防科技大学 | 一种基于分区策略的高性能报文分类方法、设备及介质 |
CN117609894B (zh) * | 2024-01-23 | 2024-04-09 | 中国人民解放军国防科技大学 | 一种基于分区策略的高性能报文分类方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP2582096A1 (en) | 2013-04-17 |
US8732110B2 (en) | 2014-05-20 |
EP2582096B1 (en) | 2016-03-30 |
EP2582096A4 (en) | 2013-07-03 |
US20130166491A1 (en) | 2013-06-27 |
WO2011085577A1 (zh) | 2011-07-21 |
CN102308533B (zh) | 2013-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102308533A (zh) | 对报文进行分类的方法及装置 | |
US10460250B2 (en) | Scope in decision trees | |
Waldvogel | Fast longest prefix matching: algorithms, analysis, and applications | |
CN102377664B (zh) | 一种基于tcam的区域匹配装置和方法 | |
US7536476B1 (en) | Method for performing tree based ACL lookups | |
US6775737B1 (en) | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories | |
US8937954B2 (en) | Decision tree level merging | |
CN1482548A (zh) | 对多重搜索实行的过滤器规则进行划分的方法和系统 | |
CN104579941A (zh) | 一种OpenFlow交换机中的报文分类方法 | |
CN101345707A (zh) | 一种实现IPv6报文分类的方法及设备 | |
Meiners et al. | Hardware based packet classification for high speed internet routers | |
CN103546378B (zh) | 基于tcam的范围多匹配2级分层查找方法 | |
US9595003B1 (en) | Compiler with mask nodes | |
CN100385880C (zh) | 分组分类装置和使用字段级特里结构的方法 | |
US8375165B2 (en) | Bit weaving technique for compressing packet classifiers | |
CN102148746A (zh) | 一种报文分类方法和系统 | |
CN101241499A (zh) | Patricia树快速查找方法 | |
CN106649338B (zh) | 信息过滤策略生成方法及装置 | |
US9900409B2 (en) | Classification engine for data packet classification | |
CN100397816C (zh) | 在网络设备中对接收数据包进行分类的方法 | |
KR20100018409A (ko) | 영역분할을 이용한 패킷 분류 테이블 생성 방법 및 패킷분류 방법과 장치 | |
US20040177150A1 (en) | Method for filter selection and array matching | |
CN109086815B (zh) | 基于fpga的决策树模型中的浮点数离散化方法 | |
Chang | Efficient multidimensional packet classification with fast updates | |
CN111819552A (zh) | 访问控制列表的管理方法及装置 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131009 |
|
CF01 | Termination of patent right due to non-payment of annual fee |