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

文档序号:7627532阅读:180来源:国知局
专利名称:一种基于多比特分割的多维分组分类方法
技术领域
本发明涉及一种高速路由器及防火墙中分组分类方法。
背景技术
目前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={d1,d2,...,d2m-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()的值,并以此值作为分割依据,valuemin=mindi∈D[ValueP(di)]=Value(dk)]]>与valuemin对应的某个分割方法dk即在本结点上应采用的分割方法。
所述性能评估参数还可包括一结点分割时出现的规则被复制程度。该规则被复制程度可以如下定义的复制度指数表示Idxcopy(bi)=N*i-N*minN*max-N*min]]>其中,N*I为N条规则中第i比特位值为‘*’的规则个数;N*imin为N*i的最小值,选取未选中比特上该值的最小情况;N*imax为N*i的最大值,选取未选中比特上该值的最大情况。
其中,所述性能评估参数还包括一结点分割的平衡度。所述结点分割的平衡度可以如下定义的平衡度指数表示Idxbal(bi)=Di-DminDmax-Dmin]]>其中,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条四维规则的规则表,

表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={d1,d2,...,d2m-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()的最小值,令其为,valuemin=mindi∈D[ValueP(di)]=Value(dk)]]>并以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,*,有些规则中用来划分的比特位上是‘*’,所以这些规则会复制到多个子结点中,并在多个叶结点中出现,规则的复制将造成生成的决策树总结点数和总存贮空间的增大,树深度也将增加。因此,在进行分割时,规则的复制程度越小越好。
Idxcopy(bi)=N*i-N*minN*max-N*min]]>其中,N*I为N条规则中第i比特位值为‘*’的规则个数;N*imin为N*i的最小值,选取未选中比特上该值的最小情况;N*imax为N*i的最大值,选取未选中比特上该值的最大情况。
b)结点分割的平衡度(I)。
结点在被分割时,每个子结点上的规则越接近,决策树的平衡度越好,将有利于减少决策树的深度,改善时间和空间性能。分割方案di的平衡度定义为每个子结点上规则数与理想分割情况下子结点规则数之间的差异。这个差异越小越好。平衡度指数定义为Idxbal(di)=B(di)-BminBmax(di)-Bmin]]>其中,B(di)为分割方案di平均子结点上的规则数与理想规则数的差异,即(di)=Σj=1m(di)|Nc(di,j)-Np/m(di)|m(di)]]>其中,Nc(di,j)为分割方法di的第j个子结点上的规则数。
Np/m(di)为理想情况下,每个子结点上的规则数。
Bmin为B(di)的最小值,显然Bmin=0Bmax(di)为所有分割方式中,子结点个数等于di的分割方式中,B(di)的最小值Bmax(di)=maxdi∈D,m(dj)=m(di)B(dj)=(m(di)-1)·Npm(di)]]>Bmax的最大值当父结点上的规则被复制到所有子结点上时取得。
c)结点分割的平衡度(II)。
描述结点分割方法di平衡度的另外一种方法是子结点中最大的规则集数量与理想的平均子结点规则数目之间的差异。差异越小,结点间趋向平衡的可能性就越大,因此该值同样是越小越好的。定义如下Idxball_II(di)=BII(di)-BIIminBIImax(di)-BIImin]]>其中,BII(di)代表了分割方案di子结点上的最大规则数与理想规则数的差异,定义为BII(di)=maxj=1m(di)Nc(di,j)-Np/m(di)m(di)]]>其中,Nc(di,j)为分割方法di的第j个子结点上的规则数。
Np/m(di)为理想情况下,每个子结点上的规则数。
BIImin为BII(di)的最小值,显然BIImin=0BIImax(di)为所有分割方式中,子结点个数等于di的分割方式中,BII(di)的最小值BIImax(di)=maxdi∈D,m(dj)=m(di)BII(dj)=Npm(di)-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更具有优势,尤其在节省空间方面更胜一筹。



(三)包处理到来的数据包被归入不同的业务流中,路由器和防火墙均会针对各个业务流采取不同的处理方式,或转发,或进一步处理,或标记允许通过,或直接丢弃。
实践表明对于基于多比特选择的分组分类方案,通过选择适当评估函数和参数,将其应用于包含不同规则库(规模和冲突率不同)的路由器或是防火墙时,建立的决策树时间/空间的综合性能对比同类方案(如HiCuts、HyperCuts)在应用于同样的规则库时,时间/空间的综合性能都有明显提升。
权利要求
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={d1,d2,...,d2m-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()的值,并以此值作为分割依据,valuemin=mindi∈D[ValueP(di)]=Value(dk)]]>与valuemin对应的某个分割方法dk即在本结点上应采用的分割方法。
3.根据权利要求2所述的一种基于多比特分割的多维分组分类方法,其特征在于所述性能评估参数包括搜索时间、占用空间上的性能及其处理业务的性质、数量的统计以及路由器自身特性。
4.根据权利要求2所述的一种基于多比特分割的多维分组分类方法,其特征在于所述性能评估参数包括一结点分割时出现的规则被复制程度。
5.根据权利要求4所述的一种基于多比特分割的多维分组分类方法,其特征在于所述规则被复制程度以如下定义的复制度指数表示Idxcopy(bi)=N*i-N*minN*max-N*min]]>其中,N*I为N条规则中第i比特位值为‘*’的规则个数;N*imin为N*i的最小值,选取未选中比特上该值的最小情况;N*imax为N*i的最大值,选取未选中比特上该值的最大情况。
6.根据权利要求2所述的一种基于多比特分割的多维分组分类方法,其特征在于所述性能评估参数还包括一结点分割的平衡度。
7.根据权利要求6所述的一种基于多比特分割的多维分组分类方法,其特征在于所述结点分割的平衡度以如下定义的平衡度指数表示Idxbal(bi)=Di-DminDmax-Dmin]]>其中,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’的个数相当的比特位。
全文摘要
一种基于多比特分割的多维分组分类方法,包括以下步骤1)建立一个决策树的根结点,将分类算法的规则集合的全集赋予根结点;2)递归性地对决策树上的每一个结点所对应的规则集进行分割,并生成若干子结点,每个子结点对应于一个划分后的规则子集;直到所有结点上规则集的规模小于某个预定的阈值;其中,所述分割方法依次包括以下步骤将规则表转化为二维比特数组,评估每个比特位生成决策树的性能,根据性能影响大小选择比特位生成决策树。本发明以比特值作为结点分割的依据,从基于比特分割的这一崭新的角度出发来建立决策树,所建树的规模小,使其在时间/空间的综合性能上有很好效果。
文档编号H04L12/56GK1992674SQ20051012152
公开日2007年7月4日 申请日期2005年12月31日 优先权日2005年12月31日
发明者龚向阳, 刘宏明, 曹婷, 褚灵伟, 郑月霞, 李伟 申请人:华为技术有限公司, 北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1