CN1992674A - 一种基于多比特分割的多维分组分类方法 - Google Patents

一种基于多比特分割的多维分组分类方法 Download PDF

Info

Publication number
CN1992674A
CN1992674A CNA2005101215228A CN200510121522A CN1992674A CN 1992674 A CN1992674 A CN 1992674A CN A2005101215228 A CNA2005101215228 A CN A2005101215228A CN 200510121522 A CN200510121522 A CN 200510121522A CN 1992674 A CN1992674 A CN 1992674A
Authority
CN
China
Prior art keywords
bit
node
performance
value
rule
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
CNA2005101215228A
Other languages
English (en)
Other versions
CN1992674B (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.)
Huawei Technologies Co Ltd
Beijing University of Posts and Telecommunications
Original Assignee
Huawei Technologies Co Ltd
Beijing University of Posts and Telecommunications
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 Huawei Technologies Co Ltd, Beijing University of Posts and Telecommunications filed Critical Huawei Technologies Co Ltd
Priority to CN200510121522A priority Critical patent/CN1992674B/zh
Publication of CN1992674A publication Critical patent/CN1992674A/zh
Application granted granted Critical
Publication of CN1992674B publication Critical patent/CN1992674B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于多比特分割的多维分组分类方法,包括以下步骤:1)建立一个决策树的根结点,将分类算法的规则集合的全集赋予根结点;2)递归性地对决策树上的每一个结点所对应的规则集进行分割,并生成若干子结点,每个子结点对应于一个划分后的规则子集;直到所有结点上规则集的规模小于某个预定的阈值;其中,所述分割方法依次包括以下步骤:将规则表转化为二维比特数组,评估每个比特位生成决策树的性能,根据性能影响大小选择比特位生成决策树。本发明以比特值作为结点分割的依据,从基于比特分割的这一崭新的角度出发来建立决策树,所建树的规模小,使其在时间/空间的综合性能上有很好效果。

Description

一种基于多比特分割的多维分组分类方法
技术领域
本发明涉及一种高速路由器及防火墙中分组分类方法。
背景技术
目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络。这种网络称为以路由器为基础的网络(router basednetwork),形成了以路由器为结点的“网间网”。在“网间网”中,路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。
防火墙由软件和硬件设备组合而成,处于企业或网络群体计算机与外界通道(Internet)之间,限制外界用户对内部网络访问及管理内部用户访问外界网络的权限。其中包过滤是防火墙要实现的最基本功能。
流分类是现代高性能路由器的一项关键技术,当然也应用于防火墙的包过滤实现部分。路由器或防火墙通过对进入其中的分组进行分类来决定分组的出口以及对分组要进行何种处理操作。流是由规则来定义的,规则可以由网络管理员通过网管系统设置,也可以由资源预留协议(RSVP)动态生成。分组头中用来分类的典型域包括:源IP地址(Source IP Address)、目的IP地址(Destination IP Address)、协议类型(Protocol Type)、源端口(Source Port)和目的端口(Destination Port)等。
流分类技术中,进行分类的依据是规则。规则是用来对IP包进行分类的由包头中若干字段(域)组成的集合,通常也称作过滤器(filter)。而若干规则的集合就是分类器,即规则库。规则库中的每条规则都定义了一个IP流的类,每一个类具有一个唯一的标识,该标识对应着与该类相关的唯一操作。规则、类标识和操作是一一对应的。当一IP分组P与规则R相匹配,该分组即被划分到规则R所对应的类中。假设规则库中每条规则包含k个域,R[i]是规则R的第i个域,1≤i≤k,则任一规则R可用一k维向量表示:R=(R[1],R[2],…,R[k])。对于分组P,其分组头的相应k个域表示为(H[1],H[2],…,H[k]),如果对于任意i(1≤i≤k),分组头的第i域H[i]均满足R[i]的表达式,那么该分组就匹配规则R。其中,H[i]匹配R[i]有三种形式:
1)精确匹配(exact match)。分组头的特定域值必须精确等于规则的对应域值。如:协议域为TCP。
2)前缀匹配(prefix match)。规则的特定域值要求为分组头相应域值的前缀。该类匹配通常用于目的地址和源地址,如:前缀“101*”可以匹配所有以“101”开头的IP地址。
3)范围匹配(range match)。分组头的特定域值要求在规则相应域所定义的范围之内。该类匹配通常用于目的端口号和源端口号,如:范围“45-1023”可以匹配所有大于等于45且小于等于1023的端口号。
正因为存在前缀匹配和范围匹配,所以一个分组可能会与多个规则相匹配,选择最佳匹配是指确定匹配规则中优先级最高或者代价最低的规则。
根据规则库对分组分类即是在规则库中搜索给定分组的最佳匹配规则。
与本发明相关的现有技术一
分组流分类的研究起源于路由器中转发路由表的快速查询,路由表查询实际上就是一个一维流分类问题。当前应用于路由器和防火墙中的流分类算法有多种,与本发明相关的流分类方案及其优缺点如下所述:
HiCuts(Hierarchical Intelligent Cuttings,阶层式智能切割)是现有流分类算法当中启发式算法的一种,基于决策树,并支持范围匹配,能够应用于路由器和防火墙中实现对数据包的分类功能。
算法实现包括预处理和搜索匹配两个过程。
预处理过程:整个分类器(路由器或防火墙自身存贮的规则库)建立一棵决策树。假设用于分类的典型域有k个,创建根结点表示整个k维空间;从k个域中选择一个进行空间范围上的切割,产生子结点,即每个子结点都覆盖k维空间的一个子集。选择域遵照的依据是:该域包含的相异(不存在包含关系)规则数目最多;切割次数的确定:满足切割产生的子结点所占据的存储空间在空间允许的域值(可计算)之内情况下的最大值。依次类推,对每个子结点实施如上的操作,选域,切割,逐渐构造整个树结构。当结点上覆盖的规则数目小于等于binth值(人为确定的叶结点规则数目最大值),该结点不再继续切割,成为叶子结点,这样每个叶子结点上存储有一个小规则集。
搜索匹配过程:分组到达路由器或防火墙后,被送到决策树结构的根结点处,根据自身各个分类域的值所对应的范围选择下行分支,最终到达叶子结点,然后通过线性查找叶子结点上存储的小规则集来找到匹配规则。
HiCuts算法应用于路由器或防火墙时是在之上建立基于决策树的数据结构,而决策树性能可以从搜索时间和空间两方面来衡量。搜索时间性能可以体现在树的深度上:深度越大,搜索时间越长,性能越差;空间性能可以体现在树的结点数上,它反映了算法占用的存贮器空间的大小。
Hicuts算法建立数据结构的方法,在树结构能够实现的时间性能和空间性能方面,考虑不足,无论从树的平衡度(影响树深)还是树的整体规模(反映树深和结点数)上来看,都未能达到最优(或接近最优)。在选择切分域的方法上,采用了单一选择的方法,有可能造成更优效果的丧失;在切割次数的确定方法上,算法限定了一个空间允许的最大值,这种对空间性能的侧重考虑可能造成生成的决策树在整体性能上的下降,进而影响路由器或是防火墙的工作性能。
与本发明相关的现有技术二
超切割(HyperCuts)算法采用基于决策树的数据结构,支持范围匹配,是从Hicuts算法上衍生出来的,能够应用于路由器和防火墙中实现数据包的分类功能。
算法实现包括预处理和搜索匹配两个过程。建立数据结构的过程:在每个结点上,根据规则一个或多个域上的信息对当前结点上覆盖的规则集进行划分,产生子结点,直到结点上规则数目小于或等于binth域值时,停止划分,成为叶子结点。由于每次同时在一个或多个域上进行划分,因此要选择经过划分后使得各个子结点上的规则分布均匀的域进行划分。对此,HyperCuts算法选择当前规则集含有相异元素最多的域去划分,首先计算各域上相异元素个数,并计算出一个平均值,然后优先选择相异元素数大于平均值的那些域。若多个域上相异元素个数相同,则把相异元素个数与所涵盖空间的范围大小的比率作为选择标准,选择比值较大的空间优先划分。
一旦一个结点上切割域(D)的集合选定以后,下一步就要确定各域上的切割次数{nc(i))i∈D,nc(i)代表在第i维上的切割次数。为了使建立的数据结构能够占用较少的空间,对结点进行切割时,限制切割的子结点最大数目 f ( N ) = spfac * N , N是当前结点上规则的数目,spfac是用来平衡时间、空间性能的可变参数。总切割次数NC=∏i∈Dnc(i),根据以下三个值判断如何切割:(1)每个子结点上规则的平均数;(2)子结点上规则数的最大值;(3)空的子结点的数目。
搜索匹配过程:分组到达路由器或防火墙后,送达决策树结构的根结点,根据自身各个分类域的值所处的范围选择下行分支,最终到达叶子结点,然后通过线性查找叶子结点上存储的小规则集来找到匹配规则。
Hypercuts算法应用于路由器或防火墙上建立决策树结构实现数据流分类功能,它在Hicuts算法的基础上,对决策树的生成算法进行了改进,但在确定结点的切割次数时,仅根据子结点上规则的平均数和空结点的数目来进行,导致生成的决策树在平衡度和整体规模上仍未能达到最优(或接近最优),势必还是会影响路由器或防火墙的整体性能。
发明内容
本发明的目的在于提供高速路由器及防火墙中一种基于多比特分割的多维分组分类方法,实现数据包快速转发或过滤。
为达上述目的,本发明采用如下技术方案:
一种基于多比特分割的多维分组分类方法,包括以下步骤:
1)建立一个决策树的根结点,将分类算法的规则集合的全集赋予根结点;
2)递归性地对决策树上的每一个结点所对应的规则集进行分割,并生成若干子结点,每个子结点对应于一个划分后的规则子集;直到所有结点上规则集的规模小于某个预定的阈值;
其中,所述分割方法依次包括以下步骤:
c)将规则表转化为二维比特数组,
d)评估每个比特位生成决策树的性能,根据性能影响大小选择比特位生成决策树。
其中,所述评估可以采用以下方法:
(a)以比特效果评估函数ValueB()对每个比特位对于生成决策树的性能影响进行评估,根据影响程度的大小从比特序列中未被选中过的比特M(0<M≤N)位里选择m(0<m≤M)位,作为备选比特,其中设N为比特序列的位数,对应整个比特数组;
ValueB(bi)    bi代表M位比特序列中的第i位
对m位比特组合,产生(2m-1)种用于分割的比特位的组合情况,即获得(2m-1)种结点切割方案,设为 D = { d 1 , d 2 , . . . , d 2 m - 1 } ;
(b)以性能评估函数ValueP()对每个分割方案生成的决策树的性能进行评估和预测,
ValueP(di)=w1·P1(di)+w2·P2(di)+w3·P3(di)+...+wn·Pn(di)其中,di∈D,P1(di),P2(di),P3(di),......,Pn(di)分别代表性能参数分割方案di在不同方面的性能评估,w1,w2,w3,......wn代表各种性能参数在整体性能评估中的权重。所述性能评估参数包括搜索时间、占用空间上的性能及其处理业务的性质、数量的统计以及路由器自身特性。
(c)计算并比较各种分割方案中ValueP()的值,并以此值作为分割依据,
value min = min d i ∈ D [ ValueP ( d i ) ] = Value ( d k )
与valuemin对应的某个分割方法dk即在本结点上应采用的分割方法。
所述性能评估参数还可包括一结点分割时出现的规则被复制程度。该规则被复制程度可以如下定义的复制度指数表示:
Idx copy ( b i ) = N * i - N * min N * max - N * min
其中,N* I为N条规则中第i比特位值为‘*’的规则个数;
N* imin为N* i的最小值,选取未选中比特上该值的最小情况;
N* imax为N* i的最大值,选取未选中比特上该值的最大情况。
其中,所述性能评估参数还包括一结点分割的平衡度。所述结点分割的平衡度可以如下定义的平衡度指数表示:
Idx bal ( b i ) = D i - D min D max - D min
其中,Di=|N0i-N1i|表示第i比特位上分别为‘0’和‘1’的规则数目的差值;
N0i为N条规则中第i比特位值为‘0’的规则个数;
N1i为N条规则中第i比特位值为‘1’的规则个数;
Dimin为Di的最小值,选取N个比特上该值的最小情况;
Dmax为Di的最大值,选取N个比特上该值的最大情况。
作为本发明方法的一种改进,在用评估函数ValueP()对分割方案空间D={d1,d2,...,dn}中分割方案进行检验时,假定最优或接近最优的方案应该在某个di附近,只检查di附近的分割方法的一个子集D’(D’={di-k,di-k+1,...,di,di+1,...,di+k}D)。
作为本发明方法的一种优选方式,当系统对搜索时间性能要求较高,而存贮空间充裕的情况下,增加时间性能相关参数的权重,当系统存贮空间受限时,增加空间性能相关参数的权重。
作为本发明方法的又一优选方式,在选择比特位时,选择‘0’、‘1’的个数相当的比特位。
其中,基于多比特分割的建树方法,是从二维比特数组的角度看待规则表。首先对二维比特数组加以描述如下:
令FT=(F1,……,FN)为一包含N条k维规则的规则表,假设各域均以前缀表示(对以范围表示的域,可以首先将其转换为前缀)。若把规则的k个域串接起来,忽略各域之间的界限,则可以将规则视作一个长度为M的位串,各位只有3个取值(‘0’、‘1’和‘*’),其中M为各域位宽之和。整个规则表FT则视为一个N行M列的二维比特数组FTN×N。例如,表1为一具有5条四维规则的规则表,
  Filter   Field1   Field2   Field3   Field4
  F0   111*   000*   01   *
  F1   111*   000*   10   01
  F2   1*   111*   01   11
  F3   0*   0*   *   10
  F4   *   1*   *   01
                      表1
表1中各域位宽依次为4,4,2,2,将其视作如下的二维比特数组FT5×12
根据表1建立如图1所示的一棵决策树(定义比特数组最左边为第0位,且叶结点上存储的规则数目最多为1条,树中的根结点对应了规则库的全集,每个子结点则对应了规则库的一个子集,但除了叶子结点以外,其它结点均不存储规则,只存储进行流分类的信息,包括每一次选择哪些比特作为结点分割的依据以及分割数目的大小,当然还有其他一些必要信息(如:指向规则集合的指针,指向子结点的指针,结点深度等)。图1还简单演示了数据包P(1110,0001,10,01)的查找,匹配路径如图中虚线所示。
本发明以比特值作为结点分割的依据,从基于比特分割的这一崭新的角度出发来建立决策树,所建树的规模小,使其在时间/空间的综合性能上有很好效果。
附图说明
图1为一棵决策树;
图2为路由器应用流分类技术简单流程示意图;
图3为包过滤防火墙应用流分类技术简单流程示意图。
具体实施方式
网络路由器包括边缘路由器及网络内部非边缘路由器,其需要高速流分类技术的支持,从而进行数据包的快速处理与转发。其中,边缘路由器在运营商网络边缘,主要任务是为运营商接入用户,向用户提供包括:多播、带宽管理、防火墙、服务质量(QoS)、动态策略管理、虚拟路由、多协议标签交换(MPLS)等多种业务。QoS是实现的难点,边缘路由器的QoS需要强大而高速的流分类的支持。
针对数据包流的处理(只涉及流分类的部分)如图2所示,其流程描述如下:
1)路由器从所连接的各个链路上接收网络数据包流;
2)提取包头信息,作为流分类处理的对象;
3)将包头信息作为路由器上的流分类处理结构的输入,通过处理,为每个数据包找到匹配的业务流(业务流有多个:业务流1,2,3……);
4)路由器上的流分类处理结构建立是预处理过程,在网络数据包到达之前已经通过一定途径建立了该结构;
5)对数据包进行正确分类之后,针对不同业务流实施路由选择和QoS等一系列后继处理
6)最终将数据包流从路由器输出转发;
基于路由器的包过滤防火墙,其过滤规则集由若干条规则组成,涵盖对所有出入防火墙的数据包的处理方法,同样需要流分类技术的强力支持,根据规则集建立性能优良的流分类处理结构,对数据包实施恰当的分类和操作。
包过滤防火墙针对数据包流的处理(只涉及流分类的部分)如图3所示,其流程描述如下:
1)包过滤防火墙接收到达的网络数据包流;
2)提取包头信息,作为流分类处理的对象;
3)将包头信息作为防火墙上的流分类处理结构的输入,通过处理,为每个数据包找到匹配的业务流(业务流有多个:业务流1,2,3……);
4)包过滤防火墙上的流分类处理结构建立是预处理过程,在网络数据包到达之前已经通过一定途径建立了该结构;
5)对数据包进行正确分类之后,决定对数据包采取允许通过、修改通过还是禁止通过等行为;
6)最终将可通过数据包流从防火墙输出。
从上述流程图及描述中可以看出,路由器或防火墙通常包括(一)接收网络数据包,获取包头信息;(二)实施分类;(三)包处理。以下分别论述。
(一)接收网络数据包,获取包头信息
流分类要求路由器或是防火墙可以根据数据包的包头中一个或多个域(字段)的信息将其分到不同的流上,因此获取数据包的包头信息是对其归类的首要工作。
(二)实施分类
流分类处理结构(在本发明中是决策树)是路由器和防火墙实现流分类功能的关键部分,它为数据包查找与之匹配的规则,即相对应的业务流,其流分类性能的好坏取决于所建决策树结构性能的高低。
提取的包头信息进行适当的预处理之后,转化为比特序列,从决策树的根结点开始,根据包头信息中对应比特位(建立当前结点的子结点时所选择的那些比特位信息已存储于当前结点之上)的值而沿相应分支逐层向下进行查找,当访问到叶结点后,在该叶结点所对应的小规则集中搜索,找到最佳匹配规则,即获得对该数据包的处理方法。
基于多比特分割的分组分类方案,关键是在比特分割的基础上建立性能优良的决策树结构,例如令决策树具有更少的结点总数、更好的平衡性和尽可能小的深度,使其达到更好的搜索时间性能和更小空间占用,流分类性能有所提高。
本实施例中提出一种基于多比特分割的多维分组分类方法,包括以下步骤:
1)建立一个决策树的根结点,将分类算法的规则集合的全集赋予根结点;
2)递归性地对决策树上的每一个结点所对应的规则集进行分割,并生成若干子结点,每个子结点对应于一个划分后的规则子集;直到所有结点上规则集的规模小于某个预定的阈值;
其中,所述分割方法基于多比特分割的建树方法,依次包括以下步骤:
a)将规则表转化为二维比特数组,设比特序列共N位,创建根结点,对应整个比特数组;
b)设计一个比特效果评估函数ValueB(),用来评估预测每个比特位对于生成决策树的性能影响,包括树的平衡度、大小之类的。算法的实际使用者可以根据自身的需要,从不同的角度出发,定义符合自身需要的ValueB()的设计方法。根据影响程度的大小从比特序列中未被选中过的比特M(0<M≤N)位里选择m(0<m≤M)位,作为备选比特,
ValueB(bi)    bi代表M位比特序列中的第i位
对m位比特组合,产生(2m-1)种用于分割的比特位的组合情况(不包括选择0个比特位的情况),例如M=3,选中比特1,2,3位,分割时选择比特的情况可能是(1;2;3;1、2;1、3;2、3;1、2、3),即获得(2m-1)种结点切割方案,设为 D = { d 1 , d 2 , . . . , d 2 m - 1 } ;
c)设计一个对不同分割方案的性能评估函数ValueP(),用来对每个分割方案生成的决策树的性能进行评估和预测:
ValueP(di)    di∈D
令ValueP()的值越小预测的性能越高。也可令其值越大越好,下面不加说明时,ValueP()的值越小预测的性能越高。
d)以性能评估函数ValueP()对每个分割方案生成的决策树的性能进行评估和预测,ValueP(di)=w1·P1(di)+w2·P2(di)+w3·P3(di)+...+wn·Pn(di)其中,di∈D,P1(di),P2(di),P3(di),......,Pn(di)分别代表性能参数分割方案di在不同方面的性能评估,w1,w2,w3,......wn代表各种性能参数在整体性能评估中的权重,
e)计算并比较各种分割方案中ValueP()的最小值,令其为,
value min = min d i ∈ D [ ValueP ( d i ) ] = Value ( d k )
并以valuemin值作为分割依据。与valuemin对应的某个分割方法dk即在本结点上应采用的分割方法。
其中,比特效果评估函数ValueB()采用如下方法:
性能评估函数ValueP()应该能够反映出对特定分割方法所生成的决策树的整体性能的估计。整体性能应该主要包括搜索时间、占用空间上的性能,也可涵盖其他方面的可能的性能参数。总的来说,ValueP()的设计需要考虑到影响决策树性能的各种因素,进行综合考虑。该技术应用于边缘路由器或是防火墙上,可以通过对其处理业务的性质、数量的统计以及路由器自身特性的测量,从不同的角度出发,定义符合需要的ValueP()的设计方法和参数。
ValueP()设计的一般形式为:
ValueP(di)=w1·P1(di)+w2·P2(di)+w3·P3(di)+...+wn·Pn(di)
其中P1(di),P2(di),P3(di),......,Pn(di)分别代表性能参数分割方案di在不同方面的性能评估(时间、空间、决策树的平衡度、......);w1,w2,w3,......wn代表各种性能参数在整体性能评估中的权重。通过对各性能参数权重的调整,可以获得不同应用环境下的性能评估函数。例如,当系统对搜索时间性能要求较高,而存贮空间充裕的情况下,可以增加时间性能相关参数的权重;而当系统存贮空间受限时,可增加空间性能相关参数的权重。这种定义方法提供了一种灵活性,令使用者能够在诸多相互矛盾和制约的性能参数中进行权衡,使得技术方案的运用对于其应用环境接近最优化。
以下以规则被复制程度和结点分割的平衡度为例说明性能评估函数ValueP()。
a)结点分割时出现的规则被复制程度
结点在被分割时,因为比特位上的可能取值有三个:0,1,*,有些规则中用来划分的比特位上是‘*’,所以这些规则会复制到多个子结点中,并在多个叶结点中出现,规则的复制将造成生成的决策树总结点数和总存贮空间的增大,树深度也将增加。因此,在进行分割时,规则的复制程度越小越好。
Idx copy ( b i ) = N * i - N * min N * max - N * min
其中,N* I为N条规则中第i比特位值为‘*’的规则个数;
N*imin为N*i的最小值,选取未选中比特上该值的最小情况;
N*imax为N*i的最大值,选取未选中比特上该值的最大情况。
b)结点分割的平衡度(I)。
结点在被分割时,每个子结点上的规则越接近,决策树的平衡度越好,将有利于减少决策树的深度,改善时间和空间性能。分割方案di的平衡度定义为每个子结点上规则数与理想分割情况下子结点规则数之间的差异。这个差异越小越好。平衡度指数定义为:
Idx bal ( d i ) = B ( d i ) - B min B max ( d i ) - B min
其中,B(di)为分割方案di平均子结点上的规则数与理想规则数的差异,即:
( d i ) = Σ j = 1 m ( d i ) | Nc ( d i , j ) - Np / m ( d i ) | m ( d i )
其中,Nc(di,j)为分割方法di的第j个子结点上的规则数。
Np/m(di)为理想情况下,每个子结点上的规则数。
Bmin为B(di)的最小值,显然:Bmin=0
Bmax(di)为所有分割方式中,子结点个数等于di的分割方式中,B(di)的最小值:
B max ( d i ) = max d i ∈ D , m ( d j ) = m ( d i ) B ( d j ) = ( m ( d i ) - 1 ) · Np m ( d i )
Bmax的最大值当父结点上的规则被复制到所有子结点上时取得。
c)结点分割的平衡度(II)。
描述结点分割方法di平衡度的另外一种方法是:子结点中最大的规则集数量与理想的平均子结点规则数目之间的差异。差异越小,结点间趋向平衡的可能性就越大,因此该值同样是越小越好的。定义如下:
Idx ball _ II ( d i ) = B II ( d i ) - B II min B II max ( d i ) - B II min
其中,BII(di)代表了分割方案di子结点上的最大规则数与理想规则数的差异,定义为:
B II ( d i ) = max j = 1 m ( d i ) Nc ( d i , j ) - Np / m ( d i ) m ( d i )
其中,Nc(di,j)为分割方法di的第j个子结点上的规则数。
Np/m(di)为理想情况下,每个子结点上的规则数。
BIImin为BII(di)的最小值,显然:BIImin=0
BIImax(di)为所有分割方式中,子结点个数等于di的分割方式中,BII(di)的最小值:
B II max ( d i ) = max d i ∈ D , m ( d j ) = m ( d i ) B II ( d j ) = Np m ( d i ) - 1
BIImax的最大值当子结点的最大规则数等于结点规则数时取得。
d)根据以上信息定义性能评估函数ValueP():
ValueP(di)=w1·Idxcopy(di)+w2·Idxbal(di)+w3·Idxbal_II(di)
根据实际应用的需求,调整三个w1,w2,w3权重,可以对决策树的性能进行不同方向的优化或权衡。
e)权重的调整
评估函数ValueP()中的参数权重可以通过实践中总结的经验值来确定,也可以针对特定的规则库输入,在权重的取值空间进行遍历,以找到适合实际的性能需求的合理的权重分配。
结果表明,在规则库规模和冲突较小时,选用较大的w1(如w1=0.9,w2=0.1,w3=0)时,其时间性能优于Hicuts和Hypercuts算法,所需的空间也优于Hicuts/Hypercuts算法或Hicuts/Hypercuts算法基本相当。在规则库规模或冲突较大时,则可减低选用较小的w1和较大的w2/w3值,可取得较好的时间、空间性能。
f)分割方案空间D的缩减
在用评估函数ValueP()对分割方案空间D={d1,d2,...,dn}中分割方案进行检验时,由于可能的分割方案很多,遍历D所有的方案di是不可能的。可以假定最优(或接近最优)的方案应该在某个di附近。算法只需检查di附近的分割方法的一个子集D’(D’={di-k,di-k+1,...,di,di+1,...,di+k}D)。该di的选择可以依据实践经验,也可以使用已采用过的分割方案作为参考点,在其附近的分割方案中选择。
在算法参数确定的情况下,本实施例中,其复杂度大体与Hicuts/Hypercuts算法的数据结构的建立过程相当。测试结果表明,在Athlon 2800+处理器上的C++实现,当规则集小于1000条时,建立时间小于0.01秒;规则集为5000条时,建立时间小于1.7秒;规则集为10000条时,建立时间小于4秒。除处理规模外,建立时间还与规则集的冲突情况有关。
如下数据表所示,本发明BitCuts在规则库规模确定的情况下,规则集冲突率的变化对生成的节点数目多少影响很小,所用建树时间也差距很小,相比之下,HiCuts和HyperCuts的节点数目是随规则集冲突率的增大而增加的,且幅度较大,高冲突率情况下的节点数目最高可达到BitCuts同规模同冲突率情况下的3~4倍;在平均访存次数方面,规则库规模较小的情况(500以下),BitCuts优于另外两种算法,规则库规模增大时,BitCuts访存次数受规则集冲突率的影响较之HiCuts和HyperCuts要大,通常是低冲突率时访存次数少于,高冲突率时大于另外两种算法的访存次数情况。
综合时间和空间上的衡量,BitCuts比HiCuts及HyperCuts更具有优势,尤其在节省空间方面更胜一筹。
规则库               bitCuts               hiCuts               hyperCuts
  建立时间   节点数目   平均访存   建树时间   节点数目   平均访存   建树时间   节点数目   平均访存
  100_0%   0.0094   52   10.26   0.0000   38   30.55   0.0160   38   30.50
  100_1%   0.0282   70   15.42   0.0124   57   28.62   0.0220   49   29.50
  100_5%   0.0252   65   18.53   0.0122   44   28.36   0.0180   52   28.80
  100_10%   0.0344   67   22.70   0.0188   46   30.48   0.0186   63   29.90
  100_15%   0.0278   65   23.33   0.0092   71   30.65   0.0190   76   28.10
  100_30%   0.0248   60   24.66   0.0124   126   34.67   0.0152   117   32.38
  100_50%   0.0278   64   24.79   0.0280   349   32.65   0.0154   240   31.37
  200_0%   0.0032   151   10.59   0.0062   72   30.43   0.0060   72   30.40
  200_1%   0.0034   150   11.73   0.0092   86   31.53   0.0060   83   28.60
  200_5%   0.0158   137   15.98   0.0094   122   33.23   0.0090   99   28.80
  200_10%   0.0092   147   19.89   0.0030   123   32.56   0.0160   139   31.30
  200_15%   0.0032   143   20.51   0.0062   232   36.82   0.0090   220   33.60
  200_30%   0.0498   103   25.33   0.0126   287   35.80   0.0094   237   35.76
  200_50%   0.0468   106   25.84   0.0128   395   37.38   0.0180   335   34.36
  500_0%   0.0282   346   11.56   0.0126   194   30.26   0.0130   184   30.90
  500_1%   0.0342   348   14.46   0.0064   275   32.38   0.0190   211   28.00
  500_5%   0.0282   347   18.06   0.0122   360   31.81   0.0320   263   29.60
  500_10%   0.0406   348   22.66   0.0092   484   28.58   0.0220   331   30.00
  500_15%   0.0434   321   29.99   0.0124   804   30.21   0.0280   414   32.10
  500_30%   0.0438   317   34.27   0.0470   986   30.30   0.0280   511   33.49
  500_50%   0.0250   321   35.26   0.0596   4659   33.82   0.0342   999   34.07
  1000_0%   0.0654   689   12.94   0.0470   503   29.18   0.0720   424   28.90
  1000_1%   0.0718   662   28.31   0.0370   1088   25.65   0.0780   527   29.40
  1000_5%   0.0904   660   43.18   0.0436   1251   28.20   0.0840   632   29.50
  1000_10%   0.0846   661   47.19   0.0434   1306   29.41   0.0780   687   29.90
  1000_15%   0.0810   669   52.67   0.0780   1484   29.17   0.0660   752   30.30
  1000_30%   0.0846   667   51.36   0.0440   2484   30.87   0.0592   1010   31.66
  1000_50%   0.0842   668   50.44   0.5100   2569   30.75   0.0748   2178   34.02
  2000_0%   0.1250   1202   13.31   0.0560   874   30.09   0.1250   901   27.90
  2000_1%   0.1280   1205   17.16   0.0628   1240   29.98   0.1810   868   27.30
  2000_5%   0.1280   1202   21.31   0.0596   1536   28.04   0.1810   970   27.40
  2000_10%   0.6248   1469   28.52   0.0626   2363   24.03   0.1720   1076   28.20
  2000_15%   0.1312   1176   36.29   0.0688   3437   22.57   0.1750   1195   29.00
  2000_30%   0.1344   1153   38.30   0.0906   4657   24.97   0.1746   1488   29.95
  2000_50%   0.7314   1430   39.11   0.0902   6706   27.67   0.1844   1992   30.62
  5000_0%   0.3690   2670   15.43   0.3592   2420   28.11   0.7030   2165   27.60
  5000_1%   0.3628   2650   17.37   0.3532   2614   28.11   0.8060   2140   27.90
  5000_5%   0.4062   2672   21.21   0.3378   3287   26.79   0.9380   2362   27.20
  5000_10%   0.3686   2666   28.52   0.3530   5854   25.12   0.9590   2698   28.00
  5000_15%   1.6752   3449   35.47   0.3626   10101   25.45   0.9590   3120   29.00
  5000_30%   1.6406   3443   36.05   0.4434   11324   26.75   0.9436   3838   29.28
  5000_50%   1.6656   3391   35.87   0.4592   15000   28.73   0.9688   4842   30.09
  10000_0%   3.7842   6959   18.33   1.1906   5478   26.50   2.2970   4488   27.40
  10000_1%   3.9812   6596   17.10   1.1000   4613   27.65   1.9500   4330   27.70
  10000_5%   3.9782   6628   23.02   1.1718   5703   27.49   2.8870   4811   27.40
  10000_10%   3.9876   6622   30.46   1.1842   7112   27.67   2.7030   5470   27.90
  10000_15%   3.9252   6632   38.18   1.2374   9969   28.66   2.6970   6594   29.50
  10000_30%   3.8720   6639   39.77   1.3690   11531   29.67   2.6252   7535   30.22
  10000_50%   3.8938   6659   39.87   1.4154   17075   33.17   2.6378   10692   33.37
(三)包处理
到来的数据包被归入不同的业务流中,路由器和防火墙均会针对各个业务流采取不同的处理方式,或转发,或进一步处理,或标记允许通过,或直接丢弃。
实践表明:对于基于多比特选择的分组分类方案,通过选择适当评估函数和参数,将其应用于包含不同规则库(规模和冲突率不同)的路由器或是防火墙时,建立的决策树时间/空间的综合性能对比同类方案(如HiCuts、HyperCuts)在应用于同样的规则库时,时间/空间的综合性能都有明显提升。

Claims (10)

1、一种基于多比特分割的多维分组分类方法,其特征在于包括以下步骤:
1)建立一个决策树的根结点,将分类算法的规则集合的全集赋予根结点;
2)递归性地对决策树上的每一个结点所对应的规则集进行分割,并生成若干子结点,每个子结点对应于一个划分后的规则子集;直到所有结点上规则集的规模小于某个预定的阈值;
其中,所述分割方法依次包括以下步骤:
a)将规则表转化为二维比特数组,
b)评估比特位生成决策树的性能,根据性能影响大小选择比特位生成决策树。
2、根据权利要求1所述的一种基于多比特分割的多维分组分类方法,其特征在于:所述评估的方法为:
(a)以比特效果评估函数ValueB()对每个比特位对于生成决策树的性能影响进行评估,根据影响程度的大小从比特序列中未被选中过的比特M(0<M≤N)位里选择m(0<m≤M)位,作为备选比特,其中设N为比特序列的位数,对应整个比特数组;
ValueB(bi)         bi代表M位比特序列中的第i位,
对m位比特组合,产生(2m-1)种用于分割的比特位的组合情况,即获得(2m-1)种结点切割方案,设为 D = { d 1 , d 2 , . . . , d 2 m - 1 } ;
(b)以性能评估函数ValueP()对每个分割方案生成的决策树的性能进行评估和预测,ValueP(di)=w1·P1(di)+w2·P2(di)+w3·P3(di)+…+wn·Pn(di)其中,di∈D,P1(di),P2(di),P3(di),……,Pn(di)分别代表性能参数分割方案di在不同方面的性能评估,w1,w2,w3,……wn代表各种性能参数在整体性能评估中的权重,
(c)计算并比较各种分割方案中ValueP()的值,并以此值作为分割依据,
value min = min d i ∈ D [ ValueP ( d i ) ] = Value ( d k )
与valuemin对应的某个分割方法dk即在本结点上应采用的分割方法。
3、根据权利要求2所述的一种基于多比特分割的多维分组分类方法,其特征在于:所述性能评估参数包括搜索时间、占用空间上的性能及其处理业务的性质、数量的统计以及路由器自身特性。
4、根据权利要求2所述的一种基于多比特分割的多维分组分类方法,其特征在于:所述性能评估参数包括一结点分割时出现的规则被复制程度。
5、根据权利要求4所述的一种基于多比特分割的多维分组分类方法,其特征在于:所述规则被复制程度以如下定义的复制度指数表示:
Idx copy ( b i ) = N * i - N * min N * max - N * min
其中,N* I为N条规则中第i比特位值为‘*’的规则个数;
N* imin为N* i的最小值,选取未选中比特上该值的最小情况;
N* imax为N* i的最大值,选取未选中比特上该值的最大情况。
6、根据权利要求2所述的一种基于多比特分割的多维分组分类方法,其特征在于:所述性能评估参数还包括一结点分割的平衡度。
7、根据权利要求6所述的一种基于多比特分割的多维分组分类方法,其特征在于:所述结点分割的平衡度以如下定义的平衡度指数表示:
Idx bal ( b i ) = D i - D min D max - D min
其中,Di=|N0i-N1i|表示第i比特位上分别为‘0’和‘1’的规则数目的差值;
N0i为N条规则中第i比特位值为‘0’的规则个数;
N1i为N条规则中第i比特位值为‘1’的规则个数;
Dmin为Di的最小值,选取N个比特上该值的最小情况;
Dmax为Di的最大值,选取N个比特上该值的最大情况。
8、根据权利要求2所述的一种基于多比特分割的多维分组分类方法,其特征在于:在用评估函数ValueP()对分割方案空间D={d1,d2,…,dn}中分割方案进行检验时,假定最优或接近最优的方案应该在某个di附近,只检查di附近的分割方法的一个子集D’。
9、根据权利要求3所述的一种基于多比特分割的多维分组分类方法,其特征在于:当系统对搜索时间性能要求较高,而存贮空间充裕的情况下,增加时间性能相关参数的权重,当系统存贮空间受限时,增加空间性能相关参数的权重。
10、根据权利要求1所述的一种基于多比特分割的多维分组分类方法,其特征在于:在选择比特位时,选择‘0’、‘1’的个数相当的比特位。
CN200510121522A 2005-12-31 2005-12-31 一种基于多比特分割的多维分组分类方法 Expired - Fee Related CN1992674B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200510121522A CN1992674B (zh) 2005-12-31 2005-12-31 一种基于多比特分割的多维分组分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200510121522A CN1992674B (zh) 2005-12-31 2005-12-31 一种基于多比特分割的多维分组分类方法

Publications (2)

Publication Number Publication Date
CN1992674A true CN1992674A (zh) 2007-07-04
CN1992674B CN1992674B (zh) 2010-05-12

Family

ID=38214630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200510121522A Expired - Fee Related CN1992674B (zh) 2005-12-31 2005-12-31 一种基于多比特分割的多维分组分类方法

Country Status (1)

Country Link
CN (1) CN1992674B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011085577A1 (zh) * 2010-06-28 2011-07-21 华为技术有限公司 对报文进行分类的方法及装置
CN102819536A (zh) * 2011-09-27 2012-12-12 金蝶软件(中国)有限公司 树型数据处理方法及装置
CN103986667A (zh) * 2014-05-07 2014-08-13 华为技术有限公司 选择数据包分类算法的方法和装置
CN106027393A (zh) * 2016-07-29 2016-10-12 杭州迪普科技有限公司 网包规则集的分类方法及装置
CN106131086A (zh) * 2016-08-31 2016-11-16 迈普通信技术股份有限公司 一种访问控制列表的匹配方法及装置
CN102281196B (zh) * 2011-08-11 2017-10-10 中兴通讯股份有限公司 决策树生成方法及设备、基于决策树报文分类方法及设备
WO2018153332A1 (en) * 2017-02-21 2018-08-30 Huawei Technologies Co., Ltd. Packet classification using multi-dimensional splitting
CN109542601A (zh) * 2018-11-20 2019-03-29 杭州迪普科技股份有限公司 策略编译方法、装置、电子设备及计算机存储介质
CN113762424A (zh) * 2021-11-09 2021-12-07 鹏城实验室 比特选位决策树的均衡方法、网络包分类方法及相关装置
CN117892231A (zh) * 2024-03-18 2024-04-16 天津戎军航空科技发展有限公司 一种碳纤维弹匣生产数据智能管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1578227A (zh) * 2003-07-29 2005-02-09 上海聚友宽频网络投资有限公司 一种动态ip数据包过滤方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102308533A (zh) * 2010-06-28 2012-01-04 华为技术有限公司 对报文进行分类的方法及装置
CN102308533B (zh) * 2010-06-28 2013-10-09 华为技术有限公司 对报文进行分类的方法及装置
US8732110B2 (en) 2010-06-28 2014-05-20 Huawei Technologies Co., Ltd. Method and device for classifying a packet
WO2011085577A1 (zh) * 2010-06-28 2011-07-21 华为技术有限公司 对报文进行分类的方法及装置
CN102281196B (zh) * 2011-08-11 2017-10-10 中兴通讯股份有限公司 决策树生成方法及设备、基于决策树报文分类方法及设备
CN102819536A (zh) * 2011-09-27 2012-12-12 金蝶软件(中国)有限公司 树型数据处理方法及装置
CN102819536B (zh) * 2011-09-27 2015-08-19 金蝶软件(中国)有限公司 树型数据处理方法及装置
CN103986667A (zh) * 2014-05-07 2014-08-13 华为技术有限公司 选择数据包分类算法的方法和装置
CN103986667B (zh) * 2014-05-07 2017-10-10 华为技术有限公司 选择数据包分类算法的方法和装置
CN106027393B (zh) * 2016-07-29 2019-06-07 杭州迪普科技股份有限公司 网包规则集的分类方法及装置
CN106027393A (zh) * 2016-07-29 2016-10-12 杭州迪普科技有限公司 网包规则集的分类方法及装置
CN106131086A (zh) * 2016-08-31 2016-11-16 迈普通信技术股份有限公司 一种访问控制列表的匹配方法及装置
US10257090B2 (en) 2017-02-21 2019-04-09 Futurewei Technologies, Inc. Packet classification using multi-dimensional splitting
WO2018153332A1 (en) * 2017-02-21 2018-08-30 Huawei Technologies Co., Ltd. Packet classification using multi-dimensional splitting
CN109542601A (zh) * 2018-11-20 2019-03-29 杭州迪普科技股份有限公司 策略编译方法、装置、电子设备及计算机存储介质
CN113762424A (zh) * 2021-11-09 2021-12-07 鹏城实验室 比特选位决策树的均衡方法、网络包分类方法及相关装置
CN113762424B (zh) * 2021-11-09 2022-02-01 鹏城实验室 一种网络包分类方法及相关装置
CN117892231A (zh) * 2024-03-18 2024-04-16 天津戎军航空科技发展有限公司 一种碳纤维弹匣生产数据智能管理方法
CN117892231B (zh) * 2024-03-18 2024-05-28 天津戎军航空科技发展有限公司 一种碳纤维弹匣生产数据智能管理方法

Also Published As

Publication number Publication date
CN1992674B (zh) 2010-05-12

Similar Documents

Publication Publication Date Title
CN1992674A (zh) 一种基于多比特分割的多维分组分类方法
CN102281196B (zh) 决策树生成方法及设备、基于决策树报文分类方法及设备
CN103858386B (zh) 用于通过优化的决策树执行包分类的方法和装置
CN1282104C (zh) 使用tcam对数据流进行选择性路由的方法、系统和装置
CN1476696A (zh) 数据网络中的成本
CN1992673A (zh) 一种高速路由器及防火墙中实现快速分组流识别的方法
CN1805409A (zh) 在基于策略的路由网中识别预先计算的路径的系统和方法
CN1514603A (zh) 组播传送路径计算方法和组播传送路径计算装置以及程序
CN1642111A (zh) 路由设计方法
CN110213363B (zh) 基于软件定义网络的云资源动态分配系统及方法
CN101035069A (zh) 优化网络中的需求的路由的方法
CN1288586C (zh) 电子电路布线板的布线设计方法和布线设计系统
CN1211769A (zh) 基于贝叶斯网络的用于文件检索的方法和设备
CN1665205A (zh) 故障检测和诊断
CN1533102A (zh) 数据分组通信设备
CN1956457A (zh) 用于安排网格计算系统中的网格作业的方法和设备
CN1957573A (zh) 使用最具体的过滤器匹配和传输层共享进行两级分组分类的装置和方法
CN1750494A (zh) 中继节点安装选择方法、安装点选择装置、安装基站
CN1761205A (zh) 基于内容的网络色情图像和不良图像检测系统
CN1737799A (zh) 一种基于分档BloomFilter结构的查询方法
CN1798068A (zh) 在网络中提供有限中继保护通道的方法和设备
CN1863090A (zh) 一种对等网络及其节点控制方法
CN1747447A (zh) 区分服务网络域内支持不同服务质量的ip组播方法
CN1543150A (zh) 分组分类装置和使用字段级特里结构的方法
CN1885824A (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: 20100512

Termination date: 20151231

EXPY Termination of patent right or utility model