一种路由器或防火墙中实现分组流识别的方法转让专利

申请号 : CN200510121521.3

文献号 : CN1992673B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 龚向阳刘宏明曹婷褚灵伟郑月霞李伟

申请人 : 华为技术有限公司北京邮电大学

摘要 :

一种高速路由器及防火墙中实现快速分组流识别的方法,包括以下步骤,建立一个决策树的根结点,将路由器或防火墙上规则集合的全集赋予根结点;递归性地对决策树上的每一个结点所对应的规则集进行分割,当所有结点上规则集的规模小于某个预定的阈值时,结束分割;其中,所述分割采用以下方法:设对结点上的规则集进行分割的n个方案,以性能评估函数ValueP()对每个分割方案生成的决策树的性能进行评估和预测,本发明技术方案能够在决策树数据结构的生成过程中,对决策树的平衡度、深度以及占用空间(结点总数)进行评估和预测,从而使生成的决策树在一定的存贮空间限制的条件下,和现有的同类方案相比具有更好的搜索时间性能。

权利要求 :

1.一种路由器或防火墙中实现分组流识别的方法,其特征在于包括以下步骤:接收网络数据包流,获取所述网络数据包流中的包头信息;

向所述路由器或防火墙上预建的流分类处理结构输入所述包头信息,并根据所述包头信息,为每个数据包查找匹配的业务流;

针对与不同业务流匹配的数据包进行相应的处理;

其中,所述流分类处理结构为决策树,所述决策树的生成包括,

1)建立一个决策树的根结点,将路由器或防火墙上规则集的全集赋予根结点;

2)递归性地对决策树上的每一个结点所对应的规则集进行分割,每次在一个或多个规则集上进行分割,划分成若干子结点,每个子结点对应于一个划分后的规则子集;

当所有结点上规则集的规模小于某个预定的阈值时,结束分割;

其中,所述分割采用以下方法:

a)针对结点上规则集的多个分割方案,设一个对不同分割方案的性能评估函数,用来对每个分割方案所生成的决策树的性能进行评估和预测,其中,所述性能评估函数为:

ValueP(di)=w1·P1(di)+w2·P2(di)+w3·P3(di)+…+wn·Pn(di)其中,设对结点上的规则集进行分割包括n个方案,以集合D={d1,d2,…,dn}表示;di ∈D,P1(di),P2(di),P3(di),……,Pn(di)分别代表性能参数分割方案di在不同方面的性能评估,w1,w2,w3,……wn分别代表性能参数在整体性能评估中的权重;

b)计算各分割方案中ValueP()的最小值,

与valuemin对应的分割方案dk为在本结点上采用的分割方案。

2.根据权利要求1所述的一种路由器或防火墙中实现分组流识别的方法,其特征在于:所述性能参数包括表示搜索时间和占用空间上的性能的性能参数。

3.根据权利要求1所述的一种路由器或防火墙中实现分组流识别的方法,其特征在于:所述性能参数包括表示一结点分割时出现的规则被复制程度的性能参数。

4.根据权利要求1所述的一种路由器或防火墙中实现分组流识别的方法,其特征在于:所述性能参数还包括表示一结点分割的平衡度的性能参数。

5.根据权利要求1所述的一种路由器或防火墙中实现分组流识别的方法,其特征在于:在用评估函数ValueP()对分割方案空间D中分割方案进行检验时,假定最优或接近最优的方案在某di附近,并假定所述某di附近的分割方案为子集D’,只检查di附近的分割方案的子集D’。

6.根据权利要求2所述的一种路由器或防火墙中实现分组流识别的方法,其特征在于:当系统对搜索时间性能要求较高,而存贮空间充裕的情况下,增加时间性能相关参数的权重,当系统存贮空间受限时,增加空间性能相关参数的权重。

7.根据权利要求1所述的一种路由器或防火墙中实现分组流识别的方法,其特征在于:所述针对与不同业务流匹配的数据包进行相应的处理,具体包括:所述路由器针对与不同业务流匹配的数据包,实施路由选择和QoS的处理;所述防火墙针对与不同业务流匹配的数据包,采取允许通过、修改通过或禁止通过的处理。

说明书 :

一种路由器或防火墙中实现分组流识别的方法

技术领域

[0001] 本发明涉及分组流的识别方法,属于路由器或防火墙分组流识别技术领域。

背景技术

[0002] 目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络。这种网络称为以路由器为基础的网络(router basednetwork),形成了以路由器为结点的“网间网”。在“网间网”中,路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。
[0003] 防火墙由软件和硬件设备组合而成,处于企业或网络群体计算机与外界通道(Internet)之间,限制外界用户对内部网络访问及管理内部用户访问外界网络的权限。其中包过滤是防火墙要实现的最基本功能。
[0004] 流分类是现代高性能路由器的一项关键技术,当然也应用于防火墙的包过滤实现部分。路由器或防火墙通过对进入其中的分组进行分类来决定分组的出口以及对分组要进行何种处理操作。流是由规则来定义的,规则可以由网络管理员通过网管系统设置,也可以由资源预留协议(RSVP)动态生成。分组头中用来分类的典型域包括:源IP地址(Source IP Address)、目的IP地址(Destination IP Address)、协议类型(Protocol Type)、源端口(Source Port)和目的端口(Destination Port)等。
[0005] 流分类技术中,进行分类的依据是规则。规则是用来对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]有三种形式:
[0006] 1)精确匹配(exact match)。分组头的特定域值必须精确等于规则的对应域值。如:协议域为TCP;
[0007] 2)前缀匹配(prefix match)。规则的特定域值要求为分组头相应域值的前缀。该类匹配通常用于目的地址和源地址,如:前缀“101*”可以匹配所有以“101”开头的IP地址;
[0008] 3)范围匹配(range match)。分组头的特定域值要求在规则相应域所定义的范围之内。该类匹配通常用于目的端口号和源端口号,如:范围“45-1023”可以匹配所有大于等于45且小于等于1023的端口号。
[0009] 正因为存在前缀匹配和范围匹配,所以一个分组可能会与多个规则相匹配,选择最佳匹配是指确定匹配规则中优先级最高或者代价最低的规则。
[0010] 根据规则库对分组分类即是在规则库中搜索给定分组的最佳匹配规则。
[0011] 现有技术方案一
[0012] 分组流分类的研究起源于路由器中转发路由表的快速查询,路由表查询实际上就是一个一维流分类问题。当前应用于路由器和防火墙中的流分类算法有多种,与本发明相关的流分类方案及其优缺点如下所述:
[0013] 采用启发式算法,根据不同分类器的规则数据库的结构和特性来优化处理过程,提高处理速度,从性能评估的结果来看,这种设计方法通常是比较有效的。其中,HiCuts(Hierarchical Intelligent Cuttings)启发式流分类算法是现有流分类算法当中启发式算法的一种,基于决策树,并支持范围匹配,能够应用于路由器和防火墙中实现对数据包的分类功能。
[0014] 算法实现包括预处理和搜索匹配两个过程。
[0015] 预处理过程:整个分类器(路由器或防火墙自身存贮的规则库)建立一棵决策树:假设用于分类的典型域有k个,创建根结点表示整个k维空间;从k个域中选择一个进行空间范围上的分割,产生子结点,即每个子结点都覆盖k维空间的一个子集。选择域遵照的依据是:该域包含的相异(不存在包含关系)规则数目最多;分割次数的确定:满足分割产生的子结点所占据的存储空间在空间允许的域值(可计算)之内情况下的最大值。依次类推,对每个子结点实施如上的操作,选域,分割,逐渐构造整个树结构。当结点上覆盖的规则数目小于等于binth值(人为确定的叶结点规则数目最大值),该结点不再继续分割,成为叶子结点,这样每个叶子结点上存储有一个小规则集。
[0016] 搜索匹配过程:分组到达路由器或防火墙后,被送到决策树结构的根结点处,根据自身各个分类域的值所对应的范围选择下行分支,最终到达叶子结点,然后通过线性查找叶子结点上存储的小规则集来找到匹配规则。
[0017] HiCuts算法应用于路由器或防火墙时是在之上建立基于决策树的数据结构,而决策树性能可以从搜索时间和空间两方面来衡量。搜索时间性能可以体现在树的深度上:深度越大,搜索时间越长,性能越差;空间性能可以体现在树的结点数上,它反映了算法占用的存贮器空间的大小。
[0018] Hicuts算法建立数据结构的方法,在树结构能够实现的时间性能和空间性能方面,考虑不足,无论从树的平衡度(影响树深)还是树的整体规模(反映树深和结点数)上来看,都未能达到最优(或接近最优)。在选择切分域的方法上,采用了单一选择的方法,有可能造成更优效果的丧失;在分割次数的确定方法上,算法限定了一个空间允许的最大值,这种对空间性能的侧重考虑可能造成生成的决策树在整体性能上的下降,进而影响路由器或是防火墙的工作性能。
[0019] 现有技术方案二
[0020] 启发式流分类算法HyperCuts采用基于决策树的数据结构,支持范围匹配,是从Hicuts算法上衍生出来的,能够应用于路由器和防火墙中实现数据包的分类功能。
[0021] 算法实现包括预处理和搜索匹配两个过程。
[0022] 建立数据结构的过程:在每个结点上,根据规则一个或多个域上的信息对当前结点上覆盖的规则集进行划分,产生子结点,直到结点上规则数目小于或等于域值binth时,停止划分,成为叶子结点。由于每次同时在一个或多个域上进行划分,因此要选择经过划分后使得各个子结点上的规则分布均匀的域进行划分。对此,HyperCuts算法选择当前规则集含有相异元素最多的域去划分,首先计算各域上相异元素个数,并计算出一个平均值,然后优先选择相异元素数大于平均值的那些域。若多个域上相异元素个数相同,则把相异元素个数与所涵盖空间的范围大小的比率作为选择标准,选择比值较大的空间优先划分。
[0023] 一旦一个结点上分割域(D)的集合选定以后,下一步就要确定各域上的分割次数{nc(i)}i∈D,nc(i)代表在第i维上的分割次数。为了使建立的数据结构能够占用较少的空间,对结点进行分割时,限制分割的子结点最大数目 N是当前结点上规则的数目,spfac是用来平衡时间、空间性能的可变参数。总分割次数 根据以下三个值判断如何分割:(1)每个子结点上规则的平均数;(2)子结点上规则数的最大值;(3)空的子结点的数目。
[0024] 搜索匹配过程:分组到达路由器或防火墙后,送达决策树结构的根结点,根据自身各个分类域的值所处的范围选择下行分支,最终到达叶子结点,然后通过线性查找叶子结点上存储的小规则集来找到匹配规则。
[0025] Hypercuts算法应用于路由器或防火墙上建立决策树结构实现数据流分类功能,它在Hicuts算法的基础上,对决策树的生成算法进行了改进,但在确定结点的分割次数时,仅根据子结点上规则的平均数和空结点的数目来进行,导致生成的决策树在平衡度和整体规模上仍未能达到最优(或接近最优),势必还是会影响路由器或防火墙的整体性能。

发明内容

[0026] 本发明的目的在于提供一种路由器或防火墙中实现分组流识别的方法。在网络路由器或是防火墙上建立优化的基于决策树的流分类数据结构,实现数据包快速转发或过滤的技术方案。
[0027] 其中,路由器包括边缘路由器和网络内部非边缘路由器。边缘路由器在运营商网络边缘,主要任务是为运营商接入用户,向用户提供包括:多播、带宽管理、防火墙、服务质量(QoS)、动态策略管理、虚拟路由、多协议标签交换(MPLS)等多种业务。QoS是实现的难点,边缘路由器的QoS需要强大而高速的流分类的支持。
[0028] 为达到建立优化的基于决策树的流分类数据结构,实现数据包快速转发或过滤,本发明采用如下技术方案:
[0029] 一种路由器或防火墙中实现分组流识别的方法,包括以下步骤:
[0030] 接收网络数据包流,获取所述网络数据包流中的包头信息;
[0031] 向所述路由器或防火墙上预建的流分类处理结构输入所述包头信息,并根据所述包头信息,为每个数据包查找匹配的业务流;
[0032] 针对与不同业务流匹配的数据包进行相应的处理;
[0033] 其中,所述流分类处理结构为决策树,所述决策树的生成包括,
[0034] 1)建立一个决策树的根结点,将路由器或防火墙上规则集合的全集赋予根结点;
[0035] 2)递归性地对决策树上的每一个结点所对应的规则集进行分割,每次在一个或多个规则集上进行分割,划分成若干子结点,每个子结点对应于一个划分后的规则子集;当所有结点上规则集的规模小于某个预定的阈值时,结束分割;
[0036] 其中,所述分割采用以下方法:
[0037] a)针对结点上规则集的多个分割方案,设一个对不同分割方案的性能评估函数,用来对每个分割方案所生成的决策树的性能进行评估和预测,
[0038] 其中,所述性能评估函数为:
[0039] ValueP(di)=w1·P1(di)+w2·P2(di)+w3·P3(di)+…+wn·Pn(di)
[0040] 其中,设分割设对结点上的规则集进行分割包括n个方案,以集合D={d1,d2,…,dn}表示;di∈D,P1(di),P2(di),P3(di),……,Pn(di)分别代表性能参数分割方案di在不同方面的性能评估,w1,w2,w3,……wn分别代表性能参数在整体性能评估中的权重;
[0041] b)计算各分割方案中ValueP()的最小值,
[0042]
[0043] 与valuemin对应的分割方案dk为在本结点上采用的分割方案。
[0044] 其中,所述性能参数还可包括一结点分割时出现的规则被复制程度。所述规则被复制程度可以如下定义的复制度指数表示:
[0045]
[0046] 其中,C(di)为分割方案di平均每个子结点上复制规则的数量,即:
[0047]
[0048] 其中:Nc(di)为分割方案di的所有子结点上的规则数的总和;
[0049] Np为父结点的规则数;
[0050] m(di)为分割方案di的分割成的子结点的个数;
[0051] Cmin为C(di)的最小值,
[0052] Cmax(di)为所有分割方式中,子结点个数等于di的分割方式中,C(di)的最小值。
[0053] 作为本发明技术方案的一种改进,在用评估函数ValueP()对分割方案空间D={d1,d2,…,dn}中分割方案进行检验时,假定最优或接近最优的方案应该在某个di附近,并假定所述某di附近的分割方案为子集D’,只检查di附近的分割方案的一个子集D’
[0054] 本发明技术方案能够在决策树数据结构的生成过程中,对决策树的平衡度、深度以及占用空间(结点总数)进行评估和预测,从而使生成的决策树在一定的存贮空间限制的条件下,和现有的同类方案相比具有更好的搜索时间性能。

附图说明

[0055] 图1为路由器应用流分类技术简单流程示意图;
[0056] 图2为包过滤防火墙应用流分类技术简单流程示意图;
[0057] 图3为决策树简单结构及数据包查找流程简单示意图。

具体实施方式

[0058] 路由器针对数据包流的处理(只涉及流分类的部分)如图1所示,其流程描述如下:
[0059] 1)路由器从所连接的各个链路上接收网络数据包流;
[0060] 2)提取包头信息,作为流分类处理的对象;
[0061] 3)将包头信息作为路由器上的流分类处理结构的输入,通过处理,为每个数据包找到匹配的业务流(业务流有多个:业务流1,2,3……);
[0062] 4)路由器上的流分类处理结构建立是预处理过程,在网络数据包到达之前已经通过一定途径建立了该结构;
[0063] 5)对数据包进行正确分类之后,针对不同业务流实施路由选择和QoS等一系列后继处理;
[0064] 6)最终将数据包流从路由器输出转发。
[0065] 基于路由器的包过滤防火墙,其过滤规则集由若干条规则组成,涵盖对所有出入防火墙的数据包的处理方法,同样需要流分类技术的强力支持,根据规则集建立性能优良的流分类处理结构,对数据包实施恰当的分类和操作。
[0066] 包过滤防火墙针对数据包流的处理(只涉及流分类的部分)如图2所示,其流程描述如下:
[0067] 1)包过滤防火墙接收到达的网络数据包流;
[0068] 2)提取包头信息,作为流分类处理的对象;
[0069] 3)将包头信息作为防火墙上的流分类处理结构的输入,通过处理,为每个数据包找到匹配的业务流(业务流有多个:业务流1,2,3……);
[0070] 4)包过滤防火墙上的流分类处理结构建立是预处理过程,在网络数据包到达之前已经通过一定途径建立了该结构;
[0071] 5)对数据包进行正确分类之后,决定对数据包采取允许通过、修改通过还是禁止通过等行为;
[0072] 6)最终将可通过数据包流从防火墙输出。
[0073] 从上述流程图及描述中可以看出,路由器或防火墙通常包括(一)接收网络数据包,获取包头信息;(二)实施分类;(三)包处理。以下分别论述。
[0074] (一)接收网络数据包,获取包头信息
[0075] 流分类要求路由器或是防火墙可以根据数据包的包头中一个或多个域(字段)的信息将其分到不同的流上,因此获取数据包的包头信息是对其归类的首要工作。
[0076] (二)实施分类
[0077] 流分类处理结构(在本发明中是决策树)是路由器和防火墙实现流分类功能的关键部分,如下图3,展示了决策树的简单结构:树中的根结点对应了规则库的全集,每个子结点则对应了规则库的一个子集,但除了叶子结点以外,其它结点均不存储规则,只存储实现流分类的信息,包括每一次选择哪一个域或几个域进行结点分割以及分割数目的大小,当然还有其他一些必要信息(如:指向结点覆盖规则集合的指针,指向子结点的指针等,图中未标出)。
[0078] 数据包查找流程简单描述如下:提取的数据包的包头信息直接作为决策树的输入,根据自身各个分类域的值所处的范围以及当前所处的结点上的流分类信息选择下行分支,跳到正确的子结点上去,按此方法递归进行,最终到达叶子结点,通过线性查找叶子结点上存储的小规则集来找到匹配规则,即可获得对该数据包的处理方法。
[0079] 显然,路由器或防火墙流分类性能的好坏取决于所建决策树结构性能的高低,我们要提供的发明技术方案正是针对该点——根据自身存储的规则库构造实施流分类的优化的数据结构。应用基于决策树的快速流分类方案,关键是建立性能优良的决策树结构,例如令决策树具有更少的结点总数、更好的平衡性和尽可能小的深度,使其达到更好的搜索时间性能和更小空间占用,流分类性能有所提高。
[0080] 路由器或防火墙上存储的规则库(规则可以由网络管理员通过网管系统设置,也可以由资源预留协议(RSVP)动态生成)用于生成整个决策树结构,从根结点开始自上向下逐步展开。决策树上的每一个结点对应于一个规则集合的子集(根结点对应于路由器规则集的全集)。每次将一个结点分裂成若干个子结点,相当于将该结点对应的规则集分割成更小的子集,并分配到各个子结点上。在每一个结点上分割方案的不同,将导致其生成的决策树具有不同的形状,导致决策树具有不同平衡度和性能(搜索时间和占用空间)。因此,在对结点进行分割时,选择正确的分割方案对优化决策树的结构和性能具有重要意义。现有一些同类算法中,在确定结点的分割方案时采用相对固定、静态的判定标准,具有局限性。本发明在进行结点分割时,采用一种评估函数来评估不同分割方案对决策树时间空间性能的影响,并从中选择最佳的方案来对结点进行分割。
[0081] 本实施例中提出一种路由器或防火墙中实现分组流识别的方法,包括以下步骤:
[0082] 1)建立一个决策树的根结点,将路由器或防火墙上规则集合的全集赋予根结点。
[0083] 2)递归性地对决策树上的每一个结点所对应的规则集进行分割,每次可以在一个或多个规则集上进行分割,并生成(划分成)若干子结点,每个子结点对应于一个划分后的规则子集;直到所有结点上规则集的规模小于某个预定的阈值。其中在结点进行分割时,采用以下方法:
[0084] (1)结点所对应的规则集的规模小于某个预定的阈值,则不对其进行继续分割;否则进行下面的步骤,确定分割的方案。
[0085] (2)对结点上的规则集进行分割可能存在多种方案,设为:D={d1,d2,…,dn};设计一个对不同分割方案的性能评估函数ValueP(),用来对每个分割方案生成的决策树的性能进行评估和预测:
[0086] ValueP(di) di∈D令ValueP()的值越小预测的性能越高。也可令其值越大越好,下面不加说明时,ValueP()的值越小预测的性能越高。
[0087] (3)计算各种分割方案中ValueP()的最小值,令其为
[0088]
[0089] 与valuemin对应的某个分割方案dk即在本结点上应采用的分割方案。
[0090] 其中,性能评估函数ValueP()的采用如下设计方法:
[0091] 性能评估函数ValueP()应该能够反映出对特定分割方案所生成的决策树的整体性能的估计。整体性能应该主要包括搜索时间、占用空间上的性能,也可涵盖其他方面的可能的性能参数。总的来说,ValueP()的设计需要考虑到影响决策树性能的各种因素,进行综合考虑。该技术应用于边缘路由器或是防火墙上,可以通过对其处理业务的性质、数量的统计以及路由器自身特性的测量,从不同的角度出发,定义符合需要的ValueP()的设计方法和参数。
[0092] ValueP()设计的一般形式为:
[0093] ValueP(di)=w1·P1(di)+w2·P2(di)+w3·P3(di)+…+wn·Pn(di)
[0094] 其中P1(di),P2(di),P3(di),……分别代表性能参数分割方案di在不同方面的性能评估(时间、空间、决策树的平衡度、……);w1,w2,w3,……wn代表各种性能参数在整体性能评估中的权重。通过对各性能参数权重的调整,可以获得不同应用环境下的性能评估函数。例如,当系统对搜索时间性能要求较高,而存贮空间充裕的情况下,可以增加时间性能相关参数的权重;而当系统存贮空间受限时,可增加空间性能相关参数的权重。这种定义方法提供了一种灵活性,令使用者能够在诸多相互矛盾和制约的性能参数中进行权衡,使得技术方案的运用对于其应用环境接近最优化。
[0095] 以下以规则被复制程度和结点分割的平衡度为例说明性能评估函数ValueP()。
[0096] a)结点分割时出现的规则被复制程度
[0097] 结点在被分割时,某些规则将可能被复制到多个子结点上。规则的复制将造成生成的决策树总结点数和总存贮空间的增大,树深度也将增加。因此,在进行分割时,规则的复制程度越小越好。定义分割方案di的复制度指数定义为:
[0098]
[0099] 其中,C(di)为分割方案di平均每个子结点上复制规则的数量,即:
[0100]
[0101] 其中:Nc(di)为分割方案di的所有子结点上的规则数的总和;
[0102] Np为父结点(被分割结点)的规则数;
[0103] m(di)为分割方案di的分割成的子结点的个数;
[0104] Cmin为C(di)的最小值,显然:Cmin=0
[0105] Cmax(di)为所有分割方式中,子结点个数等于di的分割方式中,C(di)的最小值:
[0106]
[0107] Cmax的最大值当父结点上的规则被复制到所有子结点上时取得。
[0108] b)结点分割的平衡度(I)。
[0109] 结点在被分割时,每个子结点上的规则越接近,决策树的平衡度越好,将有利于减少决策树的深度,改善时间和空间性能。分割方案di的平衡度定义为每个子结点上规则数与理想分割情况下子结点规则数之间的差异。这个差异越小越好。平衡度指数定义为:
[0110]
[0111] 其中,B(di)为分割方案di平均子结点上的规则数与理想规则数的差异,即:
[0112]
[0113] 其中,Nc(di,j)为分割方案di的第j个子结点上的规则数。
[0114] Np/m(di)为理想情况下,每个子结点上的规则数。
[0115] Bmin为B(di)的最小值,显然:Bmin=0
[0116] Bmax(di)为所有分割方式中,子结点个数等于di的分割方式中,B(di)的最小值:
[0117]
[0118] Bmax的最大值当父结点上的规则被复制到所有子结点上时取得。
[0119] c)结点分割的平衡度(II)。
[0120] 描述结点分割方案di平衡度的另外一种方法是:子结点中最大的规则集数量与理想的平均子结点规则数目之间的差异。差异越小,结点间趋向平衡的可能性就越大,因此该值同样是越小越好的。定义如下:
[0121]
[0122] 其中,BII(di)代表了分割方案di子结点上的最大规则数与理想规则数的差异,定义为:
[0123]
[0124] 其中,Nc(di,j)为分割方案di的第j个子结点上的规则数。
[0125] Np/m(di)为理想情况下,每个子结点上的规则数。
[0126] BIImin为BII(di)的最小值,显然:BIImin=0
[0127] BIImax(di)为所有分割方式中,子结点个数等于di的分割方式中,BII(di)的最小值:
[0128]
[0129] BIImax的最大值当子结点的最大规则数等于结点规则数时取得。
[0130] d)根据以上信息定义性能评估函数ValueP():
[0131] ValueP(di)=w1·Idxcopy(di)+w2·Idxbal(di)+w3·Idxbal_II(di)[0132] 根据实际应用的需求,调整三个w1,w2,w3权重,可以对决策树的性能进行不同方向的优化或权衡。
[0133] e)权重的调整
[0134] 评估函数ValueP()中的参数权重可以通过实践中总结的经验值来确定,也可以针对特定的规则库输入,在权重的取值空间进行遍历,以找到适合实际的性能需求的合理的权重分配。
[0135] f)分割方案空间D的缩减
[0136] 在用评估函数ValueP()对分割方案空间D={d1,d2,…,dn}中分割方案进行检验时,由于可能的分割方案很多,遍历D所有的方案di是不可能的。可以假定最优(或接近最优)的方案应该在某个di附近。算法只需检查di附近的分割方案的一个子集D’ 该di的选择可以依据实践经验,也可以使用已采用过的分割方案作为参考点,在其附近的分割方案中选择。
[0137] (三)包处理
[0138] 到来的数据包被归入不同的业务流中,路由器和防火墙均会针对各个业务流采取不同的处理方式,或转发,或进一步处理,或标记允许通过,或直接丢弃。
[0139] 实践表明通过选择适当评估函数和参数,在路由器或防火墙上包含的规则库规模和冲突率都不同的情况下,本发明都可使其建立的决策树的时间/空间的综合性能得到改善,相应使路由器或防火墙的整体性能有所提高。
[0140] 与现有技术相比,本发明在决策树的建立方法上采取了上述有效措施,使得路由器实现了快速包转发,防火墙实现了快速包过滤,使其在时间/空间的综合性能上要优于现有的方案。