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

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

【技术实现步骤摘要】

本专利技术涉及分组流的识别方法,属于高速路由器及防火墙分组流识别

技术介绍
目前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)空的子结点的数目。 搜索匹配过程分组到达路由器或防火墙后,送达决策树结构的根结点,根据自身各个分类域的值所处的范围选择下行分支,最终到本文档来自技高网...

【技术保护点】
一种高速路由器及防火墙中实现快速分组流识别的方法,其特征在于包括以下步骤:1)建立一个决策树的根结点,将路由器或防火墙上规则集合的全集赋予根结点;2)递归性地对决策树上的每一个结点所对应的规则集进行分割,每次在一个或多个域上进行切割,划分成若干子结点,每个子结点对应于一个划分后的规则子集;当所有结点上规则集的规模小于某个预定的阈值时,结束分割;其中,所述分割采用以下方法:a)针对结点上规则集的分割方案所生成的决策树的性能,结合各种性能参数在整体性能评估中的权重,以性能评估函数进行评估和预测;b)计算并比较各种分割方案中性能评估函数的值,以该值中的最优值对应的分割方法作为在本结点上应采用的分割方法。

【技术特征摘要】
1.一种高速路由器及防火墙中实现快速分组流识别的方法,其特征在于包括以下步骤1)建立一个决策树的根结点,将路由器或防火墙上规则集合的全集赋予根结点;2)递归性地对决策树上的每一个结点所对应的规则集进行分割,每次在一个或多个域上进行切割,划分成若干子结点,每个子结点对应于一个划分后的规则子集;当所有结点上规则集的规模小于某个预定的阈值时,结束分割;其中,所述分割采用以下方法a)针对结点上规则集的分割方案所生成的决策树的性能,结合各种性能参数在整体性能评估中的权重,以性能评估函数进行评估和预测;b)计算并比较各种分割方案中性能评估函数的值,以该值中的最优值对应的分割方法作为在本结点上应采用的分割方法。2.根据权利要求1所述的一种高速路由器及防火墙中实现快速分组流识别的方法,其特征在于所述性能评估函数为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代表各种性能参数在整体性能评估中的权重。3.根据权利要求2所述的一种高速路由器及防火墙中实现快速分组流识别的方法,其特征在于所述性能评估参数包括搜索时间、占用空间上的性能及其处理业务的性质、数量的统计以及路由器自身特性。4.根据权利要求2所述的一种高速路由器及防火墙中实现快速分组流识别的方法,其特征在于所述性能评估参数包括一结点分割时出现的规则被复制程度。5.根据权利要求4所述的一种高速路由器及防火墙中实现快速分组流识别的方法,其特征在于所述规则被复制程度以如下复制度指数表示Idxcopy(di)=C(di)-CminCmax(di)-Cmin,]]>其中,C(di)为分割方案di平均每个子结点上复制规则的数量,即C(di)=Nc(di)-Npm(di)]]>其中Nc(di)为分割方法di的所有子结点上的规则数的总和;Np为父结点的规则数;m(di)为分割方法di的分割成的子结点的个数;Cmin为C(di)的最小值,Cmax(di)为所有分割方式中,子结点个数...

【专利技术属性】
技术研发人员:龚向阳刘宏明曹婷褚灵伟郑月霞李伟
申请(专利权)人:华为技术有限公司北京邮电大学
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1