CN101478551B - 基于多核处理器的多域网包分类方法 - Google Patents
基于多核处理器的多域网包分类方法 Download PDFInfo
- Publication number
- CN101478551B CN101478551B CN2009100770674A CN200910077067A CN101478551B CN 101478551 B CN101478551 B CN 101478551B CN 2009100770674 A CN2009100770674 A CN 2009100770674A CN 200910077067 A CN200910077067 A CN 200910077067A CN 101478551 B CN101478551 B CN 101478551B
- Authority
- CN
- China
- Prior art keywords
- node
- execution
- processing elements
- value
- present node
- 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
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- 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)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及基于多核处理器的多域网包分类方法,该方法首先构建分类数据结构:选择一个特定的维度,使得在该维度上选择某划分点进行空间划分后,落入到两个子空间的两个规则子集的规则数之和尽可能少;在所选择的维度上确定划分点的方法为:选择所选择维度上的划分点,使得依据该点划分后落入到两个子空间的规则个数尽可能相等;具体提出了三种划分点选择方法和与之相关联的两种划分维度选择方法;构建好分类数据结构后接收网包信息,根据网包信息查找分类数据结构得到匹配结果。本发明可以在多种多核处理器平台上实现,可以保证良好的性能和对不同网络应用的适应性,大幅降低高端策略路由及防火墙产品的生产成本。
Description
技术领域
本发明涉及网络过滤和监控技术领域,具体涉及基于多核处理器的多域网包分类方法。
背景技术
网包分类是防火墙和安全网关系统性能的关键组成部分和核心技术所在。网包分类通过检查和处理OSI(Open SystemInterconnection)网络协议的第2层~第4层网包头来对网包进行过滤。最常见的应用是五元组的过滤:即源/目的网络层地址(各32位),源/目的传输层端口(各16位)和传输层协议标志(8位)。
目前千兆级以上的高端防火墙和安全网关设备大多采用ASIC/FPGA等专用硬件方案来解决网包分类的性能瓶颈。但基于专用硬件芯片的设备开发周期长,体积功耗大,更新难度高,限制了高性能网包分类设备的广泛使用。为此,一系列基于通用处理器(CPU)的网包分类方法得到了广泛的研究和发展。美国斯坦福大学,加州大学圣地亚哥分校,华盛顿圣路易斯分校,以及思科,IBM等公司都在这方面进行了许多研究和实验,提出了一系列解决网包分类问题的方案。其中基于通用处理器的方法主要包括两类:利用决策树结构进行分类的方法,如HiCuts【P.Gupta and N.McKeown,“Packetclassification using hierarchical intelligent cuttings,”Proc.HotInterconnects,1999】,和利用多级表结构进行分类的方法,如RFC【P.Gupta and N.McKeown,“Packet classification on multiple fields,”Proc.ACM SIGCOMM 99,1999】。这两类方法从不同角度利用分类规则集合的结构特性,通过多种启发式算法来消除搜索空间的冗余,提高网包分类速度。
如图1所示现有决策树结构进行网包分类的流程图,该方法包括以下步骤:管理单元:执行预处理步骤,即根据分类规则集合的结构特性构建分类数据结构(或称决策树)的过程,并将构建的分类数据结构输出到分类单元;分类单元接收输入的网包,获取网包中的五元组信息,依据类数据结构进行分类,定位该网包所匹配的节点得到分类结果;由转发单元根据网包的分类结果对进行相关处理,实现网包的存储、转发或丢弃、记录等。
但是现有技术中的分类数据结构比较冗余,体系结构不能有效利用,原因是现有方法的设计是从规则结构出发,而没有考虑到内存结构和处理器架构。
发明内容
本发明的目的是提供基于多核处理器的多域网包分类方法,可以在多种平台上实现,可以保证良好的性能和对不同网络应用的适应性,大幅降低高端策略路由及防火墙产品的生产成本。
为实现上述目的,本发明采用如下技术方案。
一种基于多核处理器的多域网包分类方法,包括以下步骤:
s101,获取设定的规则全集R0,每条规则包括优先级、作为过滤规则的域的取值范围和分类结果;
s102,将多域网包包头中作为过滤规则的域的所有可能取值空间作为初始搜索空间S0,域对应初始搜索空间的维度;
s103,生成与所述R0、S0对应的根节点V0,并生成一组处理元,将所述R0、S0和V0分别赋值给该组处理元中的R’、S’和V’;
s104,将该组处理元送入队列Q,队列Q为先进先出队列;
s105,从队列Q中取出一组处理元,得到取出处理元的R’、S’、V’,分别记为R、S、V;
s106,判断R中所有规则是否都包含S,若是,执行步骤s116,若否,执行步骤s107;
s107,选择端点值最多的域对应的维度作为S的划分维度F;
s108,将R中所有规则在划分维度F上的不同端点值进行升序排序,设总共M个端点值;
s109,选择在划分维度F上排序后的第INT(M/2)个端点值为划分点P,其中,INT表示取整运算;
s110,将S在划分维度F上以划分点P进行空间划分,得到子空间S1和子空间S2;
s111,将R中所有与子空间S1有重叠的规则记为R1,将R中所有与子空间S2有重叠的规则记为R2;
s112,生成与R1、S1对应的子节点V1,及与R2、S2对应的子节点V2,并使得V1和V2的存储地址空间连续;
s113,将V设置为内部节点,并将V赋值为如下数据结构:
V.field=F,V.point=P,V.offset=V1的起始地址;
s114,生成一组处理元,将所述R1、S1和V1分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q;
s115,生成一组处理元,将所述R2、S2和V2分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q,返回执行步骤s105;
s116,获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据结构:
V.field=r.action,V.point=r.pri,V.offset=0;
其中,r.action为规则r中的分类结果,r.pri为规则r中的优先级;
s117,判断当前队列Q是否为空,若是,执行步骤s118,若否,返回执行步骤s105;
s118,返回根节点V0,将其作为决策树数据结构索引的起点;
s119,接收网包,并根据网包中作为过滤规则的域的值从根节点V0开始,根据决策树的数据结构定位网包所匹配的叶节点,根据叶节点中V.field的值对网包进行分类。
优选地,步骤s119中分类包括以下子步骤:
s119a,将当前节点初始化为根节点V0;
s119b,判断当前节点中的V.offset是否为0,若是,则执行步骤s119f,否则执行步骤s119c;
s119c,获取网包中与当前节点中的V.field对应域的值,若该值小于等于当前节点中的V.point,则执行步骤s119d,否则执行步骤s119e;
s119d,将当前节点所划分对应得到的子节点V1更新为当前节点,返回执行步骤s119b;
s119e,将当前节点所划分对应得到的子节点V2更新为当前节点,返回执行步骤s119b;
s119f,根据当前节点中的V.field中的值确定分类结果,根据当前节点中的V.point的值确定分类的优先级,执行步骤s119g;
s119g,根据所述分类结果进行网包的存储、转发或丢弃。
优选地,在步骤s119d中根据更新前当前节点中的V.offset定位到子节点V1,V1的存储地址为:&(V)+V.offset,&(V)表示取更新前当前节点的地址;
在步骤s119e中根据更新前当前节点中的V.offset定位到子节点V2,V2的存储地址为:&(V)+V.offset+sizeof(V),&(V)表示取更新前当前节点的地址,sizeof(V)表示一个节点所占的地址范围。
本发明还提供了另一种基于多核处理器的多域网包分类方法,包括以下步骤:
s201,获取设定的规则全集R0,每条规则包括优先级、作为过滤规则的域的取值范围和分类结果;
s202,将多域网包包头中作为过滤规则的域的所有可能取值空间作为初始搜索空间S0,域对应初始搜索空间的维度;
s203,生成与所述R0、S0对应的根节点V0,并生成一组处理元, 将所述R0、S0和V0分别赋值给该组处理元中的R’、S’和V’;
s204,将该组处理元送入队列Q,队列Q为先进先出队列;
s205,从队列Q中取出一组处理元,得到取出处理元的R’、S’、V’,分别记为R、S、V;
s206,判断R中所有规则是否都包含S,若是,执行步骤s216,若否,执行步骤s207;
s207,选择端点值最多的域对应的维度作为S的划分维度F;
s208,将R中所有规则在划分维度F上的不同端点值进行升序排序,设总共M个端点值;
s209,从M个端点值中选择P为划分点,使得以P为划分点在划分维度F上对S进行空间划分时,落入划分后其中一个子空间的规则数最接近R中所有规则数的一半;
s210,将S在划分维度F上以划分点P进行空间划分,得到子空间S1和子空间S2;
s211,将R中所有与子空间S1有重叠的规则记为R1,将R中所有与子空间S2有重叠的规则记为R2;
s212,生成与R1、S1对应的子节点V1,及与R2、S2对应的子节点V2,并使得V1和V2的存储地址空间连续;
s213,将V设置为内部节点,并将V赋值为如下数据结构:
V.field=F,V.point=P,V.offset=V1的起始地址;
s214,生成一组处理元,将所述R1、S1和V1分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q;
s215,生成一组处理元,将所述R2、S2和V2分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q,返回执行步骤s205;
s216,获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据结构:
V.field=r.action,V.point=r.pri,V.offset=0;
其中,r.action为规则r中的分类结果,r.pri为规则r中的优先级;
s217,判断当前队列Q是否为空,若是,执行步骤s218,若否,返回执行步骤s205;
s218,返回根节点V0,将其作为决策树数据结构索引的起点;
s219,接收网包,并根据网包中作为过滤规则的域的值从根节点V0开始,根据决策树的数据结构定位网包所匹配的叶节点,根据叶节点中V.field的值对网包进行分类。
优选地,步骤s219中分类包括以下子步骤:
s219a,将当前节点初始化为根节点V0;
s219b,判断当前节点中的V.offset是否为0,若是,则执行步骤s219f,否则执行步骤s219c;
s219c,获取网包中与当前节点中的V.field对应域的值,若该值小于等于当前节点中的V.point,则执行步骤s219d,否则执行步骤s219e;
s219d,将当前节点所划分对应得到的子节点V1更新为当前节点,返回执行步骤s219b;
s219e,将当前节点所划分对应得到的子节点V2更新为当前节点,返回执行步骤s219b;
s219f,根据当前节点中的V.field中的值确定分类结果,根据当前节点中的V.point的值确定分类的优先级,执行步骤s219g;
s219g,根据所述分类结果进行网包的存储、转发或丢弃。
优选地,在步骤s219d中根据更新前当前节点中的V.offset定位到子节点V1,V1的存储地址为:&(V)+V.offset,&(V)表示取更新前当前节点的地址;
在步骤s219e中根据更新前当前节点中的V.offset定位到子节点V2,V2的存储地址为:&(V)+V.offset+sizeof(V),&(V)表示取更新前当前节点的地址,sizeof(V)表示一个节点所占的地址范围。
本发明还提供了再一种基于多核处理器的多域网包分类方法,包括以下步骤:
s301,获取设定的规则全集R0,每条规则包括优先级、作为过滤规则的域的取值范围和分类结果;
s302,将多域网包包头中作为过滤规则的域的所有可能取值空间作为初始搜索空间S0,域对应初始搜索空间的维度;
s303,生成与所述R0、S0对应的根节点V0,并生成一组处理元,将所述R0、S0和V0分别赋值给该组处理元中的R’、S’和V’;
s304,将该组处理元送入队列Q,队列Q为先进先出队列;
s305,从队列Q中取出一组处理元,得到取出处理元的R’、S’、V’,分别记为R、S、V;
s306,判断R中所有规则是否都包含S,若是,执行步骤s316,若否,执行步骤s307;
s307,R中每个域上的相邻两个端点值构成一个区间,对于每一个域统计R中规则落入该域上每个区间的规则的个数,将所得个数相加后除以该域上的区间总数得到每个域的区间平均规则数;
s308,选择区间平均规则数最小的域对应的维度作为S的划分维度F;
s309,选择F对应域上的一个端点值作为划分点P,使得R中落入F对应域上第一个端点值到P间每相邻两端点值区间内的规则数之和,是大于落入F对应域上所有每相邻两端点值区间内的规则数之和一半的最小值;
s310,将S在划分维度F上以划分点P进行空间划分,得到子空间S1和子空间S2;
s311,将R中所有与子空间S1有重叠的规则记为R1,将R中所有与子空间S2有重叠的规则记为R2;
s312,生成与R1、S1对应的子节点V1,及与R2、S2对应的子节 点V2,并使得V1和V2的存储地址空间连续;
s313,将V设置为内部节点,并将V赋值为如下数据结构:
V.field=F,V.point=P,V.offset=V1的起始地址;
s314,生成一组处理元,将所述R1、S1和V1分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q;
s315,生成一组处理元,将所述R2、S2和V2分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q,返回执行步骤s305;
s316,获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据结构:
V.field=r.action,V.point=r.pri,V.offset=0;
其中,r.action为规则r中的分类结果,r.pri为规则r中的优先级;
s317,判断当前队列Q是否为空,若是,执行步骤s318,若否,返回执行步骤s305;
s318,返回根节点V0,将其作为决策树数据结构索引的起点;
s319,接收网包,并根据网包中作为过滤规则的域的值从根节点V0开始,根据决策树的数据结构定位网包所匹配的叶节点,根据叶节点中V.field的值对网包进行分类。
优选地,步骤s319中分类包括以下子步骤:
s319a,将当前节点初始化为根节点V0;
s319b,判断当前节点中的V.offset是否为0,若是,则执行步骤s319f,否则执行步骤s319c;
s319c,获取网包中与当前节点中的V.field对应域的值,若该值小于等于当前节点中的V.point,则执行步骤s319d,否则执行步骤s319e;
s319d,将当前节点所划分对应得到的子节点V1更新为当前节点,返回执行步骤s319b;
s319e,将当前节点所划分对应得到的子节点V2更新为当前节 点,返回执行步骤s319b;
s319f,根据当前节点中的V.field中的值确定分类结果,根据当前节点中的V.point的值确定分类的优先级,执行步骤s319g;
s319g,根据所述分类结果进行网包的存储、转发或丢弃。
优选地,在步骤s319d中根据更新前当前节点中的V.offset定位到子节点V1,V1的存储地址为:&(V)+V.offset,&(V)表示取更新前当前节点的地址;
在步骤s319e中根据更新前当前节点中的V.offset定位到子节点V2,V2的存储地址为:&(V)+V.offset+sizeof(V),&(V)表示取更新前当前节点的地址,sizeof(V)表示一个节点所占的地址范围。
利用本发明提供的基于多核处理器的多域网包分类方法,具有以下有益效果:
1)可以在多种平台上实现,包括基于微处理器CPU的通用平台以及基于网络处理器NPU的专用平台,发展了高性能网包分类设备的广泛使用;
2)所采用的划分维度和划分点的方法,可以保证良好的性能和对不同网络应用的适应性;
3)大幅降低高端策略路由及防火墙产品的生产成本,从而推动和加速下一代互联网的实施和运行。
附图说明
图1现有决策树结构进行网包分类的流程图;
图2为本发明基于多核处理器的多域网包分类方法流程图;
图3为本发明实施例中基于决策树结构进行网包分类的流程图;
图4为本发明提供的另一种基于多核处理器的多域网包分类方法流程图;
图5为本发明提供的再一种基于多核处理器的多域网包分类方法流程图。
具体实施方式
本发明提出的基于多核处理器的多域网包分类方法,结合附图和实施例说明如下。
本发明提出的方法适用于任何维度的多域网包分类问题,为方便说明,将网包中最常用的五元组(即源/目的网络层地址(各32位),源/目的传输层端口(各16位)和传输层协议标志(8位))作为过滤规则的域,本发明的网包分类方法所遵循的基准为:通过不断划分搜索空间,减少每个子空间中的规则个数,直到每个子空间有唯一的匹配规则,搜索空间划分时涉及到具体选择哪个维度划分及具体在所选择的维度上的哪一点划分的问题,本发明的方法中选择维度的方法为:选择一个特定的维度,使得在该维度上选择某划分点进行空间划分后,落入到两个子空间的两个规则子集的规则数之和尽可能少(即尽可能避免同一规则落入两个子空间中);本发明中在所选择的维度上确定划分点的方法为:选择所选择维度上的划分点,使得依据该点划分后落入到该两个子空间包含的规则个数尽可能相等。
本发明与现有技术相比的创新点在于:分类所用的决策树的数据结构的构建方法,决策树构建过程所涉及搜索空间划分的方法,具体为划分点和划分维度的选择方法,本发明中划分点及划分维度的划分只跟子空间和落入到子空间的规则子集相关,并且根据不同的情况选择采用三种划分点选择方法和与之相关联的两种维度选择方法。
实施例1
如图2为本实施例基于多核处理器的多域网包分类方法流程图,该方法包括步骤:
s101,获取设定的规则全集,每条规则包括优先级、作为过滤规则的域的取值范围和分类结果;
对于五元组分类,每个规则表示如下:
RULE{
uint16_t pri; //规则优先级,0为最高,
uint32_t sIP[2];//源IP地址范围
uint32_t dIP[2];//目标IP地址范围
uint16_t sPT[2];//源端口地址范围
uint16_t dPT[2];//目标端口地址范围
uint8_t prot; //传输层协议,如TCP或UDP等
uint8_t action;//网包分类结果,如通过,丢弃,记录。
};
定义规则全集为R0,用r0,r1,…表示其中的规则,且ri表示优先级为i的规则(pri=i)。
s102,将多域网包包头中作为过滤规则的域的所有可能取值空间作为初始搜索空间S0,域对应初始搜索空间的维度;
对于五元组分类,初始搜索空间为S0={[0,232-1],[0,232-1],[0,216-1],[0,216-1],[0,28-1]};
s103,生成与所述R0、S0对应的根节点V0,并生成一组处理元,将R0、S0和V0分别赋值给该组处理元中的R’、S’和V’;
本发明引入节点的概念的目的,是通过定义节点的数据结构,并对其不断分类,构成决策树的数据结构。
s104,将所生成的该组处理元送入队列Q,队列Q为先进先出队列,既入队操作将入队对象放在队列尾端,出对操作为从队列头部取出对象。
s105,从队列Q中取出一组处理元,即取出位于头部的处理元,得到取出处理元的R’、S’、V’,为区分是取出的处理元,这里将取出处理元的R’、S’、V’分别记为R、S、V;
s106,判断R中所有规则是否都包含S,若是,说明该节点V不需要再进行划分,执行步骤s116,若否,说明该节点需要进一步划分,执行步骤s107;
这里及本发明全文所提及的规则包含空间中的“包含”具体解释 如下:
单一维度范围的包含关系:两个范围[a1,a2],[b1,b2],若a1<=b1且a2>=b2,则[a1,a2]包含[b1,b2];
多域维度范围的包含关系:多维对象A中各个维度上的范围都包含多维对象B中相对维度上的范围,本实施例中的规则和搜索空间都属于多维对象。
s107,选择端点值最多的域对应的维度作为S的划分维度F
本实施例中首先定义R中所有规则在每一个相同域f(对5元组来说,0<=f<5)上的端点值(每一个范围的起始点和终结点的值)构成的集合为M’,1<M’<2(N+1),N为R中所有规则的个数,将每个域上的M’个端点值按照从小到大的顺序排列并存储在数组Pt[i]中,其中0<i<M’+1,因此,该步骤是选择存储最多端点值的数组的域对应的维度作为S的划分维度。
s108,将R中所有规则在划分维度F上的不同端点值进行升序排序,设总共M个端点值;
s109,选择在划分维度F上排序后的第INT(M/2)个端点值为划分点P,其中,INT表示取整运算,即选择划分维度F对应域上存储在Pt[INT(M/2)]中的端点值作为划分点;
s110,将S在划分维度F上以划分点P进行空间划分,得到子空间S1和子空间S2;
空间划分定义为在指定的一个维度上对当前搜索空间的一个划分。例如对初始搜索空间,如果在第1个域上以划分点P进行二分,则得到两个搜索子空间S1’={[0,P-1],[0,232-1],[0,216-1],[0,216-1],[0,28-1]},S2’={[P,232-1],[0,232-1],[0,216-1],[0,216-1],[0,28-1]}。
s111,将R中所有与子空间S1有重叠的规则记为R1,将R中所有与子空间S2有重叠的规则记为R2;
本实施例及全文所说的规则与空间有重叠的定义如下:
单一维度范围的重叠关系:两个范围[a1,a2],[b1,b2],若a1<=b2且a2>=b1,则[a1,a2]与[b1,b2]重叠;
多域维度范围的重叠关系:多维对象A中任何一个维度上的范围与多维对象B中相对维度上的范围重叠,本实施例中的规则和空间都属于多维对象,因此规则与空间有重叠即指满足上述多域维度范围的重叠关系。
s112,生成与R1、S1对应的子节点V1,及与R2、S2对应的子节点V2,V1和V2的地址空间连续,由于V1和V2的地址空间连续,拥有V1的地址即可找到V2;
s113,将V设置为内部节点,并将V赋值为如下数据结构:
V.field=F,V.point=P,V.offset=V1的起始地址
这里的地址是指内存地址值。
这样,取出处理元中的节点V数据结构已构建好,且进行了二分生成两个新的子节点V1和V2;
s114,生成一组处理元,将所述R1、S1和V1分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入先进先出队列Q;
s115,生成一组处理元,将所述R2、S2和V2分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入先进先出队列Q,返回执行步骤s105;
s116,获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据结构:
V.field=r.action,V.point=r.pri,V.offset=0;
其中,r.action为规则r中的分类结果,r.pri为规则r中的优先级。
这样,完成取出处理元中V的数据结构。
s117,判断当前队列Q是否为空,若是,执行步骤s118,若否,返回执行步骤s105;
只有队列Q为空,才表面所有搜索空间都已划分完毕,决策树构 建过程才结束。
s118,返回根节点V0,将其作为决策树数据结构索引的起点;
根节点为决策树数据结构索引的起始点节点,通过根节点就能完成决策树的遍历,因此,返回根节点就相当于返回了整个决策树的分类数据结构。
s119,接收网包,并根据网包中作为过滤规则的域的值从根节点V0开始,根据决策树的数据结构定位网包所匹配的叶节点,根据叶节点中V.field的值对网包进行分类。
上述步骤s101~步骤s117为决策树分类数据结构的构建过程,经上述步骤,可以对初始搜索空间不断划分,若将初始搜索空间对应作为根节点V0,按上述过程可不断划分出子节点,得到决策树。本实施例中的决策树为二叉树结构,每个节点对应一个搜索子空间(其中根节点对应初始搜索空间),每个内部节点拥有两个子节点,且两个子节点对应的搜索空间为以内部节点的划分点划分出来的两个子空间。节点采用的数据结构如下:
节点数据结构:
TREENODE{
Uint8_t field:8;//内部节点:进行空间划分的域
//叶节点:所匹配规则的分类结果(action)
uint32_t offset:24;//内部节点:下级节点地址偏移量。
//叶节点:0
uint32_t point; //内部节点:划分点
//叶节点:规则优先级
};
上述构建过程,每次取出一个处理元,对处理元中的节点V的数据结构完成V.field、V.point=r.pri、V.offset的赋值,当对列Q为空时,即构建好了决策树中所有节点的V.field、V.point=r.pri、V.offset值。下 面给出基于上述决策树的数据结构构建过程,在步骤s119中对接收网包进行分类的具体过程。
对于五元组网包,可以获得作为如下五元组信息:
32位源IP地址:sIP;
32位目标IP地址:dIP;
16位源端口:sPT;
16位目标端口:dPT;
8位传输层协议:prot。
本实施例中在步骤s119的具体子步骤包括:
s119a,将当前节点初始化为根节点V0;
s119b,判断当前节点中的V.offset是否为0,若是,说明当前节点是叶节点,执行步骤s119f,若否,说明当前节点为内部节点,执行步骤s119c;
s119c,提取网包中五元组与当前节点中的V.field(即划分维度F)对应域的值,若该值小于等于当前节点中的V.point(即划分点P),则执行步骤s119d,否则,执行步骤s119e;
s119d,将当前节点所划分对应得到的子节点V1更新为当前节点,返回执行步骤s199b,其中V1的存储地址为:&(V)+V.offset。其中&(V)表示取更新前当前子节点的地址,V.offset为更新前当前子节点中的下级节点地址偏移量V.offset;
s119e,将当前节点所划分对应得到的子节点V2更新为当前节点,返回执行步骤s199b,其中V2的存储地址为:&(V)+V.offset+sizeof(V),&(V)表示取更新前当前子节点的地址,V.offset为更新前当前子节点中的下级节点地址偏移量V.offset,sizeof(V)表示一个节点所占的地址长度;
s119f,根据当前节点中的V.field中的值确定分类结果,根据当前节点中的V.point的值确定分类的优先级,执行步骤s119g;
s119g,根据所述分类结果进行网包的存储、转发或丢弃。
实施例2
本实施例中网包分类方法的各步骤中除了与实施例1中在步骤s109中选择S在划分维度F上的划分点P所采用的方法不同,其余各步骤均相同。
本实施例中选择S在划分维度F上的划分点P方法为:从M个端点值中选择P为划分点,使得以P为划分点在划分维度F上对S进行空间划分时,落入划分后其中一个子空间的规则数最接近R中所有规则数的一半。即选择R中F对应域上的某个端点值Pt[m]为划分点,使以该划分点Pt[m]在划分维度F上划分时,尽量使得R中落入[Pt[1],Pt[m]]限定的子空间中的规则数为R所有规则数的一半INT(|R|/2),|R|代表R中的所有规则数,INT表示取整运算。
本实施例及全文所说的规则落入空间是指规则与空间有重叠,关于规则与空间有重叠的定义同上:
单一维度范围的重叠关系:两个范围[a1,a2],[b1,b2],若a1<=b2且a2>=b1,则[a1,a2]与[b1,b2]重叠;
多域维度范围的重叠关系:多维对象A中任何一个维度上的范围与多维对象B中相对维度上的范围重叠,本实施例中的规则和空间都属于多维对象,因此规则落入空间即指满足上述多域维度范围的重叠关系。
实施例3
本实施例中网包分类方法的各步骤中除了与实施例1、实施例2中在步骤s107~s109中,选择S的划分维度F及选择S在划分维度F上的划分点P所采用的方法不同,其余各步骤均相同。
如前所述,取出处理元的R中所有规则在每一个相同域f(对5元组来说,0<=f<5)上的不同端点值(每一个范围的起始点和终结点的值)构成的集合为M’,2<=M’<=2(N-1),N为R中的规则个数,将 每个域上的M’个端点值按照从小到大的顺序排列并存储在数组Pt[i]中,其中0<=i<M’。每一个域都会得到一个上述数组Pt[i],对于每一个域所对应的数组Pt[i],两个相邻的端点值构成一个区间,M’个端点值构成M’-1个区间,这M’-1个区间用数组Sg[j]标识,其中0<=j<M’-1。R中规则落入每个区间中的规则数记为Sr[k],其中0<=k<M’-1;这里所说的规则落入每个区间具体是指,规则落入将S对应域上取值限定到相邻端点值区间后构成的子空间。
本实施例中对内部节点在选择划分维度的方法为:对于每一个域,统计R中规则落入该域上每个区间的规则的个数,将所得个数相加后除以该域上的区间总数M’-1得到每个域的区间平均规则数T,表示如下:
选择划分维度F,使得这个域上的T为最小,即选择区间平均规则数最小的域对应的维度作为S的划分维度F。
本实施例中选择在划分维度F上的划分点P的方法具体为:
即选择F对应域上的一个端点值Pt[m]为划分点,使得m为满足下式的最小值:
即选取端点P为满足R中落入F对应域上第一个端点值到P间每相邻两端点值区间内的规则数之和大于落入F对应域上所有每相邻两端点值区间内的规则数之和一半的约束条件的值最小的端点。
目前千兆级以上的高端策略路由器设备均采用ASIC/FPGA等专用芯片解决方案。由于基于专用芯片的设备开发周期长,体积功耗大,更新难度高,所以此类产品的效费比很低,限制了高性能网包分类设备的广泛使用。而本专利提出的多域网包分类方法既可以在多种平台上实现,包括基于微处理器CPU的通用平台以及基于网络处理器NPU的专用平台,有可以保证良好的性能和对不同网络应用的适应性,因 此整套软硬件系统可以作为多域网包分类方法的核心模块提供给厂商以提高基于通用处理器平台的网包分类设备的性能,大幅降低高端策略路由及防火墙产品的生产成本,从而推动和加速下一代互联网的实施和运行。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (9)
1.基于多核处理器的多域网包分类方法,包括以下步骤:
s101,获取设定的规则全集R0,每条规则包括优先级、作为过滤规则的域的取值范围和分类结果;
s102,将多域网包包头中作为过滤规则的域的所有可能取值空间作为初始搜索空间S0,域对应初始搜索空间的维度;
s103,生成与所述R0、S0对应的根节点V0,并生成一组处理元,将所述R0、S0和V0分别赋值给该组处理元中的R’、S’和V’;
s104,将该组处理元送入队列Q,队列Q为先进先出队列;
s105,从队列Q中取出一组处理元,得到取出处理元的R’、S’、V’,分别记为R、S、V;
s106,判断R中所有规则是否都包含S,若是,执行步骤s116,若否,执行步骤s107;
s107,选择端点值最多的域对应的维度作为S的划分维度F;
s108,将R中所有规则在划分维度F上的不同端点值进行升序排序,设总共M个端点值;
s109,选择在划分维度F上排序后的第INT(M/2)个端点值为划分点P,其中,INT表示取整运算;
s110,将S在划分维度F上以划分点P进行空间划分,得到子空间S1和子空间S2;
s111,将R中所有与子空间S1有重叠的规则记为R1,将R中所有与子空间S2有重叠的规则记为R2;
s112,生成与R1、S1对应的子节点V1,及与R2、S2对应的子节点V2,并使得V1和V2的存储地址空间连续;
s113,将V设置为内部节点,并将V赋值为如下数据结构:
V.field=F,V.point=P,V.offset=V1的起始地址;
s114,生成一组处理元,将所述R1、S1和V1分别赋值给该组处 理元中的R’、S’和V’,将该组处理元送入队列Q;
s115,生成一组处理元,将所述R2、S2和V2分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q,返回执行步骤s105;
s116,获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据结构:
V.field=r.action,V.point=r.pri,V.offset=0;
其中,r.action为规则r中的分类结果,r.pri为规则r中的优先级;
s117,判断当前队列Q是否为空,若是,执行步骤s118,若否,返回执行步骤s105;
s118,返回根节点V0,将其作为决策树数据结构索引的起点;
s119,接收网包,并根据网包中作为过滤规则的域的值从根节点V0开始,根据决策树的数据结构定位网包所匹配的叶节点,根据叶节点中V.field的值对网包进行分类。
2.如权利要求1所述的方法,其特征在于,步骤s119中分类包括以下子步骤:
s119a,将当前节点初始化为根节点V0;
s119b,判断当前节点中的V.offset是否为0,若是,则执行步骤s119f,否则执行步骤s119c;
s119c,获取网包中与当前节点中的V.field对应域的值,若该值小于等于当前节点中的V.point,则执行步骤s119d,否则执行步骤s119e;
s119d,将当前节点所划分对应得到的子节点V1更新为当前节点,返回执行步骤s119b;
s119e,将当前节点所划分对应得到的子节点V2更新为当前节点,返回执行步骤s119b;
s119f,根据当前节点中的V.field中的值确定分类结果,根据当前节点中的V.point的值确定分类的优先级,执行步骤s119g;
s119g,根据所述分类结果进行网包的存储、转发或丢弃。
3.如权利要求2所述的方法,其特征在于,
在步骤s119d中根据更新前当前节点中的V.offset定位到子节点V1,V1的存储地址为:&(V)+V.offset,&(V)表示取更新前当前节点的地址;
在步骤s119e中根据更新前当前节点中的V.offset定位到子节点V2,V2的存储地址为:&(V)+V.offset+sizeof(V),&(V)表示取更新前当前节点的地址,sizeof(V)表示一个节点所占的地址范围。
4.基于多核处理器的多域网包分类方法,包括以下步骤:
s201,获取设定的规则全集R0,每条规则包括优先级、作为过滤规则的域的取值范围和分类结果;
s202,将多域网包包头中作为过滤规则的域的所有可能取值空间作为初始搜索空间S0,域对应初始搜索空间的维度;
s203,生成与所述R0、S0对应的根节点V0,并生成一组处理元,将所述R0、S0和V0分别赋值给该组处理元中的R’、S’和V’;
s204,将该组处理元送入队列Q,队列Q为先进先出队列;
s205,从队列Q中取出一组处理元,得到取出处理元的R’、S’、V’,分别记为R、S、V;
s206,判断R中所有规则是否都包含S,若是,执行步骤s216,若否,执行步骤s207;
s207,选择端点值最多的域对应的维度作为S的划分维度F;
s208,将R中所有规则在划分维度F上的不同端点值进行升序排序,设总共M个端点值;
s209,从M个端点值中选择P为划分点,使得以P为划分点在划分维度F上对S进行空间划分时,落入划分后其中一个子空间的规则数最接近R中所有规则数的一半;
s210,将S在划分维度F上以划分点P进行空间划分,得到子空间 S1和子空间S2;
s211,将R中所有与子空间S1有重叠的规则记为R1,将R中所有与子空间S2有重叠的规则记为R2;
s212,生成与R1、S1对应的子节点V1,及与R2、S2对应的子节点V2,并使得V1和V2的存储地址空间连续;
s213,将V设置为内部节点,并将V赋值为如下数据结构:
V.field=F,V.point=P,V.offset=V1的起始地址;
s214,生成一组处理元,将所述R1、S1和V1分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q;
s215,生成一组处理元,将所述R2、S2和V2分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q,返回执行步骤s205;
s216,获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据结构:
V.field=r.action,V.point=r.pri,V.offset=0;
其中,r.action为规则r中的分类结果,r.pri为规则r中的优先级;
s217,判断当前队列Q是否为空,若是,执行步骤s218,若否,返回执行步骤s205;
s218,返回根节点V0,将其作为决策树数据结构索引的起点;
s219,接收网包,并根据网包中作为过滤规则的域的值从根节点V0开始,根据决策树的数据结构定位网包所匹配的叶节点,根据叶节点中V.field的值对网包进行分类。
5.根据权利要求4所述的方法,其特征在于,步骤s219中分类包括以下子步骤:
s219a,将当前节点初始化为根节点V0;
s219b,判断当前节点中的V.offset是否为0,若是,则执行步骤s219f,否则执行步骤s219c;
s219c,获取网包中与当前节点中的V.field对应域的值,若该值 小于等于当前节点中的V.point,则执行步骤s219d,否则执行步骤s219e;
s219d,将当前节点所划分对应得到的子节点V1更新为当前节点,返回执行步骤s219b;
s219e,将当前节点所划分对应得到的子节点V2更新为当前节点,返回执行步骤s219b;
s219f,根据当前节点中的V.field中的值确定分类结果,根据当前节点中的V.point的值确定分类的优先级,执行步骤s219g;
s219g,根据所述分类结果进行网包的存储、转发或丢弃。
6.根据权利要求5所述的方法,其特征在于,
在步骤s219d中根据更新前当前节点中的V.offset定位到子节点V1,V1的存储地址为:&(V)+V.offset,&(V)表示取更新前当前节点的地址;
在步骤s219e中根据更新前当前节点中的V.offset定位到子节点V2,V2的存储地址为:&(V)+V.offset+sizeof(V),&(V)表示取更新前当前节点的地址,sizeof(V)表示一个节点所占的地址范围。
7.基于多核处理器的多域网包分类方法,包括以下步骤:
s301,获取设定的规则全集R0,每条规则包括优先级、作为过滤规则的域的取值范围和分类结果;
s302,将多域网包包头中作为过滤规则的域的所有可能取值空间作为初始搜索空间S0,域对应初始搜索空间的维度;
s303,生成与所述R0、S0对应的根节点V0,并生成一组处理元,将所述R0、S0和V0分别赋值给该组处理元中的R’、S’和V’;
s304,将该组处理元送入队列Q,队列Q为先进先出队列;
s305,从队列Q中取出一组处理元,得到取出处理元的R’、S’、V’,分别记为R、S、V;
s306,判断R中所有规则是否都包含S,若是,执行步骤s316,若 否,执行步骤s307;
s307,R中每个域上的相邻两个端点值构成一个区间,对于每一个域统计R中规则落入该域上每个区间的规则的个数,将所得个数相加后除以该域上的区间总数得到每个域的区间平均规则数;
s308,选择区间平均规则数最小的域对应的维度作为S的划分维度F;
s309,选择F对应域上的一个端点值作为划分点P,使得R中落入F对应域上第一个端点值到P间每相邻两端点值区间内的规则数之和,是大于落入F对应域上所有每相邻两端点值区间内的规则数之和一半的最小值;
s310,将S在划分维度F上以划分点P进行空间划分,得到子空间S1和子空间S2;
s311,将R中所有与子空间S1有重叠的规则记为R1,将R中所有与子空间S2有重叠的规则记为R2;
s312,生成与R1、S1对应的子节点V1,及与R2、S2对应的子节点V2,并使得V1和V2的存储地址空间连续;
s313,将V设置为内部节点,并将V赋值为如下数据结构:
V.field=F,V.point=P,V.offset=V1的起始地址;
s314,生成一组处理元,将所述R1、S1和V1分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q;
s315,生成一组处理元,将所述R2、S2和V2分别赋值给该组处理元中的R’、S’和V’,将该组处理元送入队列Q,返回执行步骤s305;
s316,获取R中优先级最高的规则r,将V设置为叶节点,并将V赋值为如下数据结构:
V.field=r.action,V.point=r.pri,V.offset=0;
其中,r.action为规则r中的分类结果,r.pri为规则r中的优先级;
s317,判断当前队列Q是否为空,若是,执行步骤s318,若否, 返回执行步骤s305;
s318,返回根节点V0,将其作为决策树数据结构索引的起点;
s319,接收网包,并根据网包中作为过滤规则的域的值从根节点V0开始,根据决策树的数据结构定位网包所匹配的叶节点,根据叶节点中V.field的值对网包进行分类。
8.根据权利要求7所述的方法,其特征在于,步骤s319中分类包括以下子步骤:
s319a,将当前节点初始化为根节点V0;
s319b,判断当前节点中的V.offset是否为0,若是,则执行步骤s319f,否则执行步骤s319c;
s319c,获取网包中与当前节点中的V.field对应域的值,若该值小于等于当前节点中的V.point,则执行步骤s319d,否则执行步骤s319e;
s319d,将当前节点所划分对应得到的子节点V1更新为当前节点,返回执行步骤s319b;
s319e,将当前节点所划分对应得到的子节点V2更新为当前节点,返回执行步骤s319b;
s319f,根据当前节点中的V.field中的值确定分类结果,根据当前节点中的V.point的值确定分类的优先级,执行步骤s319g;
s319g,根据所述分类结果进行网包的存储、转发或丢弃。
9.根据权利要求8所述的方法,其特征在于,
在步骤s319d中根据更新前当前节点中的V.offset定位到子节点V1,V1的存储地址为:&(V)+V.offset,&(V)表示取更新前当前节点的地址;
在步骤s319e中根据更新前当前节点中的V.offset定位到子节点V2,V2的存储地址为:&(V)+V.offset+sizeof(V),&(V)表示取更新前当前节点的地址,sizeof(V)表示一个节点所占的地址范围。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100770674A CN101478551B (zh) | 2009-01-19 | 2009-01-19 | 基于多核处理器的多域网包分类方法 |
US12/689,842 US8375433B2 (en) | 2009-01-19 | 2010-01-19 | Method for multi-core processor based packet classification on multiple fields |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100770674A CN101478551B (zh) | 2009-01-19 | 2009-01-19 | 基于多核处理器的多域网包分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101478551A CN101478551A (zh) | 2009-07-08 |
CN101478551B true CN101478551B (zh) | 2011-12-28 |
Family
ID=40839183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100770674A Active CN101478551B (zh) | 2009-01-19 | 2009-01-19 | 基于多核处理器的多域网包分类方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8375433B2 (zh) |
CN (1) | CN101478551B (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478551B (zh) * | 2009-01-19 | 2011-12-28 | 清华大学 | 基于多核处理器的多域网包分类方法 |
CN102308533B (zh) * | 2010-06-28 | 2013-10-09 | 华为技术有限公司 | 对报文进行分类的方法及装置 |
CN102377640B (zh) * | 2010-08-11 | 2014-12-31 | 杭州华三通信技术有限公司 | 一种报文处理装置和报文处理方法、及预处理器 |
US8983866B2 (en) * | 2011-04-06 | 2015-03-17 | International Business Machines Corporation | Automated encoding of delta operators |
US10360626B2 (en) | 2011-04-06 | 2019-07-23 | International Business Machines Corporation | Securities messages with automated encoding of field operators |
US8972497B2 (en) | 2011-04-06 | 2015-03-03 | International Business Machines Corporation | Automated encoding of field operators for absent fields |
US8489492B2 (en) * | 2011-04-06 | 2013-07-16 | International Business Machines Corporation | Automated encoding of increment operators |
KR20140047221A (ko) * | 2012-10-09 | 2014-04-22 | (주)소만사 | 네트워크 정보유출방지 기기의 대용량 패킷 처리를 위한 하드웨어 엔진 |
CN103207887A (zh) * | 2013-01-14 | 2013-07-17 | 广州佳都信息技术研发有限公司 | 一种高效历史趋势数据存储方法 |
US9215214B2 (en) | 2014-02-20 | 2015-12-15 | Nicira, Inc. | Provisioning firewall rules on a firewall enforcing device |
CN104935504B (zh) * | 2014-03-17 | 2018-05-22 | 中国移动通信集团河北有限公司 | 一种确定数据包对应的数据规则的方法及装置 |
CN103888350B (zh) * | 2014-03-31 | 2017-04-19 | 清华大学 | 一种多域网包分类规则集的分组方法 |
US10235338B2 (en) * | 2014-09-04 | 2019-03-19 | Nvidia Corporation | Short stack traversal of tree data structures |
US9552664B2 (en) | 2014-09-04 | 2017-01-24 | Nvidia Corporation | Relative encoding for a block-based bounding volume hierarchy |
CN106209614B (zh) | 2015-04-30 | 2019-09-17 | 新华三技术有限公司 | 一种网包分类方法和装置 |
US9755903B2 (en) | 2015-06-30 | 2017-09-05 | Nicira, Inc. | Replicating firewall policy across multiple data centers |
US10348685B2 (en) * | 2016-04-29 | 2019-07-09 | Nicira, Inc. | Priority allocation for distributed service rules |
US11171920B2 (en) | 2016-05-01 | 2021-11-09 | Nicira, Inc. | Publication of firewall configuration |
US11425095B2 (en) | 2016-05-01 | 2022-08-23 | Nicira, Inc. | Fast ordering of firewall sections and rules |
CN106096022B (zh) * | 2016-06-22 | 2020-02-11 | 杭州迪普科技股份有限公司 | 多域网包分类规则的划分方法及装置 |
US11088990B2 (en) | 2016-06-29 | 2021-08-10 | Nicira, Inc. | Translation cache for firewall configuration |
US11258761B2 (en) | 2016-06-29 | 2022-02-22 | Nicira, Inc. | Self-service firewall configuration |
CN106027393B (zh) * | 2016-07-29 | 2019-06-07 | 杭州迪普科技股份有限公司 | 网包规则集的分类方法及装置 |
CN108632235B (zh) | 2017-08-31 | 2020-07-07 | 新华三技术有限公司 | 一种网包分类决策树建立方法及装置 |
CN111049746B (zh) * | 2018-10-12 | 2022-04-22 | 华为技术有限公司 | 一种路由表项生成方法、字典树生成方法和装置 |
US11310202B2 (en) | 2019-03-13 | 2022-04-19 | Vmware, Inc. | Sharing of firewall rules among multiple workloads in a hypervisor |
CN111949740B (zh) * | 2019-05-15 | 2024-03-26 | 中国科学院声学研究所 | 基于多核处理器的并行网包分类方法、系统及网络设备 |
CN111382868B (zh) * | 2020-02-21 | 2024-06-18 | 华为技术有限公司 | 神经网络结构搜索方法和神经网络结构搜索装置 |
CN112765223B (zh) * | 2021-01-26 | 2023-07-14 | 红云红河烟草(集团)有限责任公司 | 一种基于队列的设备参数数据对齐方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688140A (zh) * | 2005-06-03 | 2005-10-26 | 清华大学 | 基于网络处理器的高速多维报文分类算法的设计和实现 |
CN1822567A (zh) * | 2005-12-23 | 2006-08-23 | 清华大学 | 基于网络流量的多域网包分类方法 |
CN101242408A (zh) * | 2008-01-18 | 2008-08-13 | 南京邮电大学 | 一种开放式多源数据包捕获器构造方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7154858B1 (en) * | 1999-06-30 | 2006-12-26 | Cisco Technology, Inc. | System and method for measuring latency of a selected path of a computer network |
US6560610B1 (en) * | 1999-08-10 | 2003-05-06 | Washington University | Data structure using a tree bitmap and method for rapid classification of data in a database |
US6970462B1 (en) * | 2000-04-24 | 2005-11-29 | Cisco Technology, Inc. | Method for high speed packet classification |
MXPA03003656A (es) * | 2000-10-26 | 2005-01-25 | Wave7 Optics Inc | Metodo y sistema para procesar paquetes corriente abajo de una red optica. |
US7116663B2 (en) * | 2001-07-20 | 2006-10-03 | Pmc-Sierra Ltd. | Multi-field classification using enhanced masked matching |
US7054315B2 (en) * | 2001-09-17 | 2006-05-30 | Pmc-Sierra Ltd. | Efficiency masked matching |
US7403999B2 (en) * | 2001-12-28 | 2008-07-22 | International Business Machines Corporation | Classification support system and method for fragmented IP packets |
US20040010612A1 (en) * | 2002-06-11 | 2004-01-15 | Pandya Ashish A. | High performance IP processor using RDMA |
US7408957B2 (en) * | 2002-06-13 | 2008-08-05 | International Business Machines Corporation | Selective header field dispatch in a network processing system |
US7292589B2 (en) * | 2002-08-13 | 2007-11-06 | Narendra Kumar Dhara | Flow based dynamic load balancing for cost effective switching systems |
KR20040052012A (ko) * | 2002-12-13 | 2004-06-19 | 한국전자통신연구원 | 고속 패킷 망을 위한 패킷 스케줄링 시스템 및 방법 |
US20050135378A1 (en) * | 2003-12-22 | 2005-06-23 | Nortel Networks Limited | Service aware policer with efficient handling of in-profile traffic |
US7412431B2 (en) * | 2004-04-27 | 2008-08-12 | International Business Machines Corporation | Method for managing multi-field classification rules relating to ingress |
US7454396B2 (en) * | 2004-04-27 | 2008-11-18 | International Business Machines Corporation | Method for compressing multi-field rule specifications |
US7813263B2 (en) * | 2004-06-30 | 2010-10-12 | Conexant Systems, Inc. | Method and apparatus providing rapid end-to-end failover in a packet switched communications network |
US20080117918A1 (en) * | 2004-10-22 | 2008-05-22 | Satoshi Kobayashi | Relaying Apparatus and Network System |
US7474654B2 (en) * | 2005-01-26 | 2009-01-06 | Cisco Technology, Inc. | Method and system for classification of packets based on meta-rules |
US7624436B2 (en) * | 2005-06-30 | 2009-11-24 | Intel Corporation | Multi-pattern packet content inspection mechanisms employing tagged values |
US7784094B2 (en) * | 2005-06-30 | 2010-08-24 | Intel Corporation | Stateful packet content matching mechanisms |
US7787463B2 (en) * | 2006-01-26 | 2010-08-31 | Broadcom Corporation | Content aware apparatus and method |
US8045563B2 (en) * | 2007-12-27 | 2011-10-25 | Cellco Partnership | Dynamically adjusted credit based round robin scheduler |
US8223641B2 (en) * | 2008-07-28 | 2012-07-17 | Cellco Partnership | Dynamic setting of optimal buffer sizes in IP networks |
US8171539B2 (en) * | 2009-01-07 | 2012-05-01 | Symbol Technologies, Inc. | Methods and apparatus for implementing a search tree |
CN101478551B (zh) * | 2009-01-19 | 2011-12-28 | 清华大学 | 基于多核处理器的多域网包分类方法 |
-
2009
- 2009-01-19 CN CN2009100770674A patent/CN101478551B/zh active Active
-
2010
- 2010-01-19 US US12/689,842 patent/US8375433B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1688140A (zh) * | 2005-06-03 | 2005-10-26 | 清华大学 | 基于网络处理器的高速多维报文分类算法的设计和实现 |
CN1822567A (zh) * | 2005-12-23 | 2006-08-23 | 清华大学 | 基于网络流量的多域网包分类方法 |
CN101242408A (zh) * | 2008-01-18 | 2008-08-13 | 南京邮电大学 | 一种开放式多源数据包捕获器构造方法 |
Non-Patent Citations (4)
Title |
---|
Yaxuan Qi等.Performance Evaluation and Improvement of Algorithmic Approaches for Packet Classification.《Joint International Conference on Autonomic and Autonomous Systems and International Conference on Networking and Services, 2005. ICAS-ICNS 2005》.2005,全文. * |
Yaxuan Qi等.Towards Optimized Packet Classification Algorithms for Multi-Core Network Processors.《International Conference on Parallel Processing, 2007. ICPP 2007》.2007,全文. * |
YaxuanQi等.PerformanceEvaluationandImprovementofAlgorithmicApproachesforPacketClassification.《JointInternationalConferenceonAutonomicandAutonomousSystemsandInternationalConferenceonNetworkingandServices 2005. ICAS-ICNS 2005》.2005 |
YaxuanQi等.TowardsOptimizedPacketClassificationAlgorithmsforMulti-CoreNetworkProcessors.《InternationalConferenceonParallelProcessing 2007. ICPP 2007》.2007 |
Also Published As
Publication number | Publication date |
---|---|
US20100192215A1 (en) | 2010-07-29 |
CN101478551A (zh) | 2009-07-08 |
US8375433B2 (en) | 2013-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101478551B (zh) | 基于多核处理器的多域网包分类方法 | |
Harb et al. | Comparison of different data aggregation techniques in distributed sensor networks | |
CN1881950B (zh) | 使用频谱分析的分组分类加速 | |
CN101146027B (zh) | 基于访问控制列表分类的方法 | |
Hicks et al. | Branch and tree decomposition techniques for discrete optimization | |
Cohen et al. | Exact and approximate algorithms for computing the hyperbolicity of large-scale graphs | |
Mohammed et al. | Edge computing intelligence using robust feature selection for network traffic classification in internet-of-things | |
Hamm et al. | The complexity of temporal vertex cover in small-degree graphs | |
Li et al. | Communication cost minimization in wireless sensor and actor networks for road surveillance | |
Kaushal et al. | A systematic review of swarm intelligence algorithms to perform routing for VANETs communication | |
Jia et al. | AI-enhanced security demand and routing management for MANETs with optical technologies | |
Dragan et al. | Collective tree spanners in graphs with bounded parameters | |
Abdul Basith et al. | Energy and efficient privacy cryptography-based Fuzzy K-Means clustering a WSN using genetic algorithm | |
Jiang | Small world modeling for complex geographic environments | |
Arab et al. | A modularity maximization algorithm for community detection in social networks with low time complexity | |
Bahi et al. | Frequency filtering approach for data aggregation in periodic sensor networks | |
Bartal et al. | Lower bounds for on-line graph problems with application to on-line circuit and optical routing | |
Jiang et al. | Scalable packet classification: Cutting or merging? | |
Žužic | Towards Universal Optimality in Distributed Optimization | |
Titouna et al. | Qualitative fusion-based traffic signal preemption | |
Guan et al. | Inverse bottleneck optimization problems on networks | |
Guo et al. | An improved community discovery algorithm in weighted social networks | |
Dau et al. | Inference of latent network features via co-intersection representations of graphs | |
Maron | Exploring the Dial-a-Ride Problem via a Clustering Algorithm Approach | |
Feng | Application of hybrid genetic algorithm in large traffic scheduling in SDN architecture |
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 |