使用频谱分析的分组分类加速的制作方法

文档序号:7963568阅读:180来源:国知局
专利名称:使用频谱分析的分组分类加速的制作方法
技术领域
本发明涉及通信网络,特别涉及使用频谱分析对分组快速分类的系统和方法。
背景技术
当今因特网路由器的高性能转发引擎的一个最重要的要求是识别属于某个流(流由一些规则定义;规则的集合称为策略数据库或者分类器)的分组以及采取必要的动作以满足增长的服务要求集合的能力。对进入的分组的流的识别称为分组过滤或者分组分类。
分组分类是现代高性能路由器的关键技术,因为它可用于提供对某些类型的分组的加速转发,以执行安全限制或者触发通信量监控。分组过滤器的传统应用是提供防火墙和安全功能,诸如丢弃未授权的分组,将分组重定向到代理服务器等。因特网的增长复杂性正在引发分组分类的新应用,提出对路由器的分组分类系统和其它分组处理设备的额外的需求。分组过滤器的新应用是对由特定站点、客户或应用发起的分组的识别和分类。这些动作涉及排队、调度以及路由决策,不仅使用目的地址,而且使用源地址、源端口数字、目标端口数字等。大规模的分组过滤功能使得边缘和核心路由器都能够支持灵活的、客户专用的区别服务,这些服务提供满足预订的服务要求所必需的资源。
在进行转发决策之前,分组过滤器应解析分组头的大部分,包括有关传输协议的信息。一般地,分组分类根据给定模式(规则)的集合执行,这些给定模式与进入的分组的头中的特定字段相匹配。路由器被设计为在匹配进入的分组的规则集合中查找最佳的匹配规则。规则通过网络管理软件或者诸如RSVP的实时预留协议定义。
期望使用适用于地址范围、端口数字或者协议的规则,并且规则不应限于精确的匹配。这允许规则适用于集合并保持被规定的规则的数量容易管理。如果过滤器算法只能处理精确的匹配,那么预处理必须将过滤器规则中的范围转换成精确值。这是不可行的,因为范围的大小随着定义范围的分组字段的长度呈指数增长。同样,为了解决如果规则重叠产生的冲突,规则必须被分配明确的优先权。
已经提出了许多算法以实现分组分类。然而,这些算法计算复杂,需要大量的空间来存储规则,或者一个算法需要大量的存储器存取以执行分类,或者两者都需要。当分组分类需要大量的规则时,所有以前提出的算法都变得代阶非常大以实现高速、线速率、实时应用。
一个通用的执行分组分类的硬件设备是三态内容寻址存储器(TCAM)。TCAM被配置为对分类数据库的转送表中的所有条目并行搜索进入的分组的头。TCAM按照分类器中规则的优先权或者转发表中条目的前缀长度的降序保持条目。保持在分类器中规则的增加和删除下分类的列表是代价很高的操作,因为在最坏的情况下需要大量的存储器移位(写)操作。目前对于该问题使用的最通用的解决方案仅仅改善了对一般情况的反应,但浪费了宝贵的TCAM空间,并且可能仍然没解决最坏情况的情形。使用算法管理TCAM使得在最坏情况下增加的更新次数保持很小是已知的。这些算法的主要缺点是高能耗以及对具有端口范围的过滤器的低效表示。
另一个目前使用的解决方案是使用Bloom(布鲁姆)过滤器作为分类过滤器。Bloom过滤器是允许其迅速执行成员资格测试的算法,结果是成员资格的真或假的指示。过滤器包括一组k个哈希函数和给定长度的比特向量。将被分类的分组的主键通过k个哈希函数。每个哈希函数的结果设置比特向量中的一个比特。然后,将该比特向量与已经用分类数据库的哈希结果预先配置的基准比特向量进行比较。然而,由于Bloom分类过滤器实际上不能处理包括一个或多个范围或者通配符值的规则,因此所依据的Bloom分类过滤器是不实用的。为了在这种情况下有效使用Bloom过滤器,每个包含通配符/范围的规则都需要进行明确的定义并输入到Bloom过滤器内。
概括地说,当前用于分组分类的算法在空间和时间复杂度方面都非常昂贵。当存在大量规则时,它们的使用对于高速、实时分类是不实用的。随着分组速率的持续增加,对有效的分组分类方法的需要变得越来越重要。需要提供一种可加速分组的分类的装置。而且,当更深入的分组检查变得更加普遍时,数据路径内这种检查的处理负荷成为更大的问题。需要提供一种,通过使分组免除被复杂的分类算法处理而显著减少数据路径处理负荷的方法和系统。

发明内容
本发明的目的是提供一种分组分类方法和系统,其全面或部分地消除现有的分组分类系统和方法的缺点。
本发明的另一个目的是提供一种分组分类方法和系统,其加速分组分类,并且提供确定分组已经匹配一个所定义的规则的高精确度。
因此,本发明提供一种用于过滤进入的分组的实时流中的分组的方法,包括从分组中的字段中创建主键(key),该字段由分组分类规则集合指定;将主键变换到频谱域,从而获得频谱域主键;将频谱域主键与对应于分类规则的频谱包络进行比较,并且只要频谱域主键落在频谱包络以外就获得否定的决定,或者只要频谱域主键落在频谱包络以内就获得肯定的决定;以及在肯定的决定的情况下,将所述分组引导到分组过滤器,用于确定所述分组匹配的规则集合中的特定规则。
本发明还提供一种用于对进入的分组的实时流中的分组进行分类的分组过滤系统,包括主键产生器,用于从分组的一个或多个字段中创建主键,该字段由分组分类规则集合指定;快速傅里叶变换单元,用于将主键变换到频谱域,从而获得频谱域主键;以及包络比较器,用于将频谱域主键与对应于分组分类规则的频谱包络进行比较,并且只要频谱域主键落在频谱包络以外就获得否定的决定,或者只要频谱域主键落在频谱包络以内就获得肯定的决定。
有利的,本发明极大地减少了在任何能够查找精确规则匹配的分组分类算法上的负荷,因为该算法不需要对实时流中的所有分组都执行。
本发明的另一个优点是通过滤除已知不匹配任何规则的分组,提供对任何能够查找精确规则匹配的分组分类算法的加速。也可以存在只需要确定规则不匹配的应用。此外,该方法执行加速所需要的处理量与规则集合中的规则的数量无关。该方法的应用包括网络安全、计费、性能监控以及流量监控。
本发明的方法和系统可在用于诸如网络安全、计费、性能监控以及流量监控的应用的任何分组分类过滤器中实现。


通过下面对如附图所说明的优选实施例的更详细的描述,本发明的上述和其它目的、特征以及优点将很明显,其中图1说明了根据本发明的频谱分组分类系统的框图;图2是由包括38个规则的集合创建的幅度包络的图;图3是在图2中使用的规则集合的相位包络的图。
具体实施例方式
如上面所指出的,IP路由器的分组过滤器(分类器)是基于某种用于在进行转发决策之前解析分组头的大部分的硬件结构或者软件算法。该解析是基于由网络管理软件或者实时预留协议定义的规则集合。典型地,这些规则是基于第3层头内的字段(例如源和目的地址字段,协议字段等)和第4层头内的字段(例如TCP和UDP的源和目的端口数字)。规则可以规定前缀,并且通常包含范围和通配符,使得对可以匹配所讨论的分组的规则的搜索形成必须被搜索的n维空间。在该术语中,n是分组分类问题所涉及的头内字段的数量。此外,规则可以规定分组头的几个字段中的每一个的正常表达。到达的分组的头可以满足不止一个规则的条件,在这种情况下,具有最高优先权的规则确定到达的分组的流量。此外,规则可以被设计为通过以线速率检查分组有效载荷识别恶意攻击(“蠕虫”和病毒),以检测和过滤包含蠕虫标志的分组。
本发明通过使过滤器能够快速决定实时流中的分组是否应被解析而简化分组过滤器的任务。该决定通过将规则的频谱分析和流中的分组的频谱分析进行比较而做出。该比较能够快速确定分组是否不匹配任何已经对各个分组应用定义的可能的规则。该结果在此称为“否定的决定”。也就是说,使用根据本发明的频谱分析方法和系统,不可能有错误的否定决定。当确定分组不匹配任何规则时,分组分类器的工作完成。
本发明的频谱分析方法和系统还能够高精度地确定分组是否已匹配一个所定义的规则。该结果在此称为“肯定的决定”。一般地,分组被错误地认为匹配规则集合中的一个规则,即提供错误的肯定决定,的比率经试验被确定为小于10%。一旦确定了肯定的决定,分组就将被分组过滤器精确地分类以确定匹配规则,如果有的话。
这样,分组滤波器上用于查找精确规则匹配的负荷被极大地减轻,因为不是所有进入的实时流中的分组都进行规则匹配处理。然而,因为可能的错误的肯定结果,所以匹配规则并不总是可以被找到。
图1示出了该发明所需要的元件的基本示意图。其包括规则匹配分组分类单元10(分组过滤器或者分组分类器),用于根据规则集合20对分组进行分类;如上面所指出的,规则由网络管理软件或者诸如RSVP的实时预留协议定义。相位和幅度包络分别由脱机过程25根据规则集合20产生。该包络产生器过程25通过叠加单个的频谱结果计算每个规则的相位和幅度。确定单独的集合的所有规则的每个频率分量的最小值和最大值。作为简单的例子,频率幅度分量为{0,3,4}、{2,1,3}和{1,2,1}的三个分类规则将导致最小{0,1,1}和最大{2,3,4}的频率幅度包络。
由包络产生器过程25生成的结果随后被存储在包络数据库16中用于进一步的使用。由于路由器可以使用多个规则集合以对分组分类,因此数据库16存储通过对单独的规则集合在频谱上进行分析而预先确定的多个幅度和相位包络(一个幅度包络,另一个相位包络)。
主键产生器12从要求分类的进入的分组中创建分组主键。该主键包括在规则集合中存在的所有字段;如果分组分类问题涉及的头内字段的数量表示为n,则主键被称为“n元组”。例如,可以使用标准的5元组,其包括分组源IP地址、目的IP地址、协议、源端口和目的端口。而后,主键被传送到快速傅里叶变换(FFT)单元14,该单元将主键变换为复数,在这里称作频谱域主键,其提供单独的分组的主键的每个频率的相位和幅度值。
然后,由单元14确定的每个分量频率的复数被包络比较器18用于确定频谱域主键是否在由当前规则集合定义的相位和幅度包络内。如果对于每个频率,相位和幅度频率的值都在包络的最小值和最大值的范围内,那么该主键被认为是在频谱包络以内。否则,该主键被认为是在规则集合的频谱包络以外。包络比较器18提供一个结果,在这里称作“规则匹配”,其表明对于该分组或者不存在匹配规则(否定的决定),或者可能有匹配的规则(肯定的决定)。只有当频谱分析确定匹配可能存在时,分组分类单元10才分析分组。肯定的决定用作分组分类单元10的输入,该分组分类单元10可确定单独的分组的精确的规则匹配。分组分类单元10不对频谱分析确定为没有匹配规则的分组(否定的决定进行分类。
当确定匹配还没有发生时,相位和幅度包络都应当被考虑。图2和图3分别展示了由包括38个规则的集合创建的幅度和相位包络。在这些图中的线20和22分别代表最小和最大的幅度包络,而线30和32分别代表最小和最大的相位包络。线24和34分别是根据候选分组的主键计算的幅度和相位分量。首先检查图2的例子中的幅度包络,单独的分组不匹配38个规则中的任何一个,因为该分组具有位于规则集合的幅度包络20、22之外的频谱幅度24(在频率值4)。检查相位包络34,很明显匹配是可能的。
在图2和3的例子中,相位包络显示匹配是可能的,但是幅度包络已确定没有匹配存在。很明显,可能有进入的分组的频谱主键的其它图,或者规则集合的其它幅度和相位包络。例如,在一种情形中,幅度包络意味着匹配是可能的,但是相位包络确定没有匹配存在。在这种情况下,所做的总决定是没有匹配规则。也就是说,对于肯定的决定,分组的频谱主键必须既位于幅度频谱包络以内,又位于相位频谱包络以内。
对于包含一个或多个范围的规则,包络的确定更复杂。将具有范围的单个规则分解为多个单独的明确规则的强力方法是可能的,但是该过程的计算量非常大。已经观察到,在有范围的规则(ranged rule)中的顶点负责在每个频率分量的最小和最大幅度。然而,在有范围的规则的端点相位和相应的最小和最大相位之间没有任何关系。可以选择不使用频谱相位包络,从而增加错误的肯定决定的可能性;或者执行计算义务以脱机计算相位包络,即使这可能花很长时间。
该方法的精确度取决于自由度的数量,包括将进入的分组主键划分成由FFT单元14使用的字、FFT的大小、被检查的规则集合的性质以及被分类的分组的性质。
权利要求
1.一种用于过滤进入的分组的实时流中的分组的方法,包括从分组的字段中创建主键,所述字段由分组分类规则集合指定;将所述主键变换到频谱域,从而获得频谱域主键;将所述频谱域主键与对应于所述分类规则的频谱包络进行比较,并且只要所述频谱域主键落在所述频谱包络以外就获得否定的决定,或者只要所述频谱域主键落在所述频谱包络以内就获得肯定的决定;以及在肯定的决定的情况下,将所述分组引导到分组滤波器,用于确定所述分组匹配的所述规则集合中的特定规则。
2.如权利要求1所述的方法,其中,所述主键从所述分组的头中的多个字段中产生。
3.如权利要求1所述的方法,其中,对应于所述集合的频谱包络是幅度包络和相位包络中的一个。
4.如权利要求3所述的方法,其中,对所述幅度和相位包络都执行所述比较步骤。
5.如权利要求3所述的方法,其中,所述频谱包络是脱机产生的,并存储在包络数据库中。
6.如权利要求3所述的方法,其中,所述频谱包络通过计算所述集合中每个规则的相位和幅度以及确定在所述集合的所有规则的每个频率处的最小和最大值产生。
7.如权利要求6所述的方法,还包括对于使用范围的规则,将所述规则分解为多个单独的明确规则。
8.一种用于对进入的分组的实时流中的分组进行分类的分组过滤系统,包括主键产生器,用于从分组的一个或多个字段中创建主键,所述字段由分组分类规则集合指定;快速傅里叶变换单元,用于将所述主键变换到频谱域,从而获得频谱域主键;以及包络比较器,用于将所述频谱域主键与对应于所述分组分类规则的频谱包络进行比较,并且只要所述频谱域主键落在所述频谱包络以外就获得否定的决定,或者只要所述频谱域主键落在所述频谱包络以内就获得肯定的决定。
9.如权利要求8所述的分组过滤系统,还包括分组过滤器,用于从所述包络比较器只接收具有肯定的决定的分组,并确定所述分组匹配的所述分组分类规则集合中的特定规则。
10.如权利要求8所述的分组过滤系统,还包括包络产生器,用于通过确定在所述集合的所有规则的每个频率分量处的最小和最大值,产生所述分组分类规则集合的幅度和相位包络;以及包络数据库,用于存储所述规则集合以及任何在路由器上使用的其它规则集合的幅度和相位包络。
全文摘要
提出一种加速分组分类问题的方法和分组过滤系统。使用规则的频谱分析和使用分组的实时频谱分析,可以非常迅速地确定分组不匹配任何已被定义的可能的规则。也就是说,使用本发明的分组过滤,没有错误的否定决定的可能性;当确定分组不匹配任何规则时,分组分类器的工作就完成了。该方法和系统还能够高精度地确定分组已经匹配一个所定义的规则,使得该分组可以被引导到分组分类器以确定其匹配的特定规则。
文档编号H04L29/06GK1881950SQ20061009289
公开日2006年12月20日 申请日期2006年5月26日 优先权日2005年5月26日
发明者A·戈拉 申请人:阿尔卡特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1