CN103841112A - 基于网包分类的分类规则处理方法及装置、匹配装置 - Google Patents

基于网包分类的分类规则处理方法及装置、匹配装置 Download PDF

Info

Publication number
CN103841112A
CN103841112A CN201410099348.0A CN201410099348A CN103841112A CN 103841112 A CN103841112 A CN 103841112A CN 201410099348 A CN201410099348 A CN 201410099348A CN 103841112 A CN103841112 A CN 103841112A
Authority
CN
China
Prior art keywords
node
matching
packet header
packet
level
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
Application number
CN201410099348.0A
Other languages
English (en)
Other versions
CN103841112B (zh
Inventor
魏初舜
任凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201410099348.0A priority Critical patent/CN103841112B/zh
Publication of CN103841112A publication Critical patent/CN103841112A/zh
Application granted granted Critical
Publication of CN103841112B publication Critical patent/CN103841112B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种基于网包分类的分类规则处理方法及装置、匹配装置,其中,该方法包括:确定用于网包分类的规则库中的每一个分类规则对应的包速率;根据各个分类规则对应的包速率,将规则库中的所有分类规则构成多层级的匹配树的结构;其中,构成多层级的匹配树的结构的方法包括:按照对应的包速率由大到小的顺序构造匹配树;或者,在构成匹配树的过程中,针对至少一个层级的节点,根据各个分类规则对应的包速率选择划分域和/或划分点,将该节点划分为两个子节点。本申请中,包速率越大的数据流可以越快的完成匹配,减少了延迟,提高了吞吐量。

Description

基于网包分类的分类规则处理方法及装置、匹配装置
技术领域
本申请涉及网包分类技术领域,特别涉及一种基于网包分类的分类规则处理方法及装置、匹配装置。
背景技术
随着互联网架构的不断演进以及互联网新应用的不断涌现,基于单一IP(InternetProtocol,因特网协议)地址域的传统路由技术已经不能满足日益增长的网络业务和网络安全需求。例如,多媒体业务需要的服务质量(QoS)保证、企业网络需要的访问控制等,均难以通过传统路由转发技术来实现。由于多域网包分类能够依据网包信息对网络流量进行细粒度的划分,该技术已在新一代路由器、安全网关及流量控制系统中得到了广泛应用。与此同时,随着云计算、物联网、移动互联网等前沿技术的发展,高性能网包分类已成为互联网发展和演进中的研究热点。
多域网包分类是指依据网包中的多域信息,按照给定规则集合对网包进行分类的过程。这样,一个多域网包分类算法可以包括以下两部分:
(1)规则库:将所有分类规则按一定数据结构进行组织,如线性表、各种树、层次化表等,以便快速匹配和更新;
(2)匹配引擎:即匹配和更新机构,用于将包头中的多域信息与规则库中的分类规则进行匹配,得到匹配结果;有的匹配引擎支持增量更新,有的只支持全部更新。
现有技术中,HyperSplit算法是一种比较典型的多域网包分类算法,其规则库的数据结构生成过程和匹配引擎的硬件实现在同类型算法中具有代表性,其突出特点是循环采用启发式选择二分域和二分点的方法,来创建二分匹配树结构来组织规则库。该二分匹配树上的每一个根节点和中间节点选择二分点对当前规则集合的投影区间进行二分。每一个叶节点上存储最终匹配的规则子集。
HyperSplit算法的匹配引擎的硬件实现采用FPGA(Field Programmable Gate Array,现场可编程门阵列)/ASIC(Application Specific Integrated Circuits,专用集成电路)的硬件流水线结构,将上述二分匹配树上的同一层级节点的节点信息保存于匹配引擎的一级流水线中,并由该级流水线将包头中的多域信息与对应节点信息进行匹配。图1示出了匹配引擎中的四级流水线与4层级的二分匹配树的对应关系。
但是,HyperSplit算法存在以下问题:
(1)实际网络中符合不同分类规则的数据流的包速率的差异可能比较大,比如,管理协议的种类很多,但是,管理协议数据流的包速率占数据流总量的比重却很小;或,一个企业网络内不同部门或分支机构的数据流的包速率的差别也可能很大。HyperSplit算法的规则库的数据结构生成过程并没有考虑不同分类规则对应的包速率的差异化问题。
(2)HyperSplit算法的匹配引擎中,硬件流水线的层级与二分匹配树的层级一一对应。然而,二分匹配树的高度一般较大,即层级较大,且为了适应节点的动态添加,还会预留多级硬件流水线,因此,匹配引擎中的硬件流水线的级数会大于二分匹配树的层级数,从而导致硬件资源增加、延迟增大,节点信息添加不够灵活。
发明内容
本申请提供了一种基于网包分类的分类规则处理方法及装置、匹配装置,以解决现有技术中存在的规则库的数据结构生成过程没有考虑不同分类规则对应的包速率的差异化问题,以及,匹配引擎所需的硬件资源较多、延迟较大的问题。
本申请的技术方案如下:
一方面,提供了一种基于网包分类的分类规则处理方法,包括:
确定用于网包分类的规则库中的每一个分类规则对应的包速率;
根据各个分类规则对应的包速率,将规则库中的所有分类规则构成多层级的匹配树的结构;其中,构成多层级的匹配树的结构的方法包括:
按照对应的包速率由大到小的顺序构造匹配树;或者,
在构成匹配树的过程中,针对匹配树上除叶节点以外的每一个节点,选择划分域及其上的划分点,在划分域上以划分点将该节点划分为两个子节点,其中,针对至少一个层级的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分域和/或划分点。
另一方面,还提供了一种基于网包分类的分类规则处理装置,包括:
包速率确定模块,用于确定用于网包分类的规则库中的每一个分类规则对应的包速率;
匹配树构造模块,用于根据确定模块确定的各个分类规则对应的包速率,将规则库中的所有分类规则构成多层级的匹配树的结构;其中,匹配树构造模块包括:第一构造单元或者第二构造单元;
第一构造单元,用于按照对应的包速率由大到小的顺序构造匹配树;
第二构造单元,用于在构成匹配树的过程中,针对匹配树上除叶节点以外的每一个节点,选择划分域及其上的划分点,在划分域上以划分点将该节点划分为两个子节点,其中,针对至少一个层级的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分域和/或划分点。
又一方面,还提供了一种基于网包分类的匹配装置,包括:分类规则处理单元、调度单元、P级匹配逻辑单元和判决单元,其中:
分类规则处理单元,用于将用于网包分类的规则库中的所有分类规则构成多层级的匹配树的结构,并将匹配树的所有层级的节点信息保存到P级匹配逻辑单元中;
调度单元,用于接收需要进行匹配的包头,将包头依次发送给P级匹配逻辑单元中的第1级匹配逻辑进行匹配;其中,将首次进入本匹配装置的新包头发送给第1级匹配逻辑时,在该新包头中添加匹配树的第1层级节点的地址信息;P为大于0的自然数,第1层级节点是根节点;
P级匹配逻辑单元由串联的P级匹配逻辑组成,P级匹配逻辑单元中的第i级匹配逻辑中保存有匹配树的第kP+i层级上的所有节点的节点信息,i=1,2,3,...,P,k=0,1,2,...;每一级匹配逻辑用于在接收到一个包头后,若该包头中没有携带匹配完成标记,则在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点不是叶节点时,将该包头中携带的地址信息修改为该当前节点指向的一下一级节点的地址信息,之后将该包头发送给下一级匹配逻辑或判决单元;若该包头中携带有匹配完成标记,则直接将该包头发送给下一级匹配逻辑或判决单元;
判决单元,用于在接收到P级匹配逻辑单元中的第P级匹配逻辑发来的包头后,若该包头中携带有匹配完成标记,则输出该包头中携带的匹配结果信息,否则,将该包头返回给调度单元。
又一方面,还提供了一种基于网包分类的匹配装置,包括:分类规则处理单元、调度单元、P级匹配逻辑单元、判决单元和再匹配单元,其中:
分类规则处理单元,用于将用于网包分类的规则库中的所有分类规则构成多层级的匹配树的结构,将匹配树的每一个分支上满足第一条件的第一节点的节点信息保存到再匹配单元中,并将该分支上满足第二条件的第二节点的节点信息保存到P级匹配逻辑单元中;其中,第一条件包括:位于该分支上的再匹配节点之后的层级上的节点,第二条件包括:属于该分支上除第一节点以外的节点;再匹配节点满足以下条件:针对该节点所在的所有分支,在该节点之后的最大层级数等于Q,Q为预定的大于0的自然数;
调度单元,用于接收需要进行匹配的包头,将包头依次发送给P级匹配逻辑单元中的第1级匹配逻辑进行匹配;其中,将首次进入本匹配装置的新包头发送给第1级匹配逻辑时,在该新包头中添加匹配树的第1层级节点的地址信息;P为大于0的自然数,第1层级节点是根节点;
P级匹配逻辑单元由串联的P级匹配逻辑组成,P级匹配逻辑单元中的第i级匹配逻辑中保存有匹配树的第kP+i层级上的所有第二节点的节点信息,i=1,2,3,...,P,k=0,1,2,...;P级匹配逻辑单元中的每一级匹配逻辑用于在接收到一个包头后,若该包头中没有携带匹配完成标记和再匹配命中标记,则在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点是再匹配节点时,在该包头中添加再匹配命中标记并将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,在该当前节点是除叶节点和再匹配节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,之后将该包头发送给下一级匹配逻辑或判决单元;若该包头中携带有匹配完成标记或再匹配命中标记,则直接将该包头发送给下一级匹配逻辑或判决单元;
判决单元,用于在接收到P级匹配逻辑单元中的第P级匹配逻辑发来的包头后,若该包头中携带有匹配完成标记或再匹配命中标记,则直接发送该包头给再匹配单元,否则,将该包头返回给调度单元;
再匹配单元中包括:串联的Q级匹配逻辑,Q级匹配逻辑中的第j级匹配逻辑中保存有匹配树的每一个分支上在再匹配节点之后的第j个层级上的所有第一节点的节点信息,j=1,2,3,...,Q;Q级匹配逻辑中的每一级匹配逻辑用于在接收到一个包头后,若该包头中没有携带匹配完成标记,则在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,之后将该包头发送给下一级匹配逻辑或输出该包头中携带的匹配结果信息;在该当前节点是除叶节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,之后将该包头发送给下一级匹配逻辑;若该包头中携带有匹配完成标记,则直接将该包头发送给下一级匹配逻辑或输出该包头中携带的匹配结果信息。
通过本申请的以上技术方案,确定规则库中的每一个分类规则对应的包速率,根据各个分类规则对应的包速率,将规则库中的所有分类规则构成多层级的匹配树的结构;其中,构成多层级的匹配树的结构时,按照对应的包速率由大到小的顺序构造匹配树;或者,在构成匹配树的过程中,针对匹配树上除叶节点以外的每一个节点,选择划分域及其上的划分点,在划分域上以划分点将该节点划分为两个子节点,其中,针对至少一个层级的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分域和/或划分点。从而,在将规则库中的所有分类规则构成匹配树结构的过程中,考虑了不同分类规则对应的包速率不同的问题,可以使得对应的包速率越大的分类规则,在匹配树中对应的节点的层级尽可能越小,即尽可能靠近根节点,而对应的包速率越小的分类规则,在匹配树中对应的节点的层级尽可能越大,即尽可能远离根节点。这样,包速率越大的数据流可以越快的完成匹配,减少了延迟,提高了匹配装置的吞吐量。
另外,匹配装置的P级匹配逻辑单元中的第i级匹配逻辑中保存有匹配树的第kP+i层级的节点信息,i=1,2,3,...,P,k=0,1,2,...,从而,通过循环匹配的机制,使得一个包头经过至少一次的循环匹配得到最终的匹配结果,匹配装置中的硬件流水线的级数少于匹配树的层级数,大大降低了硬件资源的消耗和系统延迟。后续,当规则库中增加了分类规则,匹配树上添加了对应的节点后,只需在P级匹配逻辑单元的对应匹配逻辑中对应的节点信息即可,节点信息添加比较方便和灵活。
附图说明
图1是HyperSplit算法的匹配引擎中的四级流水线与4层级的二分匹配树的对应关系图;
图2是一种典型的基于IPv4五元组的多域网包分类系统图;
图3是本申请实施例一的基于网包分类的分类规则处理方法的流程图;
图4是本申请实施例一的多层级的匹配树的层级划分示意图;
图5是HyperSplit算法的流程图;
图6是本申请实施例一的将最高包速率的分类规则R[a]构成的初始匹配树的结构示意图;
图7是本申请实施例一的将次高包速率的分类规则R[b]添加到图6所示的初始匹配树后得到的匹配树的结构示意图;
图8是本申请实施例一的将最低包速率的分类规则R[c]添加到图7所示的初始匹配树后得到的匹配树的结构示意图;
图9是本申请实施例一的分类规则R[a]、R[b]和R[c]在同一个域上的投影关系示意图;
图10是本申请实施例一的分类规则R[a]、R[b]和R[c]在同一个域上得到投影区间的示意图;
图11是本申请实施例一的11个投影区间a~k及其对应的包速率的示意图;
图12是将图11中的11个投影区间a~k采用包速率等分法选择划分点,经过3层分解后得到的匹配树的结构示意图;
图13是将图11中的11个投影区间a~k构成匹配树时,第1层采用投影数目等分法选择划分点,经过1层分解后得到的匹配树的结构示意图;
图14是将图11中的11个投影区间a~k构成匹配树时,第1层采用投影数目等分法选择划分点,第2-3层采用最大包速率选取法,并经过2层分解后得到的匹配树的结构示意图;
图15是将图11中的11个投影区间a~k构成匹配树时,第1层采用投影数目等分法选择划分点,第2-3层采用最大包速率选取法,并经过3层分解后得到的匹配树的结构示意图;
图16是本申请实施例二的基于网包分类的分类规则处理装置的结构示意图;
图17是本申请实施例三的基于网包分类的匹配装置的一种结构示意图;
图18是本申请实施例三的基于网包分类的匹配装置的另一种结构示意图;
图19是本申请实施例四的基于网包分类的匹配装置的结构示意图;
图20是本申请实施例四的基于网包分类的匹配装置中的再匹配单元的结构示意图。
具体实施方式
为了解决现有技术中存在的规则库的数据结构生成过程没有考虑不同分类规则对应的包速率的差异化问题,以及,匹配引擎所需的硬件资源较多、延迟较大的问题,本申请以下实施例中提供了一种基于网包分类的分类规则处理方法,一种可以应用该处理方法的分类规则处理装置,以及一种基于网包分类的匹配装置。
图2描述了一种典型的基于IPv4五元组(5-tuple)的多域网包分类系统。该多域网包分类系统中包括:分类规则和匹配引擎。匹配引擎将输入的网包的五元组信息与分类规则进行匹配,其中,分类规则例如可以如表1所示,五元组包括:网包包头中的源/目的IP地址域(各32比特)、源/目的传输层端口域(各16比特)、以及传输层协议域(8比特),并依据匹配的分类规则中的决策(action)对输入的网包进行相应的处理,例如,接受转发(ACCEPT)、拒绝转发(DENY)、重置连接(RESET)或丢弃网包(DROP)等。
表1
Figure BDA0000478282790000071
其中,主要有以下三种匹配方式:
①严格匹配(exact match)
若规则r在所有域上的范围r[1],r[2],…,r[d]均为一个数值,且p满足,那么就称p与r严格匹配。在实际应用中,严格匹配通常用于TCP/UDP会话表查找(session tablelookup)。
②前缀匹配(prefix match)
若规则r在所有域上的范围r[1],r[2],…,r[d]均由前缀表达,如IP地址10.0.0.0/8,且p满足,那么p与r满足前缀匹配。在实际应用中,前缀匹配广泛用于基于IP地址的路由查找(routing lookup)。
③范围匹配(range match)
若规则r在所有域上的范围r[1],r[2],…,r[d]均由范围表达,如端口号[1,1024],且p满足,那么p与r满足范围匹配。范围匹配涵盖了前缀匹配和严格匹配。
按照规则库的数据结构和匹配引擎的匹配方式,现有的多域网包分类算法主要可以分为以下两大类:
(A)线性匹配
采用线性表结构,将所有分类规则按优先级排列;匹配引擎逐条地将分类规则与网包的五元组信息进行匹配。该种方法实现简单且空间利用率高,分类所需时间随着分类规则数的增大而呈线性增长,当分类规则比较多时,效率很低。一种常用的改进方式是采用TCAM(Ternary Content Access Memory,三态内容寻址存储器)来实现分类规则的并行比较。
(B)空间求交
采用各种树或层次化表来表示所有分类规则为许多不可再分超长方体。不可再分超长方体定义为“其内所有规则,在任何域上的投影区间只有一个范围(部分或全子范围)”。匹配引擎根据一个点的坐标值来查找对应的树或层次化表。此类算法很多,根据求交过程的不同,可以分为3个子类:
(B1)“一次性d维投影求交”:如Cross-producting(交叉乘积)算法同时在d维trie(前缀树)结构上“一次性d维投影求交”;Bitmap(比特映射)算法在d维结构上“一次性d维投影求交”;
(B2)“多级超长方体编码求交”:RFC(Recursive Flow Classification,递归流分类)算法采用数组寻址的多级投影编码结构来实现“多级超长方体集合编码求交”;
(B3)“多级分解求交”:HyperSplit(超级分割)算法采用多级2叉树“多级分解求交”;HiCuts(Hierarehieal Intelligent Cuttings,阶层式智能切割)算法本质是多级树状“多级分解求交”(末级采用线性比较);Set-pruning tree(集合修剪树)算法本质是多级树“逐维多级分解求交”。
其中,“多级分解求交”中间环节存储的内容很少,可以避免存储空间爆炸性增长,相对容易在匹配时间复杂度和存储空间复杂度间取得平衡,这对于规则集较大的情况尤为重要。HyperSplit算法是一种典型的“多级分解求交”类型的网包分类算法。
下面通过以下具体实施例,对本申请的基于网包分类的分类规则处理方法及装置,基于网包分类的匹配装置进行详细说明。
实施例一
如图3所示,本申请实施例的基于网包分类的分类规则处理方法包括以下步骤:
步骤S102,确定用于网包分类的规则库中的每一个分类规则对应的包速率;
具体的,每一个分类规则对应的包速率可以通过预估得到,也可以通过在实际网络中统计符合该分类规则的数据流的包速率得到,也可以结合这两种方法得到,还可以通过其他方法得到,本申请对此不做限定。
步骤S104,根据各个分类规则对应的包速率,将规则库中的所有分类规则构成多层级的匹配树的结构;
其中,步骤S104中构成多层级的匹配树的结构的方法可以按照以下两种方法中的任意一种:
方法一、按照对应的包速率由大到小的顺序构造匹配树;
方法二、在构成匹配树的过程中,针对至少一个层级上的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分域和/或划分点,将该节点划分为两个子节点。
如图4所示,一个树形结构中的节点可以分为以下三种类型:根节点,中间节点和叶节点,其中,根节点没有父节点,叶节点没有子节点,而中间节点既有父节点也有子节点。而且,整个树可以分为多个层级,根节点作为第1层级,越接近根节点,层级越小,越往下层级越高。
以下详细介绍上述方法一和方法二。
方法一、
在方法一中,假设规则库中的分类规则总数为N,N为大于0的自然数。
方法一中包括以下步骤11-13:
步骤11:确定N个分类规则中对应的包速率大于预定的包速率阈值的M个分类规则;
预先设置一个包速率阈值,确定N个分类规则中对应的包速率大于预定的包速率阈值的分类规则,假设,符合该条件的分类规则有M个,M不大于N。
步骤12:将M个分类规则构成初始的匹配树;
在步骤12中,在构成初始的匹配树时,这M个分类规则是平等的。
步骤13:将剩余的N-M个分类规则按照对应的包速率由大到小的顺序排列,依次针对排列后的N-M个分类规则中的每一个分类规则,在初始的匹配树上添加该分类规则对应的节点;其中,在每次添加一个分类规则对应的节点时,从当前匹配树上的特定叶节点上开始添加待添加的分类规则对应的节点,其中,特定叶节点是对应的分类规则与待添加的分类规则有重叠的叶节点。从而,得到了最终的匹配树。
在步骤12-13中,将M个分类规则构成初始的匹配树、以及在初始的匹配树上添加分类规则对应的节点的具体方法可以采用现有技术的多域网包分类方法,例如,HyperSplit算法或HiCuts算法。
其中,HyperSplit算法的规则库的数据结构生成过程如图5所示,主要包括以下步骤:
步骤S202,生成规则全集R0、搜索空间S0、根节点V0,并分别存入R’、S’、V’;执行步骤S204;
步骤S204,将R’、S’和V’送入队列Q,其中,队列Q为先进先出(FIFO)队列;执行步骤S206;
步骤S206,从队列Q中取出R’、S’、V’,分别记为R、S、V;执行步骤S208;
步骤S208,判断R中所有规则是否都包含S,若是,则执行步骤S220,若否,则执行步骤S210;
步骤S210,按照启发式算法,选择二分域(或划分域)F及其上的二分点(或划分点)P;执行步骤S212;
步骤S212,在二分域F上以二分点P将S进行空间划分,得到子空间S1和子空间S2;执行步骤S214;
步骤S214,将R中所有与子空间S1有相交的规则记为R1,将R中所有与子空间S2相交的规则记为R2,即,以子空间S1和S2将R划分为子集R1和R2,使得所有属于R1的规则都与S1有重叠,所有属于R2的规则都与S2有重叠;执行步骤S216;
步骤S216,生成与R1、S1对应的子节点V1,及与R2、S2对应的子节点V2,并使得V1和V2的存储地址空间连续;执行步骤S118;
步骤S218,将V设置为中间节点,并将V赋值为:V.field=F,V.point=P,V.offset=V1的起始地址;生成新的一组R’、S’和V’,赋值为R1、S1和V1之后送入队列Q;生成新的一组R’、S’和V’,赋值为R2、S2和V2之后送入队列Q,返回执行步骤S206;
步骤S220,获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据结构:V.field=r.action,V.point=r.pri,V.offset=0;其中,r.action为规则r中的分类结果,r.pri为规则r中的优先级;执行步骤S222;
步骤S222,判断当前队列Q是否为空,若是,则执行步骤S224,若否,则返回执行步骤S206;
步骤S224,返回根节点V0,将其作为数据结构索引的起点。
通过上述方法一,在将规则库中的所有分类规则构成匹配树结构的过程中,考虑了不同分类规则对应的包速率不同的问题,先将较高包速率的分类规则构成初始的匹配树,然后,再将较低包速率的分类规则按照对应的包速率由高到低的顺序,在初始的匹配树上依次添加对应的节点,从而,可以使得对应的包速率越大的分类规则,在匹配树中对应的节点的层级尽可能越小,即尽可能靠近根节点,而对应的包速率越小的分类规则,在匹配树中对应的节点的层级尽可能越大,即尽可能远离根节点。这样,包速率越大的数据流可以越快的完成匹配,减少了延迟,提高了吞吐量。
以下通过一个实际的例子,来详细说明方法一。
假设,3个分类规则:R[a]、R[b]和R[c],这3个分类规则按照对应的包速率由大到小的顺序依次是R[a]、R[b]、R[c],并且,只有R[a]对应的包速率大于预定的包速率阈值。
通过步骤12,将包括R[a]在内的对应包速率大于预定的包速率阈值的所有分类规则构成初始匹配树,该初始匹配树上包含有R[a]对应的节点,如图6所示;然后,通过步骤13,先在如图6所示的初始匹配树上添加R[b]对应的节点,得到如图7所示的匹配树,再在图7所示的匹配树上添加R[c]对应的节点,得到如图8所示的匹配树。其中,添加R[b]和R[c]对应的节点时,采用的是同一个域,R[a]、R[b]和R[c]在该域上的投影关系如图9所示。
由如图8所示的最终得到的匹配树可以看出,对应的包速率最大的R[a],在匹配树上对应的节点的层级最小,对应的包速率最小的R[c],在匹配树上对应的节点的层级最大,且初始匹配树的大多数节点保持在较小层级。
方法二、
方法二中包括以下步骤21-22:
步骤21:规则库中的所有分类规则在搜索空间的每一个域上进行投影,得到多个投影区间,其中,一个分类规则在一个域上的投影两端的端点称为投影点,所有分类规则在同一个域上进行投影后,相邻的两个投影点之间的区间称为一个投影区间;针对每一个域上的每一个投影区间,统计该投影区间上有多少个重叠规则(即,该投影区间对应多少个分类规则),进而得到该投影区间的包速率;其中,每一个投影区间的包速率是该投影区间对应的所有分类规则(即该投影区间上的重叠规则)对应的包速率之和,或者,是该投影区间对应的所有分类规则对应的包速率中的最大值;
例如,以图10所示的投影关系图为例,3个分类规则R[a]、R[b]和R[c]在同一个域上进行投影,得到的3个投影共有6个投影点,其中,R[a]的投影的左端点与R[b]的投影的左端点之间的区间构成一个投影区间,在图10中标记为1,称为投影区间1;R[b]的投影的左端点与R[a]的投影的右端点之间的区间构成一个投影区间,在图10中标记为2,称为投影区间2;R[a]的投影的右端点与R[b]的投影的右端点之间的区间构成一个投影区间,在图10中标记为3,称为投影区间3;R[c]的投影的左端点与R[c]的投影的右端点之间的区间构成一个投影区间,在图10中标记为4,称为投影区间4;最终,这3个分类规则R[a]、R[b]和R[c]在同一个域上进行投影,得到了4个投影区间。
其中,在图10中的投影区间2上有2个重叠规则,即,该投影区间对应2个分类规则:R[a]和R[b],其他的投影区间均只对应1个分类规则。
步骤22:将所有分类规则构成匹配树的结构,其中,在此过程中,针对匹配树上除叶节点以外的每一个节点(即,根节点和中间节点中的每一个节点),为了描述方便,记为V,选择划分域及其上的划分点,在划分域上以划分点将该节点划分为两个子节点,为了描述方便,记为V1和V2;也就是说,在划分域上以划分点将该节点V对应的空间S划分为两个子空间S1和S2,根据这两个子空间S1和S2,将该节点V对应的分类规则集合R划分为两个子集合R1和R2,其中,子集合R1中的所有分类规则与子空间S1有重叠,子集合R2中的所有分类规则与子空间S2有重叠,从而,S1和R1构成节点V的一个子节点V1,S2和R2构成节点V的另一个子节点V2。当采用HyperSplit算法时,该步骤对应于上述的步骤S210-S216。
在步骤22中,针对至少一个层级的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分域和/或划分点。
具体的,根据各个分类规则对应的包速率选择划分域的方法包括:选择满足以下条件的域作为划分域:规则库中的所有分类规则在该域上的所有投影区间的包速率总和最大或最小;或者,规则库中的所有分类规则在该域上的所有投影区间的平均包速率最小;
根据各个分类规则对应的包速率选择划分点的方法可以采用以下的包速率等分法或最大包速率选取法:
包速率等分法:在划分域上选择一个投影区间的一个端点作为划分点,使得在该划分点一侧的投影区间的包速率总和与在另一侧的投影区间的包速率总和的差值最小;
最大包速率选取法:在划分域上选择包速率最大的一个投影区间的一个端点作为划分点。
也就是说,在实际实施过程中,针对匹配树的所有层级上的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分域;也可以,针对部分层级上的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分域,而其他层级上的除叶节点以外的节点,选择该节点V对应的所有分类规则对应的投影区间数最多或重叠系数最小的域作为划分域;即,该节点V对应的分类规则在划分域上的投影区间数量最大或重叠系数最小;
其中,重叠系数=H/K,其中,K为多个分类规则在同一域上的投影区间数量,H为K个投影区间对应的重叠规则的总数。仍以图10所示的例子为例,此时,K=4,投影区间1、3、4对应的重叠规则数分别为1,投影区间2对应的重叠规则数为2,因此,H=1+2+1+1=5,从而,这3个分类规则R[a]、R[b]和R[c]在同一个域上的重叠系数=5/4。
和/或,针对匹配树的所有层级上的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分点;也可以,针对部分层级上的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分点,而其他层级上的除叶节点以外的节点采用其它方法来选择划分点,比如采用投影数目等分法选择划分点,即,在划分域上选择一个投影区间的一个端点作为划分点,使得在该划分点两侧的投影区间的数量最接近相等。
通过上述方法二,在将规则库中的所有分类规则构成匹配树结构的过程中,考虑了不同分类规则对应的包速率不同的问题,在针对匹配树上至少一个层级的除叶节点以外的每一个节点选择划分域时,根据各个分类规则的包速率来选择划分域,和/或,在针对匹配树上至少一个层级的除叶节点以外的每一个节点选择划分点时,根据各个分类规则的包速率来选择划分点,从而,可以使得对应的包速率越大的分类规则,在匹配树中对应的节点的层级尽可能越小,即尽可能靠近根节点,而对应的包速率越小的分类规则,在匹配树中对应的节点的层级尽可能越大,即尽可能远离根节点。这样,包速率越大的数据流可以越快的完成匹配,减少了延迟,提高了吞吐量。
下面通过一个实际的例子,来详细说明上述方法二。
假设,规则库中的所有分类规则在某一个域上进行投影得到了如图11所示的11个投影区间:a~k。图11中,a:15表示投影区间a的包速率为15,以此类推。设每一次选择划分域时,均采用这个域作为划分域。下面分别给出了采用包速率等分法,以及投影数目等分法+最大包速率选取法时,得到的匹配树的结构。
(1)采用包速率等分法选择划分点:经过3层的分解后得到如图12所示的匹配树。从图12中可以看出,高速率的投影区间g与其附近的低速率的投影区间h、i、j和k实现了分离。
(2)采用投影数目等分法+最大包速率选取法选择划分点:经过3层的分解后得到如图15所示的匹配树。其中,第1层采用投影数目等分法后得到如图13所示的匹配树,两侧的投影区间的数量基本相等;第2层和3层采用最大包速率选取法,分别得到如图14所示和如图15所示的匹配树。从图15中可以看出,高速率的投影区间g与其附近的低速率的投影区间h、i、j和k实现了分离。
图12和图13中,bl表示投影区间b的左端点,br表示投影区间b的右端点,以此类推。
实施例二
针对上述方法,本申请实施例二中提供了一种基于网包分类的分类规则处理装置。如图16所示,该处理装置中包括以下模块:包速率确定模块301和匹配树构造模块302,其中:
包速率确定模块301,用于确定用于网包分类的规则库中的每一个分类规则对应的包速率;
匹配树构造模块302,用于根据确定模块301确定的各个分类规则对应的包速率,将规则库中的所有分类规则构成多层级的匹配树的结构;其中,匹配树构造模块302包括:第一构造单元3021或者第二构造单元3022;
第一构造单元3021,用于按照对应的包速率由大到小的顺序构造匹配树;
第二构造单元3022,用于在构成匹配树的过程中,针对匹配树上除叶节点以外的每一个节点,选择划分域及其上的划分点,在划分域上以划分点将该节点划分为两个子节点,其中,针对至少一个层级的除叶节点以外的节点,根据各个分类规则对应的包速率选择划分域和/或划分点。
其中,当规则库中的分类规则总数为N,N为大于0的自然数时,第一构造单元3021中包括:确定子单元和处理子单元,其中:
确定子单元,用于确定N个分类规则中对应的包速率大于预定的包速率阈值的M个分类规则;
处理子单元,用于将M个分类规则构成初始的匹配树;还用于将剩余的N-M个分类规则按照对应的包速率由大到小的顺序排列,依次针对排列后的N-M个分类规则中的每一个分类规则,在初始的匹配树上添加该分类规则对应的节点;其中,在每次添加一个分类规则对应的节点时,从当前匹配树上的特定叶节点上开始添加待添加的分类规则对应的节点,其中,特定叶节点是对应的分类规则与待添加的分类规则有重叠的叶节点。
其中,第二构造单元3022中包括:第一选择子单元和第二选择子单元,其中:
第一选择子单元,用于选择满足以下条件的域作为划分域:规则库中的所有分类规则在该域上的所有投影区间的包速率总和最大或最小;或者,规则库中的所有分类规则在该域上的所有投影区间的平均包速率最小;
第二选择子单元,用于在划分域上选择一个投影区间的一个端点作为划分点,使得在该划分点一侧的投影区间的包速率总和与在另一侧的投影区间的包速率总和的差值最小;或者,用于在划分域上选择包速率最大的一个投影区间的一个端点作为划分点;
其中,每一个投影区间的包速率是该投影区间对应的所有分类规则对应的包速率之和,或者,是该投影区间对应的所有分类规则对应的包速率中的最大值。
在实际实施过程中,该处理装置可以由通用处理器运行程序来实现。
实施例三
本申请实施例中提供了一种基于网包分类的匹配装置,如图17所示,该匹配装置中包括:分类规则处理单元401、调度单元402、P级匹配逻辑单元403和判决单元404,其中:
分类规则处理单元401,用于将用于网包分类的规则库中的所有分类规则构成多层级的匹配树的结构,并将匹配树的所有层级的节点信息保存到P级匹配逻辑单元中;
调度单元402,用于接收需要进行匹配的包头,将包头依次发送给P级匹配逻辑单元403中的第1级匹配逻辑进行匹配;其中,将首次进入本匹配装置的新包头发送给第1级匹配逻辑时,在该新包头中添加匹配树的第1层级节点的地址信息;P为大于0的自然数,第1层级节点是根节点;
P级匹配逻辑单元403由串联的P级匹配逻辑组成,P级匹配逻辑单元403中的第i级匹配逻辑中保存有匹配树的第kP+i层级上的所有节点的节点信息,i=1,2,3,...,P,k=0,1,2,...;
P级匹配逻辑单元403中的每一级匹配逻辑用于在接收到一个包头后,若该包头中没有携带匹配完成标记,则在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点不是叶节点时,将该包头中携带的地址信息修改为该当前节点指向的一下一级节点的地址信息,之后将该包头发送给下一级匹配逻辑或判决单元404;若该包头中携带有匹配完成标记,则直接将该包头发送给下一级匹配逻辑或判决单元404;
判决单元404,用于在接收到P级匹配逻辑单元403中的第P级匹配逻辑发来的包头后,判断该包头中是否携带有匹配完成标记,若携带有匹配完成标记,则输出该包头中携带的匹配结果信息;若没有携带匹配完成标记,则将该包头返回给调度单元402,调度单元402会再次将该报文发送给第1级匹配逻辑。
其中,当一个节点是除叶节点以外的节点时,该节点的节点信息中包括:该节点指向的下一级节点的地址信息;当一个节点是叶节点时,该节点的节点信息中包括:叶节点标识和匹配结果信息;则,在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点不是叶节点时,将该包头中携带的地址信息修改为该当前节点指向的一下一级节点的地址信息的方式包括:
读取该包头中携带的地址信息所指示的当前节点的节点信息;
当读取到的节点信息中包括叶节点标识时,在该包头中添加匹配完成标记和所述读取到的节点信息中包括的匹配结果信息;
当所述读取到的节点信息中没有包括叶节点标识时,确定该包头中的多域信息所满足的该当前节点所指向的一个下一级节点,将该包头中的地址信息修改为该下一级节点的地址信息。
其中,上述的匹配结果信息中包括:该节点所对应的优先级最高的分类规则的规则ID(标识)。上述的匹配树可以是通过上述实施例一中的方法得到的,即,分类规则处理单元401可以是上述实施例二中的分类规则处理装置。
本申请实施例的匹配装置的P级匹配逻辑单元中的第i级匹配逻辑中保存有匹配树的第kP+i层级的节点信息,i=1,2,3,...,P,k=0,1,2,...,从而,通过循环匹配的机制,使得一个包头经过至少一次的循环匹配得到最终的匹配结果,匹配装置中的硬件流水线的级数少于匹配树的层级数,大大降低了硬件资源的消耗和系统延迟。
另外,根据实施例一的方法构成的匹配树上,对应的包速率越大的分类规则,在匹配树上的节点的层级尽可能越小,这样,包速率越大的可以经过越少的循环匹配,得到匹配结果,匹配装置的处理性能得到了极大优化。
后续,当规则库中增加了分类规则,匹配树上添加了对应的节点后,只需在P级匹配逻辑单元的对应匹配逻辑中对应的节点信息即可,节点信息添加比较方便和灵活。
在实际实施过程中,通过缓存和排序,该匹配装置输出的匹配结果信息的顺序与对应的包头输入该装置的顺序是一致的,或者,在将需要进行匹配的新包头输入该匹配装置之前,将每一个新包头中添加一个唯一的包头ID,判决单元输出一个包头的匹配结果信息时,同时输出该包头的包头ID,通过上述的方法,可以获知输出的匹配结果信息对应于哪一个包头。
在实际实施过程中,包头中的多域信息包括:源IP地址、目的IP地址、源端口、目的端口、协议号、优先级等信息;当一个节点是除叶节点以外的节点时,该节点的节点信息中除了可以包括该节点指向的下一级节点的地址信息以外,还可以包括:针对该节点选择的划分域和划分点信息;则,每一级匹配逻辑确定包头中的多域信息所满足的该当前节点V所指向的一个下一级节点的具体过程可以如下步骤31-36:
步骤31:判断当前节点V的节点信息中的V.offset是否为0,若是,则返回V.point,执行步骤36,否则,执行步骤32;
步骤32:获取该包头中的多域信息中与当前节点V的节点信息中的V.field对应的域中的信息,将获取的信息与V.point进行比较;执行步骤33;
步骤33:判断该获取的信息是否不大于V.point,若是,则执行步骤34,否则,执行步骤35;
步骤34:该获取的信息满足V指向的子节点V1,其中,子节点V1的存储地址为:&(V0)+V.offset;即,确定该包头中的多域信息所满足的该当前节点V所指向的一个下一级节点是子节点V1;
步骤35:该获取的信息满足V指向的子节点V2,其中,子节点V2的存储地址为:&(V0)+V.offset+sizeof(V);即,确定该包头中的多域信息所满足的该当前节点V所指向的一个下一级节点是子节点V2;
步骤36:根据V.point的值确定该包头匹配到的最高优先级的分类规则。
另外,在实际实施过程中,投影区间之间可能会存在空洞,如图11所示,投影区间b和投影区间c之间、投影区间e和投影区间f之间、投影区间g和投影区间h之间均存在空洞,这样,最终构成的匹配树上的某些叶节点对应的空间中就会存在空洞,即,由一条规则和空洞组成,当包头匹配到这种叶节点时,认为该包头命中(或匹配到)该叶节点对应的最高优先级的分类规则就是不准确的,因为该包头有可能命中的是空洞。在实际实施过程中有两种处理方式,第一种方法是进一步比较包头中携带的多域信息和对应的分类规则界定的空间范围,以判断确实命中该分类规则还是命中空洞;第二种方法是进一步分解空间,即使得匹配树叶节点表示命中一条规则或命中空洞,不再出现规则和空洞重叠的情况。第一种方法的优点是可以直接判断是否命中规则还是空洞,缺点是需要保存和比较规则的所有域信息;第二种方法直接得到结果,但是一般会使匹配树的层级和节点总数大大增加。因此,更优的,构造匹配树时将空间分解为由一条规则预定的部分域和空洞有重叠时即认为到达叶节点,且命中叶节点后针对这部分预定的域来比较包头和规则,以便判断命中一条规则或命中空洞。由此,如图18所示,该装置中还包括:再匹配单元405,其中:
判决单元404用于输出该包头中携带的匹配结果信息给再匹配单元405,同时输出该包头给再匹配单元405;
再匹配单元405中保存有规则库中的每一个分类规则中的至少一个域的信息;例如,源IP地址、目的IP地址、源端口、目的端口、协议号、优先级等信息;再匹配单元405用于在接收到判决单元404发来的包头和匹配结果信息之后,将该包头中的多域信息与本地保存的该匹配结果信息所指示的分类规则进行匹配,若匹配,则输出该分类规则的规则ID,若不匹配,则输出用于指示该包头匹配到空洞的信息。
另外,如图17或图18所示,该匹配装置中还包括:统计单元406,用于在该匹配装置中没有包括再匹配单元405时,如图17所示,根据判决单元404接收到的携带有匹配完成标记的包头所匹配到的分类规则,统计规则库中的每一个分类规则被匹配到的频率,并将统计数据提供给分类规则处理单元401;还用于在该匹配装置中包括再匹配单元405时,如图18所示,根据再匹配单元405对接收到的携带有匹配完成标记的包头进行匹配得到的该包头所匹配到的分类规则,统计规则库中的每一个分类规则被匹配到的频率,并将统计数据提供给分类规则处理单元401。
在规则库中的分类规则数量较大的情况下,为了降低统计开销,可以采用定时循环统计的方法。在该方法中,统计单元406用于采用以预设时间间隔(如10秒)轮流采样统计规则库中的部分分类规则(如1K个)被匹配到的频率的方法,来统计规则库中的每一个分类规则被匹配到的频率。也就是说,在一个预设时间段内统计一部分分类规则被匹配到的频率,在下一个预设时间段内统计另一部分分类规则被匹配到的频率,以此类推,直至统计得到所有分类规则被匹配到的频率。按照该方法不断循环,可以得到较为准确的频率信息。
实际实施过程中,再匹配单元405中还可以包括一保存模块用于保存规则库中的每一个分类规则中的至少一个域的信息,该保存模块可以由DRAM(Dynamic RandomAccess Memory,动态随机存取存储器)来实现,该基于网包分类的匹配装置中除DRAM以外的部分可以由FPGA或ASIC来实现。
实施例四
由匹配树的形状可知,匹配树的每一个分支上的最后一个节点(该节点是叶节点)以及靠近该叶节点的少数几个节点的数量占匹配树的总节点数的大多数,因此将这些节点的节点信息保存在FPGA/ASIC的外部存储器中,会大大减少对FPGA/ASIC内部存储的需求。
为此,本申请实施例中提供了一种基于网包分类的匹配装置,如图19所示,该匹配装置中包括:分类规则处理单元401、调度单元402、P级匹配逻辑单元403、判决单元404和再匹配单元405,其中:
分类规则处理单元401,用于将用于网包分类的规则库中的所有分类规则构成多层级的匹配树的结构,将匹配树的每一个分支上满足第一条件的第一节点的节点信息保存到再匹配单元中,并将该分支上满足第二条件的第二节点的节点信息保存到P级匹配逻辑单元中;其中,第一条件包括:位于该分支上的再匹配节点之后的层级上的节点,第二条件包括:属于该分支上除第一节点以外的节点;再匹配节点满足以下条件:针对该节点所在的所有分支,在该节点之后的最大层级数等于Q,Q为预定的大于0的自然数;
调度单元402,用于接收需要进行匹配的包头,将包头依次发送给P级匹配逻辑单元403中的第1级匹配逻辑进行匹配;其中,将首次进入本匹配装置的新包头发送给第1级匹配逻辑时,在该新包头中添加匹配树的第1层级节点的地址信息;P为大于0的自然数,第1层级节点是根节点;
P级匹配逻辑单元403由串联的P级匹配逻辑组成,P级匹配逻辑单元403中的第i级匹配逻辑中保存有匹配树的第kP+i层级上的所有第二节点的节点信息,i=1,2,3,...,P,k=0,1,2,...;P级匹配逻辑单元403中的每一级匹配逻辑用于在接收到一个包头后,若该包头中没有携带匹配完成标记和再匹配命中标记,则在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点是再匹配节点时,在该包头中添加再匹配命中标记并将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,在该当前节点是除叶节点和再匹配节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,之后将该包头发送给下一级匹配逻辑或判决单元404;若该包头中携带有匹配完成标记或再匹配命中标记,则直接将该包头发送给下一级匹配逻辑或判决单元404;
判决单元404,用于在接收到P级匹配逻辑单元403中的第P级匹配逻辑发来的包头后,判断该包头中是否携带有匹配完成标记或再匹配命中标记,若携带有匹配完成标记或再匹配命中标记,则直接发送该包头给再匹配单元405中的第1级匹配逻辑,若既没有携带匹配完成标记也没有携带再匹配命中标记,则将该包头返回给调度单元402;
再匹配单元405中包括:串联的Q级匹配逻辑,Q级匹配逻辑中的第j级匹配逻辑中保存有匹配树的每一个分支上在再匹配节点之后的第j个层级上的所有第一节点的节点信息,j=1,2,3,...,Q;Q级匹配逻辑中的每一级匹配逻辑用于在接收到一个包头后,若该包头中没有携带匹配完成标记,则在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,之后将该包头发送给下一级匹配逻辑或输出该包头中携带的匹配结果信息(本匹配逻辑是第Q级匹配逻辑时输出该包头中携带的匹配结果信息);在该当前节点是除叶节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,之后将该包头发送给下一级匹配逻辑;若该包头中携带有匹配完成标记,则直接将该包头发送给下一级匹配逻辑或输出该包头中携带的匹配结果信息(本匹配逻辑是第Q级匹配逻辑时输出该包头中携带的匹配结果信息)。
其中,当一个第二节点是除叶节点和再匹配节点以外的节点时,该第二节点的节点信息中包括:该第二节点指向的下一级节点的地址信息,当该第二节点是叶节点时,该第二节点的节点信息中包括:叶节点标识和匹配结果信息;当该第二节点是再匹配节点时,该第二节点的节点信息中包括:再匹配标识和该第二节点指向的下一级节点的地址信息;则,在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点是再匹配节点时,在该包头中添加再匹配命中标记并将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,在该当前节点是除叶节点和再匹配节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息的方式包括:
读取该包头中携带的地址信息所指示的当前节点的节点信息;
当读取到的节点信息中包括叶节点标识时,在该包头中添加匹配完成标记和所述读取到的节点信息中包括的匹配结果信息;
当所述读取到的节点信息中包括再匹配标识时,确定该包头中的多域信息所满足的该当前节点所指向的一个下一级节点,在该包头中添加再匹配命中标记并将该包头中的地址信息修改为该下一级节点的地址信息;
当所述读取到的节点信息中没有包括叶节点标识和再匹配标识时,确定该包头中的多域信息所满足的该当前节点所指向的一个下一级节点,将该包头中的地址信息修改为该下一级节点的地址信息。
另外,当一个第一节点是除叶节点以外的节点时,该第一节点的节点信息中包括:该第一节点指向的下一级节点的地址信息,当该第一节点是叶节点时,该第一节点的节点信息中包括:叶节点标识和匹配结果信息;
则,在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息的方式包括:读取该包头中携带的地址信息所指示的当前节点的节点信息;当读取到的节点信息中包括叶节点标识时,在该包头中添加匹配完成标记和所述读取到的节点信息中包括的匹配结果信息;
在该当前节点是除叶节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息的方式包括:当所述读取到的节点信息中没有包括叶节点标识时,确定该包头中的多域信息所满足的该当前节点所指向的一个下一级节点,将该包头中的地址信息修改为该下一级节点的地址信息。
其中,上述的匹配结果信息中包括:该节点所对应的优先级最高的分类规则的规则ID。上述的匹配树可以是通过上述实施例一中的方法得到的,即,分类规则处理单元401可以是上述实施例二中的分类规则处理装置。
在实际实施过程中,可以根据实际需要来预先设定Q的取值,例如,Q可以取值为6或7。
以图7所示的匹配树为例,说明第一节点、第二节点和再匹配节点。在该匹配树上共有节点1~节点15这15个节点。该匹配树的所有分支如下:
节点1→节点2→节点4→节点8
节点1→节点2→节点4→节点9
节点1→节点2→节点5
节点1→节点3→节点6→节点10
节点1→节点3→节点6→节点11→节点12
节点1→节点3→节点6→节点11→节点13→节点14
节点1→节点3→节点6→节点11→节点13→节点15
节点1→节点3→节点7
假设,Q=2。
可见,节点1在其所在的所有分支上,在节点1之后的最大层级数是5,节点1不是再匹配节点;
节点2在其所在的所有分支上,在节点2之后的最大层级数是2,节点2是再匹配节点;
节点3在其所在的所有分支上,在节点3之后的最大层级数是4,节点3不是再匹配节点;
节点4在其所在的所有分支上,在节点4之后的最大层级数是1,节点4不是再匹配节点;
节点5在其所在的所有分支上,在节点5之后的最大层级数是0,节点5不是再匹配节点;
节点6在其所在的所有分支上,在节点6之后的最大层级数是3,节点6不是再匹配节点;
节点7在其所在的所有分支上,在节点7之后的最大层级数是0,节点7不是再匹配节点;
节点8在其所在的所有分支上,在节点8之后的最大层级数是0,节点8不是再匹配节点;
节点9在其所在的所有分支上,在节点9之后的最大层级数是0,节点9不是再匹配节点;
节点10在其所在的所有分支上,在节点10之后的最大层级数是0,节点10不是再匹配节点;
节点11在其所在的所有分支上,在节点11之后的最大层级数是2,节点11是再匹配节点;
节点12在其所在的所有分支上,在节点12之后的最大层级数是0,节点12不是再匹配节点;
节点13在其所在的所有分支上,在节点13之后的最大层级数是1,节点13不是再匹配节点;
节点14在其所在的所有分支上,在节点14之后的最大层级数是0,节点14不是再匹配节点;
节点15在其所在的所有分支上,在节点15之后的最大层级数是0,节点15不是再匹配节点。
在选定了再匹配节点:节点2和节点11之后,可以得到该匹配树上的所有第一节点:节点4、节点5、节点8、节点9、节点12、节点13、节点14和节点15,这些节点位于各个分支上的再匹配节点之后的层级上,这些节点的节点信息需要保存到再匹配单元中的Q级匹配逻辑中。
其中,节点4、节点5、节点12和节点13是再匹配节点之后的第1个层级上的节点,这些节点的节点信息需要保存到第1级匹配逻辑中;节点8、节点9、节点14和节点15是再匹配节点之后的第2个层级上的节点,这些节点的节点信息需要保存到第2级匹配逻辑中。
剩余的节点就是第二节点,包括:节点1、节点2、节点3、节点6、节点7、节点10和节点11,这些节点的节点信息需要保存到P级匹配逻辑中。
其中,如图20所示,再匹配单元405中还包括:空洞判别单元,其中:
第Q级匹配逻辑用于输出该包头中携带的匹配结果信息给空洞判别单元,同时输出该包头给空洞判别单元;
空洞判别单元中保存有规则库中的每一个分类规则中的至少一个域的信息;例如,源IP地址、目的IP地址、源端口、目的端口、协议号、优先级等信息;空洞判别单元用于在接收到第Q级匹配逻辑输出的包头和匹配结果信息之后,将该包头中的多域信息与本地保存的该匹配结果信息所指示的分类规则进行匹配,若匹配,则输出该分类规则的规则ID,若不匹配,则输出用于指示该包头匹配到空洞的信息。
另外,如图19所示,该装置中还包括:统计单元406,用于根据再匹配单元405对接收到的包头进行处理得到的该包头所匹配到的分类规则,统计规则库中的每一个分类规则被匹配到的频率,并将统计数据提供给分类规则处理单元401。
在规则库中的分类规则数量较大的情况下,为了降低统计开销,可以采用定时循环统计的方法。在该方法中,统计单元406用于采用以预设时间间隔(如10秒)轮流采样统计规则库中的部分分类规则(如1K个)被匹配到的频率的方法,来统计规则库中的每一个分类规则被匹配到的频率。也就是说,在一个预设时间段内统计一部分分类规则被匹配到的频率,在下一个预设时间段内统计另一部分分类规则被匹配到的频率,以此类推,直至统计得到所有分类规则被匹配到的频率。按照该方法不断循环,可以得到较为准确的频率信息。
实际实施过程中,再匹配单元405中还可以包括一保存模块,用于保存规则库中的每一个分类规则中的至少一个域的信息以及所有第一节点的节点信息,该保存模块可以由DRAM(Dynamic Random Access Memory,动态随机存取存储器)来实现。该匹配装置中的分类规则处理单元401、调度单元402、P级匹配逻辑单元403、判决单元404和统计单元406可以由一个FPGA或ASIC来实现,再匹配单元中除保存模块以外的模块可以由一个FPGA或ASIC来实现。
综上,本申请以上实施例可以达到以下技术效果:
(1)确定规则库中的每一个分类规则对应的包速率,根据各个分类规则对应的包速率,将规则库中的所有分类规则构成多层级的匹配树的结构;其中,构成多层级的匹配树的结构时,按照对应的包速率由大到小的顺序构造匹配树;或者,在构成匹配树的过程中,针对至少一个层级的节点,根据各个分类规则对应的包速率选择划分域和/或划分点。从而,在将规则库中的所有分类规则构成匹配树结构的过程中,考虑了不同分类规则对应的包速率不同的问题,可以使得对应的包速率越大的分类规则,在匹配树中对应的节点的层级尽可能越小,即尽可能靠近根节点,而对应的包速率越小的分类规则,在匹配树中对应的节点的层级尽可能越大,即尽可能远离根节点。这样,包速率越大的数据流可以越快的完成匹配,减少了延迟,提高了吞吐量。
(2)匹配装置的P级匹配逻辑单元中保存匹配树的所有层级的节点信息,第i级匹配逻辑中保存有匹配树的第kP+i层级的节点信息,i=1,2,3,...,P,k=0,1,2,...,从而,通过循环匹配的机制,使得一个包头经过至少一次的循环匹配得到最终的匹配结果,匹配装置中的硬件流水线的级数少于匹配树的层级数,大大降低了硬件资源的消耗和系统延迟。
或者,将匹配树上的所有节点分成了两类:一类是第一节点,第一节点属于位于该分支上的再匹配节点之后的层级上的节点,另一类是第二节点,第二节点属于每一个分支上除第一节点以外的节点;其中,再匹配节点满足以下条件:针对该节点所在的所有分支,在该节点之后的最大层级数等于Q;匹配装置的P级匹配逻辑单元中保存各个层级中的第二节点的节点信息,再匹配单元中保存所有第一节点的节点信息,使得最后少数几个层级的节点信息保存在FPGA/ASIC的外部存储器中,会大大减少对FPGA/ASIC内部存储的需求。
在匹配树上,对应的包速率越大的分类规则,在匹配树上的节点的层级尽可能越小,这样,包速率越大的可以经过越少的循环匹配,得到匹配结果,匹配装置的处理性能得到了极大优化。
后续,当规则库中增加了分类规则,匹配树上添加了对应的节点后,只需在P级匹配逻辑单元的对应匹配逻辑中对应的节点信息即可,节点信息添加比较方便和灵活。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (15)

1.一种基于网包分类的分类规则处理方法,其特征在于,包括:
确定用于网包分类的规则库中的每一个分类规则对应的包速率;
根据各个分类规则对应的包速率,将所述规则库中的所有分类规则构成多层级的匹配树的结构;其中,构成所述多层级的匹配树的结构的方法包括:
按照对应的包速率由大到小的顺序构造所述匹配树;或者,
在构成所述匹配树的过程中,针对至少一个层级的节点,根据各个分类规则对应的包速率选择划分域和/或划分点,将该节点划分为两个子节点。
2.根据权利要求1所述的方法,其特征在于,所述规则库中的分类规则总数为N,N为大于0的自然数;则,所述按照对应的包速率由大到小的顺序构造所述匹配树的方法包括:
确定N个分类规则中对应的包速率大于预定的包速率阈值的M个分类规则;
将所述M个分类规则构成初始的匹配树;
将剩余的N-M个分类规则按照对应的包速率由大到小的顺序排列,依次针对排列后的N-M个分类规则中的每一个分类规则,在所述初始的匹配树上添加该分类规则对应的节点;其中,在每次添加一个分类规则对应的节点时,从当前匹配树上的特定叶节点上开始添加待添加的分类规则对应的节点,其中,所述特定叶节点是对应的分类规则与所述待添加的分类规则有重叠的叶节点。
3.根据权利要求1所述的方法,其特征在于,所述根据各个分类规则对应的包速率选择划分域的方法包括:选择满足以下条件的域作为划分域:所述规则库中的所有分类规则在该域上的所有投影区间的包速率总和最大或最小;或者,所述规则库中的所有分类规则在该域上的所有投影区间的平均包速率最小;其中,每一个投影区间的包速率是该投影区间对应的所有分类规则对应的包速率之和,或者,是该投影区间对应的所有分类规则对应的包速率中的最大值;
所述根据各个分类规则对应的包速率选择划分点的方法包括:在划分域上选择一个投影区间的一个端点作为划分点,使得在该划分点一侧的投影区间的包速率总和与在另一侧的投影区间的包速率总和的差值最小;或者,在划分域上选择包速率最大的一个投影区间的一个端点作为划分点。
4.一种基于网包分类的分类规则处理装置,其特征在于,包括:
包速率确定模块,用于确定用于网包分类的规则库中的每一个分类规则对应的包速率;
匹配树构造模块,用于根据所述确定模块确定的各个分类规则对应的包速率,将所述规则库中的所有分类规则构成多层级的匹配树的结构;其中,所述匹配树构造模块包括:第一构造单元或者第二构造单元;
所述第一构造单元,用于按照对应的包速率由大到小的顺序构造所述匹配树;
所述第二构造单元,用于在构成所述匹配树的过程中,针对至少一个层级的节点,根据各个分类规则对应的包速率选择划分域和/或划分点,将该节点划分为两个子节点。
5.根据权利要求4所述的装置,其特征在于,所述规则库中的分类规则总数为N,N为大于0的自然数;则,所述第一构造单元包括:
确定子单元,用于确定N个分类规则中对应的包速率大于预定的包速率阈值的M个分类规则;
处理子单元,用于将所述M个分类规则构成初始的匹配树;还用于将剩余的N-M个分类规则按照对应的包速率由大到小的顺序排列,依次针对排列后的N-M个分类规则中的每一个分类规则,在所述初始的匹配树上添加该分类规则对应的节点;其中,在每次添加一个分类规则对应的节点时,从当前匹配树上的特定叶节点上开始添加待添加的分类规则对应的节点,其中,所述特定叶节点是对应的分类规则与所述待添加的分类规则有重叠的叶节点。
6.根据权利要求4所述的装置,其特征在于,所述第二构造单元包括:
第一选择子单元,用于选择满足以下条件的域作为划分域:所述规则库中的所有分类规则在该域上的所有投影区间的包速率总和最大或最小;或者,所述规则库中的所有分类规则在该域上的所有投影区间的平均包速率最小;其中,每一个投影区间的包速率是该投影区间对应的所有分类规则对应的包速率之和,或者,是该投影区间对应的所有分类规则对应的包速率中的最大值;
第二选择子单元,用于在划分域上选择一个投影区间的一个端点作为划分点,使得在该划分点一侧的投影区间的包速率总和与在另一侧的投影区间的包速率总和的差值最小;或者,用于在划分域上选择包速率最大的一个投影区间的一个端点作为划分点。
7.一种基于网包分类的匹配装置,其特征在于,包括:分类规则处理单元、调度单元、P级匹配逻辑单元和判决单元,其中:
所述分类规则处理单元,用于将用于网包分类的规则库中的所有分类规则构成多层级的匹配树的结构,并将所述匹配树的所有层级的节点信息保存到所述P级匹配逻辑单元中;
所述调度单元,用于接收需要进行匹配的包头,将所述包头依次发送给P级匹配逻辑单元中的第1级匹配逻辑进行匹配;其中,将首次进入本匹配装置的新包头发送给所述第1级匹配逻辑时,在该新包头中添加所述匹配树的第1层级节点的地址信息;P为大于0的自然数,所述第1层级节点是根节点;
所述P级匹配逻辑单元由串联的P级匹配逻辑组成,所述P级匹配逻辑单元中的第i级匹配逻辑中保存有所述匹配树的第kP+i层级上的所有节点的节点信息,i=1,2,3,...,P,k=0,1,2,...;每一级匹配逻辑用于在接收到一个包头后,若该包头中没有携带匹配完成标记,则在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点不是叶节点时,将该包头中携带的地址信息修改为该当前节点指向的一下一级节点的地址信息,之后将该包头发送给下一级匹配逻辑或所述判决单元;若该包头中携带有匹配完成标记,则直接将该包头发送给下一级匹配逻辑或所述判决单元;
所述判决单元,用于在接收到所述P级匹配逻辑单元中的第P级匹配逻辑发来的包头后,若该包头中携带有匹配完成标记,则输出该包头中携带的匹配结果信息,否则,将该包头返回给所述调度单元。
8.根据权利要求7所述的装置,其特征在于,当一个节点是除叶节点以外的节点时,该节点的节点信息中包括:该节点指向的下一级节点的地址信息;当一个节点是叶节点时,该节点的节点信息中包括:叶节点标识和匹配结果信息;其中,所述匹配结果信息中包括:该节点所对应的优先级最高的分类规则的规则标识ID;
则,在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点不是叶节点时,将该包头中携带的地址信息修改为该当前节点指向的一下一级节点的地址信息的方式包括:
读取该包头中携带的地址信息所指示的当前节点的节点信息;
当读取到的节点信息中包括叶节点标识时,在该包头中添加匹配完成标记和所述读取到的节点信息中包括的匹配结果信息;
当所述读取到的节点信息中没有包括叶节点标识时,确定该包头中的多域信息所满足的该当前节点所指向的一个下一级节点,将该包头中的地址信息修改为该下一级节点的地址信息。
9.根据权利要求7所述的装置,其特征在于,所述匹配树是根据权利要求1至3中任一项所述的方法得到的。
10.根据权利要求7至9中任一项所述的装置,其特征在于,还包括:再匹配单元,其中:
所述判决单元用于输出该包头中携带的匹配结果信息给所述再匹配单元,同时输出该包头给所述再匹配单元;
所述再匹配单元中保存有所述规则库中的每一个分类规则中的至少一个域的信息;
所述再匹配单元用于在接收到所述判决单元发来的包头和匹配结果信息之后,将该包头中的多域信息与本地保存的该匹配结果信息所指示的分类规则进行匹配,若匹配,则输出该分类规则的规则ID,若不匹配,则输出用于指示该包头匹配到空洞的信息。
11.根据权利要求10所述的装置,其特征在于,还包括:
统计单元,用于在所述匹配装置中没有包括所述再匹配单元时,根据所述判决单元接收到的携带有匹配完成标记的包头所匹配到的分类规则,统计所述规则库中的每一个分类规则被匹配到的频率,并将统计数据提供给所述分类规则处理单元;还用于在所述匹配装置中包括所述再匹配单元时,根据所述再匹配单元对接收到的携带有匹配完成标记的包头进行匹配得到的该包头所匹配到的分类规则,统计所述规则库中的每一个分类规则被匹配到的频率,并将统计数据提供给所述分类规则处理单元。
12.一种基于网包分类的匹配装置,其特征在于,包括:分类规则处理单元、调度单元、P级匹配逻辑单元、判决单元和再匹配单元,其中:
所述分类规则处理单元,用于将用于网包分类的规则库中的所有分类规则构成多层级的匹配树的结构,将所述匹配树的每一个分支上满足第一条件的第一节点的节点信息保存到所述再匹配单元中,并将该分支上满足第二条件的第二节点的节点信息保存到所述P级匹配逻辑单元中;其中,所述第一条件包括:位于该分支上的再匹配节点之后的层级上的节点,所述第二条件包括:属于该分支上除第一节点以外的节点;所述再匹配节点满足以下条件:针对该节点所在的所有分支,在该节点之后的最大层级数等于Q,Q为预定的大于0的自然数;
所述调度单元,用于接收需要进行匹配的包头,将所述包头依次发送给P级匹配逻辑单元中的第1级匹配逻辑进行匹配;其中,将首次进入本匹配装置的新包头发送给所述第1级匹配逻辑时,在该新包头中添加所述匹配树的第1层级节点的地址信息;P为大于0的自然数,所述第1层级节点是根节点;
所述P级匹配逻辑单元由串联的P级匹配逻辑组成,所述P级匹配逻辑单元中的第i级匹配逻辑中保存有所述匹配树的第kP+i层级上的所有第二节点的节点信息,i=1,2,3,...,P,k=0,1,2,...;所述P级匹配逻辑单元中的每一级匹配逻辑用于在接收到一个包头后,若该包头中没有携带匹配完成标记和再匹配命中标记,则在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点是再匹配节点时,在该包头中添加再匹配命中标记并将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,在该当前节点是除叶节点和再匹配节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,之后将该包头发送给下一级匹配逻辑或所述判决单元;若该包头中携带有匹配完成标记或再匹配命中标记,则直接将该包头发送给下一级匹配逻辑或所述判决单元;
所述判决单元,用于在接收到所述P级匹配逻辑单元中的第P级匹配逻辑发来的包头后,若该包头中携带有匹配完成标记或再匹配命中标记,则直接发送该包头给所述再匹配单元,否则,将该包头返回给所述调度单元;
所述再匹配单元中包括:串联的Q级匹配逻辑,所述Q级匹配逻辑中的第j级匹配逻辑中保存有所述匹配树的每一个分支上在所述再匹配节点之后的第j个层级上的所有第一节点的节点信息,j=1,2,3,...,Q;所述Q级匹配逻辑中的每一级匹配逻辑用于在接收到一个包头后,若该包头中没有携带匹配完成标记,则在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,之后将该包头发送给下一级匹配逻辑或输出该包头中携带的匹配结果信息;在该当前节点是除叶节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,之后将该包头发送给下一级匹配逻辑;若该包头中携带有匹配完成标记,则直接将该包头发送给下一级匹配逻辑或输出该包头中携带的匹配结果信息。
13.根据权利要求12所述的装置,其特征在于,当一个第二节点是除叶节点和再匹配节点以外的节点时,该第二节点的节点信息中包括:该第二节点指向的下一级节点的地址信息,当该第二节点是叶节点时,该第二节点的节点信息中包括:叶节点标识和匹配结果信息;当该第二节点是再匹配节点时,该第二节点的节点信息中包括:再匹配标识和该第二节点指向的下一级节点的地址信息;其中,所述匹配结果信息中包括:该节点所对应的优先级最高的分类规则的规则标识ID;
则,在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息,在该当前节点是再匹配节点时,在该包头中添加再匹配命中标记并将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息,在该当前节点是除叶节点和再匹配节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息的方式包括:
读取该包头中携带的地址信息所指示的当前节点的节点信息;
当读取到的节点信息中包括叶节点标识时,在该包头中添加匹配完成标记和所述读取到的节点信息中包括的匹配结果信息;
当所述读取到的节点信息中包括再匹配标识时,确定该包头中的多域信息所满足的该当前节点所指向的一个下一级节点,在该包头中添加再匹配命中标记并将该包头中的地址信息修改为该下一级节点的地址信息;
当所述读取到的节点信息中没有包括叶节点标识和再匹配标识时,确定该包头中的多域信息所满足的该当前节点所指向的一个下一级节点,将该包头中的地址信息修改为该下一级节点的地址信息。
14.根据权利要求13所述的装置,其特征在于,当一个第一节点是除叶节点以外的节点时,该第一节点的节点信息中包括:该第一节点指向的下一级节点的地址信息,当该第一节点是叶节点时,该第一节点的节点信息中包括:叶节点标识和匹配结果信息;
则,在该包头中携带的地址信息所指示的当前节点是叶节点时,在该包头中添加匹配完成标记和匹配结果信息的方式包括:读取该包头中携带的地址信息所指示的当前节点的节点信息;当读取到的节点信息中包括叶节点标识时,在该包头中添加匹配完成标记和所述读取到的节点信息中包括的匹配结果信息;
在该当前节点是除叶节点以外的节点时,将该包头中的地址信息修改为该当前节点指向的一下一级节点的地址信息的方式包括:当所述读取到的节点信息中没有包括叶节点标识时,确定该包头中的多域信息所满足的该当前节点所指向的一个下一级节点,将该包头中的地址信息修改为该下一级节点的地址信息。
15.根据权利要求12至14中任一项所述的装置,其特征在于,所述再匹配单元中还包括:空洞判别单元,其中:
第Q级匹配逻辑用于输出该包头中携带的匹配结果信息给所述空洞判别单元,同时输出该包头给所述空洞判别单元;
所述空洞判别单元中保存有所述规则库中的每一个分类规则中的至少一个域的信息;
所述空洞判别单元用于在接收到所述第Q级匹配逻辑输出的包头和匹配结果信息之后,将该包头中的多域信息与本地保存的该匹配结果信息所指示的分类规则进行匹配,若匹配,则输出该分类规则的规则ID,若不匹配,则输出用于指示该包头匹配到空洞的信息。
CN201410099348.0A 2014-03-18 2014-03-18 基于网包分类的分类规则处理方法及装置、匹配装置 Active CN103841112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410099348.0A CN103841112B (zh) 2014-03-18 2014-03-18 基于网包分类的分类规则处理方法及装置、匹配装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410099348.0A CN103841112B (zh) 2014-03-18 2014-03-18 基于网包分类的分类规则处理方法及装置、匹配装置

Publications (2)

Publication Number Publication Date
CN103841112A true CN103841112A (zh) 2014-06-04
CN103841112B CN103841112B (zh) 2017-07-14

Family

ID=50804244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410099348.0A Active CN103841112B (zh) 2014-03-18 2014-03-18 基于网包分类的分类规则处理方法及装置、匹配装置

Country Status (1)

Country Link
CN (1) CN103841112B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105939323A (zh) * 2015-12-31 2016-09-14 杭州迪普科技有限公司 数据包过滤方法及装置
CN105939269A (zh) * 2015-12-18 2016-09-14 杭州迪普科技有限公司 基于网络地址转换规则的报文转换方法及装置
CN106095809A (zh) * 2016-05-30 2016-11-09 广东凯通科技股份有限公司 数据匹配方法及系统
CN106209614A (zh) * 2015-04-30 2016-12-07 杭州华三通信技术有限公司 一种网包分类方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1822567A (zh) * 2005-12-23 2006-08-23 清华大学 基于网络流量的多域网包分类方法
US20070115974A1 (en) * 2001-08-30 2007-05-24 Messenger Brian S High speed data classification system
CN101340363A (zh) * 2007-12-24 2009-01-07 中国科学技术大学 一种实现多元数据包分类的方法及设备
CN101594303A (zh) * 2009-07-10 2009-12-02 清华大学 基于网络流量统计信息的快速网包分类方法
CN101902441A (zh) * 2009-05-31 2010-12-01 北京启明星辰信息技术股份有限公司 一种可实现序列攻击事件检测的入侵检测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070115974A1 (en) * 2001-08-30 2007-05-24 Messenger Brian S High speed data classification system
CN1822567A (zh) * 2005-12-23 2006-08-23 清华大学 基于网络流量的多域网包分类方法
CN101340363A (zh) * 2007-12-24 2009-01-07 中国科学技术大学 一种实现多元数据包分类的方法及设备
CN101902441A (zh) * 2009-05-31 2010-12-01 北京启明星辰信息技术股份有限公司 一种可实现序列攻击事件检测的入侵检测方法
CN101594303A (zh) * 2009-07-10 2009-12-02 清华大学 基于网络流量统计信息的快速网包分类方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209614A (zh) * 2015-04-30 2016-12-07 杭州华三通信技术有限公司 一种网包分类方法和装置
EP3269099A4 (en) * 2015-04-30 2018-02-21 Hewlett-Packard Enterprise Development LP Packet classification
CN106209614B (zh) * 2015-04-30 2019-09-17 新华三技术有限公司 一种网包分类方法和装置
US10425343B2 (en) 2015-04-30 2019-09-24 Hewlett Packard Enterprise Development Lp Packet classification
CN105939269A (zh) * 2015-12-18 2016-09-14 杭州迪普科技有限公司 基于网络地址转换规则的报文转换方法及装置
CN105939323A (zh) * 2015-12-31 2016-09-14 杭州迪普科技有限公司 数据包过滤方法及装置
CN106095809A (zh) * 2016-05-30 2016-11-09 广东凯通科技股份有限公司 数据匹配方法及系统
CN106095809B (zh) * 2016-05-30 2020-02-07 凯通科技股份有限公司 数据匹配方法及系统

Also Published As

Publication number Publication date
CN103841112B (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
US8375433B2 (en) Method for multi-core processor based packet classification on multiple fields
CN1881950B (zh) 使用频谱分析的分组分类加速
US9208438B2 (en) Duplication in decision trees
US8937952B2 (en) Packet classification
CN104050041B (zh) 用于在处理器中调度规则匹配的调度方法和装置
CN104579941A (zh) 一种OpenFlow交换机中的报文分类方法
CN111131084B (zh) 一种QoS感知的OpenFlow流表查找方法
US9595003B1 (en) Compiler with mask nodes
CN103841112B (zh) 基于网包分类的分类规则处理方法及装置、匹配装置
CN101741705A (zh) 一种并行处理路由更新报文的方法及装置
Cheng et al. Packet classification using dynamically generated decision trees
CN102377664A (zh) 一种基于tcam的区域匹配装置和方法
Abbasi et al. MBitCuts: optimal bit-level cutting in geometric space packet classification
CN109376789A (zh) 一种网络包分类算法与系统
US10425343B2 (en) Packet classification
CN113723548A (zh) 决策树规则集预处理的方法和装置
WO2019183962A1 (zh) 一种基于等长度和等密度切割的网络数据包分类的方法
US7512122B1 (en) Identifying QoS flows using indices
CN113259263B (zh) 一种深度报文检测集群中的数据包调度方法
CN114710378B (zh) 一种基于决策树的并行报文分类查找方法及系统
CN112995032B (zh) 一种基于受限最宽路径的段路由流量工程方法及装置
CN105791124B (zh) 报文检测方法及装置
CN113810311A (zh) 一种基于多棵决策树的数据包分类方法
Antichi et al. JA-trie: Entropy-based packet classification
CN106572034A (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
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: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Applicant before: Huasan Communication Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant