用于高吞吐量基于签名的网络应用的集成电路设备和方法

文档序号:6491662阅读:223来源:国知局
专利名称:用于高吞吐量基于签名的网络应用的集成电路设备和方法
技术领域
本发明涉及计算机联网安全应用。更具体地,本发明包括用于以线速度(wire-speed)作用于网络分组和流数据的、基于签名的网络应用的设备的集成电路实施方案。按照具体的实施例,本发明包括用于以下功能的设备和方法,即,以线速度同时进行将分组高吞吐量地流分类成网络流、对这种流进行重新分组装配(在想要的场合下)、过滤和预处理这种流(在想要的场合下,包括协议译码)、对这种流的报头(header)和有效负荷内容进行模式(pattern)匹配、和根据用于多个网络应用的基于法则的策略(policy)来进行动作执行。仅仅作为例子,本发明被应用于分布在局域网、广域网、和世界范围的网络中的联网设备。
背景技术
随着世界的进步,计算机网络互连对于用于企业、通信系统、国家和世界的基础结构变成很重要的。在计算机之间的数据流在载送的内容和传递的及时性方面变得越来越重要。通过计算和联网的技术进展,大的数据库现在是可得到的,并且由处在地球的相对侧的双方使用。
通过诸如互联网的网络,数据在计算机之间以通常被称为分组的小的数量被载送。在数据量太大而不适合于单个分组(它的大小典型地由分组流过的网络的特性来规定)的场合下,使用一系列分组来把数据从通信信道的一端载送到另一端。这个序列,或通常被称为流,然后在接收端从各个分组被重新装配成原始的数据。
分组是通过使用允许计算机和网络设备决定分组应当沿哪条路径发送到达它的最后目的地的专门开发的算法而在计算机之间路由的。这些算法检查分组报头(典型地是分组的固定大小的部分,其包含被加到要输送的有效负荷的诸如分组的源和目的地址的信息),以作出路由决定。所述算法需要检查分组,并非常快速地作出决定,从而允许大量分组以非常小的延时进行发送。除了检查报头以外,还可以检查分组的内容,找到有助于作出关于给予分组的路径和优先级的决定的信息;然而,数据的这个检查加上附加开销,这会限制吞吐量和由检查数据的设备施加的延时--典型地,要搜索的数据越多,由于搜索它而引起的延时越长。
不断地,当分组从它们的源发送到它们的目的地时,它们被检查来不仅仅帮助进行路由决定而且也用于其它目的。通过网络以一系列分组发送的一个电子邮件可被检查来查看它是否是不想要的电子邮件消息(通常被称为“垃圾邮件(spam)”);这种检查常常希望查看消息的内容,这是在载送电子邮件时牵涉的分组的有效负荷部分。同样地,可以扫描电子邮件,查看它是否包含计算机病毒。也可以检查分组,寻找版权侵犯、诸如计算机‘黑客’或共同侦察的非法活动,或只是分析使用情况以提供良好的服务质量。通过检查网络中的分组,现在提供新的应用,并且可以合理地预期,将继续开发基于分组检查的新的网络应用。
专门化的网络设备能够非常快速地检查分组报头(具有它们的小的总的大小、设置的协议和固定的布局)。然而,检查不总是很好地构建的分组的数据有效负荷是复杂的,并且在对于处理每个分组可用的小的时间窗中很难完成。当在数据结构和协议方面必须经常分析这个有效负荷时,以及甚至面对由高技巧的攻击者恶意地作出的模糊时,这个问题被复杂化。典型地,诸如电子邮件网关、侵入检测系统和通用内容保护设备的设备以软件搜索网络数据,该软件虽然常常是灵活的和很优化的,但当接近达到想要的速度时,在总的吞吐量或延时方面,将是不顶用的。设备还可以使用被严格限制成检查报头的专门化的路由硬件。而且,这些软件和硬件设备典型地对于可以搜索什么数据和可被同时匹配的不同的模式的数目施加相当严格的限制。
网络设备在几个约束条件下也能工作;分组从进入接口到外出接口所花费的总的时间需要保持为最小值。分组经过通信设备或信道所花费的时间被称为等待时间。由设备引起的等待时间不但必须保持为最小值,而且也必须保持为相对恒定的;等待时间的改变被称为抖动。实际上,抖动有害地影响多媒体流。对于当前的基于软件的网络应用,抖动很难控制,因为软件通常与由不对实时处理提供支持的最通用的操作系统所混合的许多其它处理过程共享单个CPU。结果,软件应用交互作用可导致对于网络性能的很大的有害影响。随着网络运行越来越快,这种影响被复杂化。
许多网络协议对分组在通信网上的载送进行组织的方法意味着,与载送给定的流有关的分组可能不总是以正确的次序到达,而且,分组可能由于各种原因而结束分段。为了处理这些情形,流的终端接收机需要通过使用联网算法重新构建分段的分组,并且从这些分组重新装配流,而不管它们到达的次序。然而,这对于设备或应用施加另外的要求,所述设备或应用希望就其全部上下文来检查属于流的数据,而不是只将其作为单个分组从上下文中取出。路由和其它决定典型地关于单个分组内提供的信息而整体地完成,但如果在流中搜索特定的模式,则希望找到它,即使它跨越两个或多个分组之间的边界。因此,为了正确地搜索流,重要的是提供用于处理分段的和次序弄乱的分组的某些机制。
联网的和其它计算机规则下的搜索可以用各种方式完成。典型地,使用一组“法则”或“模式”来描述要被搜索的内容,然后使用算法,把这些“法则”或“模式”施加到要被搜索的数据。这些通常通过使用被称为正则语言(regular language)的结构来描述。正则语言通常被表示为正则表达式。正则语言和表达式在现有技术中是熟知的,但以各种不同的类型呈现,某些被标准化,某些没有被标准化。一旦要被搜索的表达式被规定为正则表达式,典型地由算法作用在其上,产生被称为有限自动机(automaton)的东西。该有限自动机可被“执行”来搜索模式;所述执行包括计算转移函数,该函数定义从有限自动机的一个状态到有限自动机的另一个状态的转移,每次转移是由来自被搜索的数据的、被称为码元的单块输入所触发的。
在给定一组约束条件的情况下进行数据流的高速搜索,包括以低的延时通过高的吞吐量重新装配流,大型模式数据库包括成千个模式,其实现起来是复杂的和困难的。当前的方法通常需要在通用CPU上运行的软件,并且对于满足所有的约束条件有很大的困难;某些是通过牺牲几个目标来进行管理的,诸如大大地限制模式数据库的大小和这些模式可以采取的形式。某些当前的方法使用专门化的硬件解决方案,其中专用集成电路试图满足竞争的需要。这并不提供全面的一般解决方案,并且常常无法解决诸如允许大型模式数据库的硬件问题。对这些惯用技术的这些和可能其它的限制可以在本说明书中找到,并且在下面更具体地描述。
所需要的是以更高的速度(例如,当前的网络速度)来搜索计算机网络业务以找出模式的方法,而对于模式的大小、复杂性或数目不加以过分的限制。这可以通过使用专门化的技术达到,并且这是本发明的主题。

发明内容
按照本发明,提供了用于计算机联网安全应用的技术。更具体地,本发明包括用于以线速度作用于网络分组和流数据的、基于签名的网络应用的设备的集成电路实施方案。按照具体的实施例,本发明包括用于以下功能的设备和方法,即,以线速度同时进行将分组高吞吐量(例如,每秒10,000,000比特或更高)地流分类成网络流、对这种流进行重新分组装配(在想要的场合下)、过滤和预处理这种流(在想要的场合下,包括协议译码)、对这种流的报头和有效负荷内容进行模式匹配、和根据用于多个网络应用的基于法则的策略来进行动作执行。仅作为例子,本发明被应用于分布在局域网、广域网、和世界范围的网络中的联网设备。
在具体的实施例中,本发明提供用于网络应用中的高吞吐量模式匹配的集成电路设备。设备包括刚性支持部件(例如,印刷电路板、基片、硅基片、集成电路模块),它包括具有网络连接区域和主机连接区域的连接器区域。刚性支持部件具有选择的宽度和选择的长度。选择的宽度和选择的长度适合于经由连接器区域被耦合到网络系统。优选地,连接器区域直接连接到公共接口总线。一个或多个硬件模块(例如,集成电路、集成电路模块)被布置在(例如,焊料凸起)和被耦合到刚性支持部件。优选地,该一个或多个模块包括被耦合到刚性支持部件的网络接口模块。
优选地,网络接口模块包括一个或多个网络接口端口。该一个或多个网络接口端口经由连接器区域被耦合到基于分组的网络。该一个或多个网络接口端口包含一个或多个进入网络端口。网络接口总线被耦合到刚性支持部件。网络接口总线适合于把网络接口模块接口到网络模块。网络模块被耦合到刚性支持部件。网络模块被耦合到网络接口总线。网络事件模块被耦合到刚性支持部件。网络事件模块被耦合到网络模块。存储器模块被耦合到刚性支持部件以及存储器模块被耦合到网络事件模块和网络模块。存储器模块包括模式存储器。模式存储器与多个预先存储的模式有关。主机接口模块被耦合到刚性支持部件,并且被耦合到网络事件模块,或网络模块或二者。主机接口总线被耦合到刚性支持部件。主机接口总线被耦合到主机接口模块,并且能够经由连接器区域连接到主机系统。在具体的实施例中,本发明可以使用一个或多个预先存储的模式。其中,预先存储的模式可包括正则表达式,n-gram表达式(例如,码元的元组)。
优选地,存储器模块还包括特性存储器;它与多个预先存储的特性有关。法则存储器也与多个预先存储的法则有关。网络模块包括特性提取装置,它被耦合到网络模块和存储器模块。特性提取装置还能够按照特性提取算法识别特性关联性。
按照具体的实施例,特性提取算法按照某种预定的功能根据对一个或多个分组的检查来识别特性关联性。特性关联性标识多个预先存储的特性中的一个或多个特性。预先存储的特性被存储在特性存储器中。策略装置被耦合到特性提取装置和存储器模块。策略装置按照策略算法根据由特性提取装置识别的特性关联性识别法则关联性。策略算法通过按照某种预定的功能来检查特性关联性而识别法则关联性。法则关联性标识被存储在法则存储器里的多个预先存储的法则中的一个或多个法则。
按照具体实施例,特性提取算法可以是用于至少一个或多个预定的模式的近似模式匹配处理过程。优选地,近似模式匹配处理过程是对于来自以下内容的数据流执行的文本数据文件、文本数据流、二进制数据文件、二进制数据流、音频数据流、音频数据文件、视频数据流、视频数据文件、多媒体数据流、和多媒体数据文件、它们的任何组合等。在替换的实施例中,在近似模式匹配处理过程中的近似性的度量值是编辑距离,它可以是精确匹配于模式所需要的插入、删除、或替换的数目。除了其它因素之外,在近似模式匹配处理过程中的近似性的度量值也可以涉及人的感知。
在替换的具体实施例中,本发明提供了用于执行高吞吐量模式匹配的方法。高吞吐量模式匹配操作是通过使用多个模式中的一个或多个模式来执行的;这些模式是由现有技术上已知的正则语言所定义的。模式由正则语言规定。正则语言被实施为有限自动机。有限自动机包括正则语言的转移表表示。转移表描述了用于有限自动机的转移函数。转移表适合于以压缩形式被存储。压缩形式被调整以使得有限自动机的转移函数能够从压缩形式中在相对于压缩形式的大小为恒定的最大的时间内被计算。优选地,模式匹配以线速度用有效的和成本经济的方式被提供。
在再一个替换的具体的实施例中,本发明提供用于执行高吞吐量模式匹配的设备。高吞吐量模式匹配操作是通过使用多个模式中的一个或多个模式来执行的。模式被表示为单个模式数据库。单个模式数据库包括来自多个应用中的一个或多个应用的模式。模式匹配操作能够根据匹配的模式来唯一地识别应用。有限自动机包括正则语言的转移表表示。转移表描述用于有限自动机的转移函数。
在又一个替换的具体实施例中,本发明提供用于把网络系统变换成加速的、基于签名的网络系统的方法。该方法包括提供网络系统。该网络系统包括被耦合到主机处理器的主机存储器、被耦合到主机处理器的主机接口总线、和被耦合到主机接口总线的主机连接器。该方法还包括提供用于对网络应用进行高吞吐量模式匹配的集成电路设备。该设备包括刚性支持部件,它包括包含网络连接区域和主机连接区域的连接器区域。刚性支持部件具有选择的宽度和选择的长度。选择的宽度和选择的长度适合于经由连接器区域耦合到网络系统。
优选地,一个或多个硬件模块被布置在和被耦合到刚性支持部件。该一个或多个硬件模块包括被耦合到刚性支持部件的网络接口模块。网络接口模块包括一个或多个网络接口端口。该一个或多个网络接口端口经由连接器区域被耦合到基于分组的网络。该一个或多个网络接口端口包含一个或多个进入网络端口。网络接口总线被耦合到刚性支持部件。网络接口总线适合于把网络接口模块接口到网络模块。网络模块被耦合到刚性支持部件。网络模块被耦合到网络接口总线。网络事件模块被耦合到刚性支持部件。网络事件模块被耦合到网络模块。存储器模块被耦合到刚性支持部件。存储器模块被耦合到网络事件模块和网络模块。存储器模块包括模式存储器。模式存储器与多个预先存储的模式有关。主机接口模块被耦合到刚性支持部件。主机接口模块被耦合到网络事件模块和/或网络模块。主机接口总线被耦合到刚性支持部件。主机接口总线被耦合到主机接口模块。主机接口总线能够经由连接器区域连接到主机系统。该方法包括把集成电路设备的主机接口连接器区域与网络系统上的主机连接器相连接,以便把网络系统的主机接口总线机械地和电气地耦合到集成电路设备的主机接口总线。
另外,所述方法包括把选择的驱动器软件传送到网络系统。驱动器软件被配置成帮助在集成电路设备与网络系统之间经由主机接口总线进行通信。该方法包括通过驱动器软件初始化集成电路设备。
在替换的具体实施例中,本发明提供用于使用集成电路设备的、基于签名的模式识别的方法。该方法包括提供用于对网络应用进行高吞吐量模式匹配的集成电路设备。该设备包括刚性支持部件,它包括连接器区域。连接器区域包括网络连接区域和主机连接区域。刚性支持部件具有选择的宽度和选择的长度。选择的宽度和选择的长度适合于经由连接器区域被耦合到网络系统。
优选地,一个或多个硬件模块被布置在和被耦合到刚性支持部件。该一个或多个硬件模块包括被耦合到刚性支持部件的网络接口模块。网络接口模块包括一个或多个网络接口端口。该一个或多个网络接口端口经由连接器区域被耦合到基于分组的网络。该一个或多个网络接口端口包含一个或多个进入网络端口。网络接口总线被耦合到刚性支持部件。网络接口总线适合于把网络接口模块接口到网络模块。网络模块被耦合到刚性支持部件。网络模块被耦合到网络接口总线。网络事件模块被耦合到刚性支持部件。网络事件模块被耦合到网络模块。存储器模块被耦合到刚性支持部件。存储器模块被耦合到网络事件模块和网络模块。存储器模块包括模式存储器。模式存储器与多个预先存储的模式有关。主机接口模块被耦合到刚性支持部件。主机接口模块被耦合到网络事件模块和/或网络模块。主机接口总线被耦合到刚性支持部件。主机接口总线被耦合到主机接口模块。主机接口总线能够经由连接器区域连接到主机系统。
另外,所述方法包括把信息从基于分组的网络传送到网络接口端口和通过网络接口总线传送来自网络接口端口的信息。该方法包括在处理单元处接收来自网络接口总线的信息和通过使用处理单元识别在一个或多个分组与来自所述信息的流之间的关联性。该一个或多个分组被重新排序成一个或多个相应的流。该方法还包括确定对于一个或多个相应的流的一个或多个分组是否与被存储在通过存储器总线被耦合到处理单元的存储器中的基于签名的模式有关,其中该确定是通过使用具有小于8纳秒的随机访问时间的存储器进行的。根据确定步骤发起信号到策略引擎。
通过使用本发明,比起传统的技术可以得到许多好处和/或优点。按照优选实施例,本发明也可以以高吞吐量执行模式匹配。对于其中有限自动机被使用来作为特性提取装置的一部分而实施模式匹配的本发明的实施例,由有限自动机使用的转移函数应当具有恒定的时间复杂性,从而保证可以在固定的范围内达到转移,固定的范围由要达到的吞吐量规定。这是部分地通过使用诸如现代静态RAM的、具有低的随机访问时间的存储器而达到的。
在替换的具体实施例中,本发明还保留模式数据库对存储器的使用,而不过分限制在模式数据库中模式的数目。这可通过使用诸如在以下专利中描述的压缩技术来完成2003年5月23日提交的、共同转让的、题目为“Apparatus and Method for Large Hardware FiniteState Machine with Embedded Equivalence”的美国临时专利60/473,373;和2003年3月12日提交的、共同转让的、题目为“Apparatus and Method for Memory Efficient Programmable PatternMatching Finite State Machine Hardware”的美国临时专利60/454,398。另外,也可以使用对于本领域技术人员明显的、其它类似的技术来减小用于转移表的存储器覆盖区的大小。这些技术的关键是它们的低的和恒定的等待时间附加开销,这不单导致紧凑的存储器使用,而且也导致高吞吐量。这种较低的存储器使用法导致对于给定的系统的生产的较低的成本,或对于系统的给定成本的签名的更大容量。
替换地,包括所述设备的本发明可以被调整以适合于各种现有的和新的网络系统,其具有通用形式的因子并被连接到标准硬件接口,而不需要对网络系统进行硬件重新设计制造以使它被调整来使用所述设备。多种应用可以同时运行。多种应用能够具有分开的数据库,并且分开的法则数据库还使得硬件设备以线速度同时运行所有的应用;线速度是按照其它实施例使用的、对于给定的物理媒体可能的最大吞吐量。在其它方面,本发明提供了可以在不需要人工干预的情况下通过主机或网络而被更新的模式数据库、法则组以及因此的应用作为所提供的新的签名或新的应用。结构被这样地设计,以便提供用于基于签名的业务的共同的格式。
再者,本发明提供了使得上边界最坏情形(upper bound worstcase)抖动和等待时间最小化的效果。这是通过以硬件,而不是以诸如在计算机操作系统的内核中或在软件TCP/IP堆栈中的软件来实施核心网络功能而完成的。而且,以硬件组合这些网络功能与模式匹配功能以使得它们紧密地耦合,这导致系统具有较低的等待时间和抖动。
再者,本发明允许协议译码被紧密地耦合到这些网络和模式匹配功能,以使得分组可以通过硬件被接收、分类和重新排序;按照协议定义被译码,以及对多个应用施加模式匹配。这样做的结果是,系统现在可以以线速度更深入地了解网络业务,从而导致更精确的签名匹配,而同时也导致系统具有较低的等待时间和抖动。
另外,本发明允许可被搜索的正则表达式在本发明的某些实施例中还被扩展成包括“时间正则表达式”。时间正则表达式是包含时间分量的正则表达式的任何扩展的组。该时间分量允许在数据内容上进行搜索,但具有能够利用和相对与绝对时序信息有关的信息的附加好处。
本发明的另外的好处是按照具体实施例来克服以软件运行安全应用中所使用的网络与模式匹配算法的服务质量问题。利用算法缺陷的一类拒绝服务攻击出现,使得更加不能够逐个字节地实时处理网络数据。这些低带宽攻击利用了这样的事实以软件运行的许多算法具有的‘平均情形’运行时间比‘最坏情形’运行时间更有效得多。细心精巧制作输入的攻击者可以审慎地使得这些算法具有使得它们以最坏情形运行时间来运行的输入。例如,参阅“Denial of Service via AlgorithmicComplexity Attacks”,Scott A.Crosby,Dan S.Wallach,Department ofComputer Science,Rice University.这些问题可以存在于正则表达式匹配库(regexp)的许多软件实施方案中,其中输入数据可以使得regexp匹配以指数运行时间进行处理。参阅Tim Peters,[Python-Dev]Algorithmic Complexity Attack On Python dated Saturday May 31,2003.许多模式匹配安全系统利用这个库,因此对于这种方式的算法攻击是脆弱的。不使用regexp的大多数系统代替地利用最简单的文字(精确的)匹配,以及因此可以很容易地被精巧制作攻击以避免该精确模式被找到的攻击者所愚弄。优选地,本发明提供线速度模式匹配,通过对输入数据进行实时模式匹配而克服这些缺陷,而同时仍旧允许模式数据库中正则表达式的全部权限。一个或多个这些好处可被包括在这里描述的实施例中。下面通过本说明书来更具体地描述这些和其它好处。


图1显示了按照本发明的实施例的、包括基于分组的网络[100]、多个网络系统[101]、[102]、[103]和被连接到局域网(LAN)[104]的多个主机的典型网络环境;图2显示了按照本发明的实施例的、在刚性支持部件(诸如卡)[201]上的本发明的集成电路设备的实施例;图3显示了按照本发明的实施例的集成电路设备[300]的实施例的框图;图4显示了按照本发明的实施例的、运行在后备(无源)工作模式下的集成电路设备的实施例的功能性框图;图5显示了按照本发明的实施例的、包括协议译码器[513]的运行在后备(无源)工作模式下的集成电路设备的功能性图。
图6显示了按照本发明的实施例的、包括更新模块[614]的运行在后备(无源)工作模式下的集成电路设备的实施例的功能性图;图7显示在本发明的一个实施例中,多组模式[701,702,703,704]将存在于按照本发明的实施例的设备的存储器[700]中,每个模式用于在设备上运行的一个应用;图8是按照本发明的实施例运行的几个处理的流程图;图9显示了按照本发明的实施例的流分类处理过程;图10显示了按照本发明的实施例的、包括在每个功能性单元[1000,1001,1002,1003,1004]之间可配置地插入灵活的流处理器块 的本发明的功能性框图;
图11显示了按照本发明的实施例的流处理器的示例性分类法;图12显示了按照本发明的实施例的、通过正则语言对多个模式的示例性表示和用于针对正则语言的压缩表示进行匹配的方法;图13是按照本发明的实施例的、用于把现有的网络系统变换成加速的基于签名的网络系统的流程图。
具体实施例方式
按照本发明,提供了用于计算机联网安全应用的技术。更具体地,本发明包括用于以线速度作用于网络分组和流数据的、基于签名的网络应用的设备的集成电路实施方案。按照具体的实施例,本发明包括用于以下功能的设备和方法,即,以线速度同时进行将分组高吞吐量地流分类成网络流、对这种流进行重新分组装配(在想要的场合下)、过滤和预处理这种流(在想要的场合下,包括协议译码)、对这种流的报头和有效负荷内容进行模式匹配、和根据用于多个网络应用的基于法则的策略来进行动作执行。仅仅作为例子,本发明被应用于分布在局域网、广域网、和世界范围的网络的联网设备。
在具体实施例中,本发明包括用于通过使用专门化的硬件对网络应用执行模式匹配的设备和方法。本结构允许对基于分组的网络实施以高达线速度来实现高吞吐量的基于签名的网络应用。新颖的结构特别包括对于模式匹配联网和安全操作的硬件支持。这种结构适用于基于签名匹配的高性能安全系统。这些系统包括侵入检测系统、侵入防止系统、抗病毒网关、电子邮件扫描网关、内容过滤系统、抗垃圾邮件系统、内容保护系统、带宽/服务质量管理、内容监控系统、网络监控系统、等许多其它系统。本发明的另一个新颖的方面在于,所述设备适合于耦合到各种网络系统,包括防火墙、网络设备、安全设备、服务器和其它网络设备,其会在下面更详细地被描述。
图1显示了可被耦合到设备的不同的实施例的网络系统的几个例子。这些例子仅仅是说明性的,而不应当限制这里的权利要求的范围。本领域技术人员将会看到许多变化、替换和修改。这些例子包括在[101]的后备网络系统,在[102]的在线网络系统,和在[103]的网络服务器,以及其它可能的单元。在本例中,网络系统具有后备网关监控设备(例如,网络监控器或侵入检测系统)[101]、连接LAN到基于分组的网络[100]的网关系统(例如,路由器、防火墙或交换机)[102]和被连接到LAN的主机系统(例如,工作站、文件服务器或邮件服务器)[103](通信是通过各种网络协议在LAN和基于分组的网络上在每个网络系统与其它系统之间实现的)。在低级别上,这个数据被分割成一系列被称为分组的分段。这些分组然后通过网络从源独立地路由到目的地,结果,可以采取不同的路径以及不按次序到达。然后,分组在目的地处被重新装配,以还原原始的数据流。本设备的其它细节可以在本说明书中找到,下面更具体地进行描述。
设备[201]显示于图2。该图仅仅是例子,它在这里不应当过分限制权利要求的范围。本领域技术人员将会看到许多变化、修改和替换。本设备可以通过连接器区域被耦合到网络系统[200]。被连接到主机系统的连接器区域的实施例包括PCI和Compact-PCI标准,它们定义电的和机械的接口。刚性支持部件具有选择的宽度和选择的长度,其适合于耦合到诸如网络设备、服务器或网络节点的网络系统[200]。优选地,刚性支持部件适用于服务器作为用于将被用来实施本发明的实施例的多个集成电路装置和其它硬件的基片(例如,印刷电路板、硅基片、集成电路封装)。刚性支持部件还包括公共总线,其可被耦合到任何传统的网络设备、服务器或网络节点。
该设备包括用于对网络业务执行高吞吐量分析(例如,以线速度)的多个模块,如图3所示。这个图仅仅是例子,它在这里不应当过分限制权利要求的范围。本领域技术人员将会看到许多变化、替换和修改。信号是根据物理传输媒体(例如,光的、电的)从网络接口模块[301]内的进入网络端口接收的。数据是从具有比特形式的这些信号中提取的。这个数据通过网络接口总线[301]被传送到网络模块[302](这些比特然后经受多个网络处理功能,以便提取相关的数据内容)。数据在被流分类装置分类成流之前被打包成分组。分组然后被放置在流存储器中(在存储器模块[308]内),直至流装配器装置使用分组来重建流为止。这个流然后按照预先规定的协议、过滤器和预处理器(例如,通过协议译码器)被译码,以产生数据内容流。从这些数据内容流中,由网络事件模块[307]提取相关的特性(特性提取在一个实施例中可被看作为对于由在存储器模块内的模式存储器提供的签名的数据库的模式匹配处理)。所提取的特性然后触发消息到策略装置,该装置按照策略和(如由法则存储器提供的)法则来解译这些特性,以便产生事件和动作,其经由主机接口模块[309]和主机接口总线[310]被传送到主机系统[304]。
主机接口总线是标准硬件总线(例如,PCI),这样,集成电路设备可以容易地与各种现有的网络设备合并在一起。还被耦合到该设备的是更新模块[311],它由主机系统或远程设备通过基于分组的网络(经由连接器区域[301]被耦合到网络接口端口)来控制。更新模块适合于更新存储器模块内的任何存储器,以便提供对于模式、协议定义、法则和其它设备特性的更新。
该设备通过连接器区域[303]连接到基于分组的网络。这种连接器区域的一个实施例是用于IEEE 802以太网的RJ-45连接器。替换地,网络尤其可包括SONET、ATM等。分组是由网络接口模块[301]通过这个区域从基于分组的网络接收的,网络接口模块可包括多个进入的网络端口。基于分组的网络的一个实施例是互联网协议(IP)网络。网络接口模块处理进入的电信号或光信号到数字比特的变换,并且按照预定的技术规范(例如,在一个实施例中是IEEE 802以太网技术规范)把这些比特装配成分组。网络接口模块经由网络接口总线[305]耦合到网络模块[302]。在几个实施例中,网络接口总线包括UTOPIA、SPI-3和CSIX总线标准。
网络模块包括多个设备,它们取得这些数字比特,并执行网络处理功能。网络模块接收来自网络接口模块的数据的分组,并且给网络事件模块[307]提供译码的邻接的数据流。在一个实施例中,网络模块可以由单个网络处理单元(NPU)所提供,而在其它实施例中,由诸如NPU和分类处理器的集成电路的组合所提供。网络模块被耦合到存储器模块[308],它提供用于各种设备和数据库的存储器,正如这里说明的那样。网络模块提供流分类装置,它负责识别在每个进入的分组与流之间的关联性,其中流是从源地址到目的地网络地址的预定的分组序列。流分类装置然后识别在流存储器(由存储器模块提供)内的流队列,在该队列上按照这种关联性放置分组。流分类装置被耦合到流装配器装置,流装配器装置按照预定的技术规范对于这些进入的分组基于每个流来管理流队列,并且有效地重新排序分组。在一个实施例中,这个技术规范是TCP/IP。在一个实施例中,流装配器可以耦合到协议译码器,协议译码器又被耦合到由存储器模块提供的协议存储器。协议存储器包含多个网络协议定义,网络协议定义被协议译码器使用以从网络流中识别突出的协议特性。在一个实施例中,这种特性的例子可以是作为SMTP电子邮件消息的一部分的源和目的地邮件地址。
网络模块的操作的实施例被显示于图9。如图所示,图9显示对于本发明的一个实施例的流分类处理过程。在[900]中,来自多个流的分组接连地和可能次序错乱地到达。在[901]中,流分类的第一步骤是确定把每个分组放置在哪个流队列上。在[902]中,每个分组被放置在这样的队列上,该队列被分类到由某种预先确定的算法确定的(例如,在TCP/IP中的时序号)正确的序列中。
转回到图3,网络事件模块[307]包括多个装置,并且分析整个网络流来提取相关的特性,然后把法则(或策略)施加到这些特性上,以便经由事件通知主机接口模块[309]。在一个实施例中,网络事件模块通过使用模式匹配算法搜索数据流,然后按照法则组来分析这些匹配,以便然后通知主机系统相关的网络事件。在一个实施例,网络事件模块由现场可编程门阵列(FPGA)提供。来自网络模块的进入的数据流被传送到识别重要性特性的特性提取装置;这些特性的可匹配的表示被存储在由存储器模块提供的模式存储器中。
在本发明的某些实施例中,这些模式可以是正则表达式、确定性(deterministic)有限自动机、Berkeley分组过滤器表达式或近似的签名的所编译的表示。在某些实施例中,这些签名数据库可以涉及到同时执行的多个不同的应用。匹配的特性被传送到策略装置,策略装置相对于由存储器模块内的法则存储器提供的法则数据库来分析特性。这些法则被使用以根据由和这些法则有关的应用提供的预定的方案作出更高级别的决定。在某些实施例中,这允许聚集匹配的特性(在用于侵入检测系统的拒绝服务攻击检测中是重要的),或选择性法则组使能(即,基于网络事件使能法则子组或提供预先规定的性能特征)。在某些实施例中,这些法则数据库可以涉及到同时执行的多个分开的应用。作为法则的结果,策略装置可以识别需要执行的动作。在某些实施例中,这样的动作可包括经由主机接口模块用信号通知主机系统,用信号通知网络模块丢弃或修改(在设备是在线的情形下)分组或多个分组,或触发计数器或定时器。
主机接口模块可被耦合到网络事件模块和/或网络模块。主机接口模块负责设备模块与主机系统的接口连接。主机接口模块经由主机接口总线[310],经由连接器区域[304]的主机部件被耦合到主机系统。在一个实施例中,这可以是通过PCI总线的通信,其中PCI标准规定主机接口总线和连接器区域的特性。在一个实施例中,主机接口模块由分开的ASIC或FPGA提供的。这里,适当的ASIC或FPGA的例子具有到低等待时间RAM的接口、至少5000个逻辑单元、多个时钟域的内部块RAM和高速度数据总线。仅仅作为例子,FPGA可以是诸如由Xilinx公司制造的Virtex 2Pro那样的FPGA,但也可以是其它的FPGA。在另一个实施例中,它可包括NPU,其中NPU具有多处理单元(例如,微引擎)、到低等待时间RAM的多个库(bank)的接口和高速度数据总线。仅仅作为例子,NPU可以是由Intel公司制造的IXP 2400。当然,本领域技术人员将会看到许多其它变化、替换和修改。
在一个实施例中,主机接口模块将按照触发的法则和/或动作帮助网络事件模块用信号通知主机系统。在一个实施例中,主机接口模块被耦合到更新模块[311],以及帮助在更新模块与主机系统之间进行通信,这样,更新模块可以更新在存储器模块内提供的一个或多个数据库。
更新模块负责管理在存储器模块内提供的数据库。在本发明的实施例中,更新模块负责更新在模式存储器中的模式、在协议存储器中的协议定义、和在法则存储器中的法则数据库。在某些实施例中,更新模块可以经由鉴权装置按照预先规定的技术规范对这个处理过程进行鉴权。鉴权装置在某些实施例中将以强的加密的方式这样做,以便维持更新的合法性、整体性和机密性。在某些实施例中,鉴权装置可以提供对于密码原语的加速的硬件支持。在某些实施例中,更新由主机系统经由主机接口模块来提供,和在其它实施例中,由在基于分组的网络上的远程系统经由网络模块(可能在分开的管理接口上被连接到设备)来提供。
在某些实施例中,集成电路设备可以在线地操作,以使得触发的法则可以在由网络接口模块提供的外出网络接口上发送出这样的分组之前作出丢弃或修改分组的决定。在这样的实施例中,网络事件模块将识别这样的决定,并且用信号通知网络模块在它的流后处理器中执行操作。
在图[4,5,6]中,给出了集成电路设备的不同的实施例,图中显示了从基于分组的网络到主机系统的数据流。参考图4,集成电路设备对从基于分组的网络到达的分组执行网络应用。分组首先经由网络接口端口[401]被接收,其中把它们从物理信号(例如,电的,光的)变换成比特,并被排列成数据分组。这些数据分组然后被传送到流分类装置[402],该流分类装置把每个分组与网络流相关联。这些分组然后由流装配器装置[403]装配成流。流装配器装置然后以重新装配的流的形式传送数据到特性提取设备[404]。特性提取设备根据被存储在模式存储器[409]内的模式数据库[410]来识别这些流内的模式或签名,和把成功的匹配通知给策略装置[305]。策略装置按照被存储在法则存储器[411]中的法则数据库[412]把一个或多个匹配与事件相关联,把匹配转换成网络事件和相关的动作。策略装置把有关这些事件、动作和其它状态信息的消息经由主机接口装置[407]传送到主机系统[406]。根据实施例,消息可包括访问控制表更新消息、审查消息、事件消息、报警消息、状态消息、询问消息、更新消息、管理消息、错误消息、警告消息、这些消息的任何组合等。主机接口装置通过主机接口端口[407]耦合到主机系统,所述端口把消息比特变换成适合于传输的物理信号。
参考图5,分组经由网络接口端口[501]被接收,其中把它们从物理信号(例如,电的,光的)变换成比特,并被排列成数据分组。这些数据分组然后被传送到流分类装置备[502],该流分类装置把每个分组与网络流相关联。这些分组然后由流装配器装置[503]装配成流。流装配器装置然后以重新装配的流的形式传送数据到协议译码器,协议译码器按照网络协议说明来解析流成为协议内容流。这些协议内容流然后被传送到特性提取设备[504]。特性提取设备根据被存储在模式存储器[509]内的模式数据库[510]来识别这些协议内容流内的模式或签名,和把成功的匹配通知到策略装置[505]。策略装置按照被存储在法则存储器[511]中的法则数据库[512]把一个或多个匹配与事件相关联,把匹配转换成网络事件和相关的网络动作。策略装置把有关这些事件、动作和其它状态信息的消息经由主机接口装置[506]传送到主机系统[508]。主机接口装置通过主机接口端口[507]耦合到主机系统,所述端口把消息比特变换成适合于传输的物理信号。
图8显示在本发明的实施例中的设备内的逻辑操作。这些操作的高级别说明如下在一个处理过程[800]中,从进入网络接口接收分组,并把它分类为属于一个流,并在流存储器中排队。在第二处理过程[801]中,分组从流存储器被读出,并被重新装配成接连的流。在第三处理过程[802]中,这些重新装配的流然后针对相关的特性进行分析,该特性的识别希望根据法则数据库作出关于是否触发动作,通知主机等的决定。在某些实施例中,集成电路设备工作在流通过工作模式下。在这个模式中,第四处理过程[803]采取已被处理的分组,并且可以在它们于外出网络接口上被发送之前把它们全部丢弃或修改它们。
图[800]显示分组接收处理过程,它包括等待分组变为在进入网络接口端口上可得到的,接收这样的分组,按照流将分组分类,然后把分组放置在流存储器中。图[801]显示另一个处理过程等待这样的要在流存储器中排队的分组,然后在把它们放置在模式队列之一中之前把这样的分组重新装配为流。图[802]显示再一个处理过程它检查模式队列以得到准备好的数据;然后把这样的数据从队列中去除,将设备的上下文更新为当前数据的流的上下文,提取从这样的流中找到的特性。如果没有找到特性,则处理过程等待下一个可得到的分组,否则它触发可以与所触发的特性关联的任何法则。如果法则与动作有关,则处理过程触发有关的动作(例如,加标记,通知主机系统,丢弃或修改分组)。如果主机根据法则应当准许通知,则具有任何相关的信息的消息被传送到主机系统(例如,分组数据或这样的摘要)。[803]是针对本发明的实施例运行的处理过程(当设备在还被称为“工作的”或“在线”的“流-通过”工作模式下运行时)。在这种情形下,处理过程等待在流存储器中的分组被加标记为已处理的,它然后从队列中去除该分组,并根据执行的动作,或者丢弃或者在外出接口上重新发送分组。
图7显示集成电路设备可以具有对网络业务同时运行的多个程序过程。同样地,每个应用可以具有其自己的在法则存储器内的法则。在这个装置[600,601,602,603,604,605,606,607,608,609,610,611,612,613]内模块的操作是与图5相同的,除了主机系统[608]可以经由主机接口装置[606]把模式数据库或法则数据库的更新传送到更新装置以外。更新装置控制在存储器[609,611]内这些更新的管理。替换地,数据库可以经由网络接口模块在基于分组的网络[600]上通过管理协议被更新。在这样的实施例中,每个程序过程可以具有它自己的在模式存储器中的模式数据库和在法则存储器中的法则数据库。这样的数据库可能不必以硬件形式存储在分开的存储器块内,而却可以是在单个数据库内的紧凑的硬件表示。
本发明的某些实施例包括流处理器块 ,它可包含几个流处理器 ,如图10所示。每个流处理器块可包括一个或多个流处理器 。流处理器可以是在作用于分组或分组流上的一系列算术单元中的一个或多个;可被放置在 中的块的几个例子被显示于图11。
图11显示了流处理器的示例性分类法,流处理器包括空处理器 ,其不经修改地把数据输入直接复制到输出;MIME译码器 ,其对MIME编码的数据进行译码;摘要生成器 ,其取得数据流和输出这样的数据的某种子集和摘要(例如,分组报头);Unicode译码器 ,其对于Unicode编码的数据进行译码;XML解析器 ,其按照某些预定的技术规范来解析和译码XML编码的数据;检验和验证器 ,其按照某种预定的技术规范(例如,CRC-32)执行输入数据的检验和运算;解压缩处理器 ,其按照某种预定的算法解压缩输入数据流;URL译码器 ,其译码HTTP编码的URL;分组过滤器 ,其按照某种预定的技术规范(例如,BPF)过滤输入数据;HTTP Cookie处理器 ,其按照HTML或相关的技术规范来解析输入数据和译码流内的Cookie,然后执行某种预定的功能;解密处理器 ,其按照某些预定的技术规范(例如,DES,AES)解密输入数据;和溢出保护器 ,其按照某些预定的算法处理输入数据,以便识别和/或过滤溢出攻击。
正如显示的那样,这些块允许在特性提取装置作用于数据之前完成附加计算。在本发明的一个实施例中,解压缩处理器可作用于流上,以产生现在可被检查的新的流字节组。因为这些块可以在设备的其它逻辑块与装置之间串联地配置,因此,解密块后面可以跟随解压缩块。按照本发明的替换的实施例的方法通过本说明书被提供,并在下面更具体地描述。
按照本发明的、用于执行高吞吐量模式匹配的方法被概述为如下1.提供由正则语言规定的多个模式;2.实施正则语言作为有限自动机,它包括描述有限自动机的转移函数的转移表;3.以压缩形式表示转移表,这样,有限自动机的转移函数能够在例如相对于压缩形式的大小是恒定的预定的(例如,最大)时间内从压缩形式中被计算;
4.存储压缩形式;5.通过根据有限自动机的当前的状态和进入的数据来计算转移函数而对模式进行匹配;以及6.执行其它处理步骤,如希望的那样。
正如所显示的,以上的步骤序列提供了用于通过使用正则语言来进行高吞吐量模式匹配的方法。按照具体的实施例,该方法通过例如使用这里描述的硬件和软件执行高吞吐量模式匹配。也就是说,模式匹配处理和模式的储存可以用在一个或多个附图和说明中描述的硬件和软件特性被实施。高吞吐量模式匹配操作通过使用多个模式的一个或多个模式来执行。模式优选地由被实施为有限自动机的正则语言规定。有限自动机包括正则语言的转移表表示。转移表适合于以压缩形式被存储,该压缩形式被调整,以使得有限自动机的转移函数能够在相对于压缩形式的大小是恒定的预定的时间(例如,最大时间)内从压缩形式中被计算。本方法的另外的细节可以在本说明书中找到,并在下面更具体地描述。
在本发明的一个实施例中,根据当前的状态和进入的数据对有限自动机的下一个状态的计算是与压缩转移表的大小无关的,并且是恒定的。为了达到高吞吐量,这个计算应当占用小于40纳秒。在本发明的另一个实施例中,压缩转移表应当占用小于原始转移表的空间的五分之一。这可以通过使用诸如在以下的专利中描述的那样的压缩技术而达到2003年5月23日提交的、共同转让的、题目为“Apparatus andMethod for Large Hardware Finite State Machine with EmbeddedEquivalence”的美国临时专利60/473,373;和2003年3月12日提交的、共同转让的、题目为“Apparatus and Method for Memory EfficientProgrammable Pattern Matching Finite State Hardware”的美国临时专利60/454,398。替换地,也可以使用对于本领域技术人员明显的、其它类似的技术来减小用于转移表的存储器覆盖区的大小。
本方法的另外的细节按照图12被提供。仅仅作为例子, 显示了用于表示两个示例性模式的正则语言。第一模式表示字符“a”后面跟随零或多个“b”字符,后面跟随字符“c”。第二模式表示文字串“de”。模式通过“|”符号被组合,它表示替换,正如本领域技术人员熟悉的那样。在正则语言表达式的前面的“.*”表示,它可以在给定的数据内的任何地方匹配模式。用于实施由 规定的正则语言的有限自动机被显示于 。为了清晰起见,只显示主要的转移。本领域技术人员将会看到,有限自动机 是由正则语言 规定的模式的实施方案。有限自动机的转移表 表达方式全面地规定自动机内所有的转移。转移表应当被压缩,以便节省存储器,并被使用以针对进入的数据来匹配模式。按照本发明的、用于执行高吞吐量模式匹配的方法在流程图 中被概述。如图所示,流程图包括以下处理过程开始(例如,初始化),通过正则表达式表示模式,实施正则语言为有限自动机,压缩来自有限自动机的转移表,以压缩形式存储(例如,存储器)转移表,和执行模式匹配处理过程。根据实施例,某些步骤可被组合或甚至进一步分开。另外,一个或多个步骤可以被插入或甚至彼此交换。根据实施例,功能可以用软件、硬件或硬件与软件的组合来实施,而不背离这里的权利要求的范围。
按照本发明的、用于把网络系统变换成加速的基于签名的网络系统的方法被概述为如下1.提供网络系统,例如传统的网络,基于IP的网络;2.提供用于高吞吐量的基于签名的网络应用的集成电路设备;3.把集成电路设备连接到网络系统,例如防火墙、网络管理系统、侵入防止系统、路由器、网络交换机、登录系统、网络设备、安全系统、抗病毒系统、抗-垃圾邮件系统、侵入检测系统、内容过滤系统、网络监控系统、文件服务器、邮件服务器、环球网(web)服务器、代理服务器和储存区域网络系统;4.在网络系统上传送帮助在网络系统与设备之间进行通信的所选择的驱动器软件;5.经由网络系统生成的信号初始化设备;6.执行如想要的其它步骤。
在本发明的一个实施例中,该方法包括用所述设备代替网络系统中的一个或多个现有的网络接口卡。如图所示,本发明提供了用于把网络系统变换成加速的基于签名的网络系统的方法。本方法的其它细节按照图13被提供。这个图仅仅是例子,而不应当过分限制这里的权利要求的范围。
优选地,所述方法包括提供网络系统。网络系统具有一个或多个输入端口。主机处理器被耦合到该一个或多个输入端口。主机存储器被耦合到主机处理器。主机接口总线被耦合到主机处理器,以及主机连接器被耦合到主机接口总线。该方法还包括提供用于对网络应用进行高吞吐量模式匹配的集成电路设备。仅仅作为例子,可以使用这里描述的本设备以及其它设备。该方法还包括连接集成电路设备的主机接口连接器区域与网络系统的主机连接器,以便把网络系统的主机接口总线机械地和电气地耦合到集成电路设备的主机接口总线。该方法还把选择的驱动器软件传送到网络系统。优选地,驱动器软件被配置成经由主机接口总线帮助在集成电路设备与网络系统之间进行通信。该方法还经由驱动器软件初始化集成电路设备。一旦设备被合并到联网系统中,就可执行各种方法。在下面以及在本说明书的其它部分更详细地提供了这样的方法的例子。
用于使用按照本发明的集成电路设备的、基于签名的模式识别的方法被概述为如下1.提供用于高吞吐量的基于签名的网络应用的集成电路设备;2.把信息从基于分组的网络传送到设备的网络接口端口;3.把来自网络接口端口的信息通过设备上的网络接口总线进行传送;4.在处理单元处接收来自网络接口总线的信息;5.通过使用处理单元从信息识别在一个或多个分组与流之间的关联性;6.把一个或多个分组放置在一个或多个相应的流中,重新排序弄乱的分组;
7.确定一个或多个相应的流中的一个或多个分组是否与被存储在模式数据库内的模式有关,其中该确定是通过使用具有小于8纳秒的随机访问时间的存储器来执行的;8.如果发生匹配,则发送信号到策略引擎。
如所示那样,本发明包括用于使用集成电路设备的基于签名的模式识别的方法。该方法包括提供用于对网络应用进行高吞吐量模式匹配的集成电路设备。该设备可以是这里描述的那种设备,但根据实施例也可以是其它的设备。该设备经由公共接口总线被合并到预先存在的网络,而不用很大地修改硬件。这里,对于优选实施例,设备仅仅被插入到用于公共接口总线的连接器。所述方法然后把信息通过连接器从基于分组的网络传送到网络接口端口,并且把来自网络接口端口的信息通过网络接口也通过连接器进行传送。该方法在处理单元处接收来自网络接口总线的信息,并且通过使用处理单元从信息中识别在一个或多个分组与流之间的关联性。优选地,该方法重新排序该一个或多个分组成为一个或多个相应的流,并且确定该一个或多个相应的流中的一个或多个分组是否与被存储在通过存储器总线被耦合到处理单元的存储器中的基于签名的模式相关联。在优选实施例中,该确定是通过使用具有小于8纳秒的随机访问时间的存储器来进行的。如果发生关联,则该方法发起一信号到设备的策略引擎。一旦设备被合并到联网系统中,就可执行各种方法。这样的方法的例子在下面以及本说明书的其它部分更详细地提供。在本发明的一个实施例中,用于基于签名的模式识别的方法还需要按照特定的协议来译码重新排序的分组。译码由处理单元执行。诸如 XML解析那样的某些协议显示于图11。
具体的实施例的之前的说明被提供以使得本领域技术人员能够制造或使用本发明。对于这些实施例的各种修改对于本领域技术人员是显而易见的,并且这里规定的通用原理可被应用到其它实施例,而不用使用发明能力。因此,本发明不打算限于这里显示的实施例,而是应当根据与这里公开的原理和新颖性特性一致的最广泛的范围。例如,根据实施例,以上的功能可被组合或进一步分开。也可以添加或去除某些特性。另外,所阐述的特性的特定的次序在某些实施例中不是特别必要的,虽然在其它实施例中可能是重要的。根据实施例,处理过程序列可以用计算机代码和/或硬件来实现。当然,本领域普通技术人员将会认识到许多其它变化、修改和替换。
虽然为了清晰和理解起见,上述的本发明以某种详细程度而被描述,但本领域技术人员将会知道,可以在不背离本发明的范围和精神的条件下对于刚才描述的优选实施例作出各种改变和修改。例如,可以使用其它模式匹配操作,可以使用不同的网络和系统接口,或者可以对于分组处理程序过程作出修改。而且,所描述的本发明的网络处理和模式匹配特性可以在分开的集成电路内,或者在单个集成电路中被实施。本系统也可以应用于各种应用,其中包括侵入检测、侵入防止、防火墙、内容过滤、访问控制、抗病毒、网络监控、业务过滤、垃圾邮件过滤、内容分类、应用-级别交换(switching)、带宽/服务质量管理、监视、和XML环球网服务等。所以,所描述的实施例不应当限于这里给出的细节,而是应当由以下的权利要求和它们的等同物的全部范围所规定。
权利要求
1.一种用于在网络应用中进行高吞吐量模式匹配的集成电路设备,该设备包括刚性支持部件,包括连接器区域,连接器区域包括网络连接区域和主机连接区域,刚性支持部件具有选择的宽度和选择的长度,所述选择的宽度和选择的长度适合于经由连接器区域被耦合到网络系统;一个或多个硬件模块,其被布置在刚性支持部件上且被耦合到刚性支持部件,该一个或多个硬件模块包括被耦合到刚性支持部件的网络接口模块,该网络接口模块包括一个或多个网络接口端口;被耦合到刚性支持部件的网络接口总线,该网络接口总线适合于接口到网络接口模块;被耦合到刚性支持部件的网络模块,该网络模块被耦合到网络接口总线;被耦合到刚性支持部件的网络事件模块,该网络事件模块被耦合到网络模块;被耦合到刚性支持部件的存储器模块,存储器模块被耦合到网络事件模块和网络模块,存储器模块包括模式存储器,该模式存储器与多个预先存储的模式有关;被耦合到刚性支持部件的主机接口模块,主机接口模块被耦合到至少网络事件模块或至少网络模块或网络事件模块与网络模块二者;以及被耦合到刚性支持部件的主机接口总线,主机接口总线被耦合到主机接口模块。
2.权利要求1的设备,其中网络模块、网络接口模块、网络事件模块和主机接口模块在单个集成电路上提供。
3.权利要求2的设备,其中单个集成电路是网络处理单元(NPU)。
4.权利要求2的设备,其中单个集成电路是可重新配置的逻辑电路。
5.权利要求2的设备,其中单个集成电路是专用集成电路。
6.权利要求4的设备,其中可重新配置的逻辑电路是现场可编程门阵列(FPGA)。
7.权利要求1的设备,其中网络接口模块包括媒体访问控制层和物理访问层。
8.权利要求1的设备,其中集成电路设备是多流集成电路设备,多流集成电路设备同时对一个或多个数据流进行操作。
9.权利要求1的设备,其中刚性支持部件是从至少印刷电路板(PCB)、硅基片、和集成电路封装中选择的。
10.权利要求1的设备,其中网络模块包括流分类装置,该流分类装置被耦合到一个或多个进入网络端口;该流分类装置能够识别一个或多个分组;该一个或多个分组处在第一序列中;以及从多个流中识别该一个或多个分组所属于的流;以及流装配器装置,该流装配器装置被耦合到流分类装置;该流装配器装置能够把所述一个或多个分组重新排序为第二序列;该第二序列是由流确定的预定的序列。
11.权利要求10的设备,其中网络模块还包括协议译码器;该协议译码器被耦合到流装配器装置;该协议译码器适合于识别在预定的序列中的一个或多个分组,以及还适合于按照一个或多个协议定义处理在预定的序列中的一个或多个分组,以提供来自该一个或多个分组的有效负荷信息。
12.权利要求11的设备,其中网络模块还包括流后处理器;该流后处理器被耦合到网络事件模块;该流后处理器识别在一个或多个分组之间的关联性;流后处理器适合于通过使用这种关联性从多个流后处理算法中的一个或多个流后处理算法中进行选择;该一个或多个流后处理算法对于多个分组中的一个或多个分组而被执行。
13.权利要求1的设备,其中基于分组的网络是互联网协议(IP)网络。
14.权利要求1的设备,其中基于分组的网络是异步传输模式(ATM)网络。
15.权利要求12的设备,还包括被耦合到刚性支持部件的更新模块,该更新模块适合于更新多个预先存储的模式和多个预先存储的法则;所更新的模式和法则包括至少一个新的模式或至少一个新的法则。
16.权利要求15的设备,其中在模式匹配引擎是可操作的同时更新模块是可操作的。
17.权利要求15的设备,其中更新模块适合于更新多个预先存储的协议定义;更新的协议定义包括至少一个新的协议定义。
18.权利要求17的设备,其中在协议译码器是可操作的同时更新模块是可操作的。
19.权利要求1的设备,其中,存储器模块还包括特性存储器,该特性存储器与多个预先存储的特性有关;法则存储器,该法则存储器与多个预先存储的法则有关;网络事件模块包括特性提取装置,该特性提取装置被耦合到网络模块和存储器模块;该特性提取装置能够按照特性提取算法识别特性关联性;特性提取算法按照某种预定的功能根据对一个或多个分组的检查来识别特性关联性;特性关联性标识多个预先存储的特性中的一个或多个特性;预先存储的特性被存储在特性存储器中;策略装置,策略装置被耦合到特性提取装置和存储器模块;该策略装置按照策略算法根据由特性提取装置识别的特性关联性识别法则关联性,策略算法按照某种预定的功能通过检查特性关联性来识别法则关联性,法则关联性标识多个预先存储的法则中的一个或多个法则;预先存储的法则被存储在法则存储器中。
20.权利要求19的设备,其中特性提取算法是模式匹配操作;预先存储的特性是多个预先存储的模式中的一个或多个模式;预先存储的模式由模式存储器提供;模式存储器由存储器模块提供。
21.权利要求20的设备,其中预先存储的模式包括一个或多个正则表达式。
22.权利要求20的设备,其中预先存储的模式包括一个或多个n-gram表达式,n-gram表达式是码元的元组。
23.权利要求20的设备,其中特性提取算法是用于至少一个或多个预定的存储的模式的近似模式匹配处理过程。
24.权利要求23的设备,其中近似模式匹配处理过程是针对从至少以下文件中所选择的文件来执行的文本数据文件、文本数据流、二进制数据文件、二进制数据流、音频数据流、音频数据文件、视频数据流、视频数据文件、多媒体数据流、和多媒体数据文件。
25.权利要求23的设备,其中在近似模式匹配处理过程中近似的度量是编辑距离;编辑距离是精确匹配于模式所需要的插入、删除或替换的数目。
26.权利要求23的设备,其中在近似模式匹配处理过程中近似的度量与人的感知有关。
27.权利要求19的设备,其中识别的法则关联性表示动作,该动作改变设备的状态。
28.权利要求27的设备,其中所述动作使能从法则存储器中的预定的法则里选择一个或多个法则,该使能经过预定的时间量。
29.权利要求1的设备,其中更新模块被耦合到刚性支持部件,该更新模块被耦合到存储器模块,该更新模块提供数据库管理器,数据库管理器被配置成能够更新存储器模块内的多个存储器中的一个或多个存储器。
30.权利要求29的设备,其中更新模块还包括鉴权装置;鉴权装置适合于提供对被提供给更新模块的更新的密码鉴权。
31.权利要求20的设备,其中预先存储的模式包括一个或多个时间正则表达式。
32.权利要求19的设备,其中一个或多个预先存储的法则与计数部件有关;计数部件包括计数器和阈值;阈值与计数器的数值进行比较。
33.权利要求19的设备,其中一个或多个预先存储的法则与时间分量有关。
34.权利要求33的设备,其中时间分量是从至少时间量、绝对时间、无限大、和零中选择的。
35.权利要求34的设备,其中时间分量与计数部件有关;计数部件包括计数器和阈值;阈值与计数器进行比较;组合的时间分量和计数器部件规定改变速率。
36.权利要求19的设备,其中策略装置被耦合到主机接口装置,策略装置把识别的法则关联性通知主机接口装置。
37.权利要求1的设备,其中存储器模块包括从至少以下装置中所选择的一个或多个存储器装置随机访问存储器(RAM)、包括三态内容可寻址存储器(TCAM)的内容可寻址存储器(CAM)、以及一个或多个RAM与一个或多个CAM的组合。
38.权利要求1的设备,其中一个或多个外出网络接口端口是响应端口;响应端口被用来通过信号帮助到远程网络系统的通信。
39.权利要求38的设备,其中远程网络系统是从至少防火墙、网络管理系统、侵入防止系统、路由器、网络交换机、和登录系统中选择的。
40.权利要求38的设备,其中信号可包括多个消息中的一个或多个消息。
41.权利要求40的设备,其中多个消息中的一个或多个消息包括从至少以下消息中所选择的一个或多个消息访问控制表更新消息;审查消息;事件消息;报警消息;状态消息;询问消息;更新消息;管理消息;错误消息;以及警告消息。
42.权利要求1的设备,其中一个或多个网络端口是管理端口。
43.权利要求42的设备,其中管理端口允许对装置进行配置。
44.权利要求11的设备,其中流是双向流。
45.权利要求1的设备,其中在模式存储器中的预先存储的模式包括一个或多个Berkeley分组过滤器(BPF)模式或BPF衍生物。
46.权利要求1的设备,其中在模式存储器中的预先存储的模式包括一个或多个Berkeley分组过滤器加(BPF+)模式。
47.权利要求1的设备,其中在模式存储器中的预先存储的模式包括一个或多个预先存储模式子集;该一个或多个预先存储模式子集与一个或多个分组流有关。
48.权利要求15的设备,其中更新模块被耦合到管理端口;管理端口被耦合到网络接口端口。
49.权利要求1的设备,还包括被耦合到刚性支持部件的多个流处理块中的一个或多个流处理块;流处理块包括多个流处理器中的一个或多个流处理器,其中每个流处理器的特征在于基于至少输入数据序列的预定的功能;每个流处理器的特征还在于,提供输出数据序列;输出数据序列是按照预定的算法被提供的;以及预定的算法是由每个流处理器的预定的功能所提供的。
50.权利要求49的设备,其中用于每个流处理器的预定的功能是可通过软件编程的。
51.权利要求49的设备,其中流处理块在网络模块内被提供。
52.权利要求49的设备,其中流处理器可以从包括以下部件的一个或多个处理过程中被选择空流处理器,该空流处理器具有预定的功能,其中输出数据序列等于输入数据序列;解压缩处理器,该解压缩处理器具有预定的功能,其中输出数据序列典型地大于输入数据序列,以及表示有某种特定的原始大小和条件的数据序列;译码器,该译码器具有预定的功能,其中输出数据序列按照预定的功能由输入数据序列所确定;解析器,该解析器具有预定的功能,其中输出数据序列按照预定的技术规范从输入数据序列中得出;解密处理器,该解密处理器具有预定的功能,其中输出数据序列按照预定的功能由输入数据序列所确定;摘要生成器,该摘要生成器具有预定的功能,其中输入数据序列的概要按照预定的功能被生成;检验和处理器/验证器,该检验和处理器或验证器具有预定的功能,其中输入数据序列针对正确性而被检验;循环冗余检验和(CRC)处理器/验证器,该CRC处理器或验证器具有预定的功能,其中输入数据序列按照循环冗余检验和算法而被检验用于进行纠正;以及过滤器;过滤器具有预定的功能,其中输出数据序列是缩减的输入数据序列组。
53.权利要求1的设备,其中网络应用包括一个或多个安全应用。
54.权利要求1的设备,其中所述应用是在从以下项中所选择的一个或多个应用中提供的侵入检测;侵入防止;防火墙;内容过滤;访问控制;抗病毒;网络监控;业务过滤;垃圾邮件过滤;内容分类;应用-级别交换;带宽/服务质量管理;监视;和XML环球网服务。
55.权利要求1的设备,其中网络系统是一个或多个网络设备,该一个或多个网络设备是从以下项中选择的防火墙;网络管理系统;侵入防止系统;路由器;网络交换机;登录系统;网络设备;安全系统;抗病毒系统;抗垃圾邮件系统;侵入检测系统;内容过滤系统;网络监控系统;文件服务器;邮件服务器;环球网服务器;代理服务器;以及储存区域网络系统。
56.权利要求1的设备,其中主机接口是从以下项中选择的外围部件接口总线(PCI);紧凑的外围部件接口总线(compact PCI);外围部件接口x总线(PCI-X);外围部件接口快速总线(PCI-express);通用串行总线(USB);小型计算机系统接口(SCSI);以及ISA总线。
57.权利要求12的设备,还包括被耦合到刚性支持部件的去分段装置,该去分段装置由网络模块提供,该去分段装置被耦合到一个或多个进入网络端口;流分类装置被耦合到去分段引擎;去分段引擎按照某种预定的技术规范把一个或多个分段的输入分组装配成整个未分段的输出分组;去分段引擎把这样的整个未分段的输出分组传递到协议译码器的输入。
58.权利要求57的设备,其中预定的技术规范是互联网协议技术规范。
59.权利要求1的设备,其中基于签名的模式是从多个模式里的一个或多个模式中选择的,模式是按照从以下语言中所选择的语言而被定义的正则语言;时间正则语言;Berkeley分组过滤器语言;Linux分组过滤器语言;近似模式语言;以及Perl可兼容正则表达语言。
60.一种用于执行高吞吐量模式匹配的方法,其中高吞吐量模式匹配操作是通过使用多个模式中的一个或多个模式来执行的;模式由正则语言来定义;正则语言被实现为有限自动机;有限自动机包括正则语言的转移表表示,转移表描述用于有限自动机的转移函数;转移表适合于以压缩形式而被存储;压缩形式被调整以使得有限自动机的转移函数能够在相对于压缩形式的大小为恒定的最大时间内从压缩形式中被计算。
61.权利要求1的设备,其中预先存储的模式由正则语言定义;正则语言由有限自动机来实现;有限自动机包括正则语言的转移表表示,转移表描述用于有限自动机的转移函数;转移表适合于以压缩形式被存储;压缩形式被调整以使得有限自动机的转移函数在相对于压缩形式的大小为恒定的最大时间内从压缩形式中被计算。
62.一种用于执行高吞吐量模式匹配的设备,其中高吞吐量模式匹配操作是通过使用多个模式中的一个或多个模式执行的;模式由正则语言定义;正则语言被实现为有限自动机;有限自动机包括正则语言的转移表表示,转移表描述用于有限自动机的转移函数;其中模式被表示为单个模式数据库;该单个模式数据库包括来自多个应用中的一个或多个应用的模式;模式匹配操作能够从匹配的模式中唯一地识别应用。
63.权利要求1的设备,其中预先存储的模式被表示为单个模式数据库;该单个模式数据库包括来自多个应用中的一个或多个应用的模式;模式匹配操作能够从匹配的模式中唯一地识别应用。
64.一种用于把网络系统变换成加速的、基于签名的网络系统的方法,该方法包括提供网络系统,该网络系统包括一个或多个输入端口;被耦合到一个或多个输入端口的主机处理器;被耦合到主机处理器的主机存储器;被耦合到主机处理器的主机接口总线;以及被耦合到主机接口总线的主机连接器;提供用于对于网络应用进行高吞吐量模式匹配的集成电路设备,该设备包括刚性支持部件,包括连接器区域,连接器区域包括网络连接区域和主机连接区域,刚性支持部件具有选择的宽度和选择的长度,选择的宽度和选择的长度适合于经由连接器区域被耦合到网络系统;一个或多个硬件模块被布置在刚性支持部件上且被耦合到刚性支持部件,该一个或多个硬件模块包括被耦合到刚性支持部件的网络接口模块,该网络接口模块包括一个或多个网络接口端口,该一个或多个网络接口端口经由连接器区域被耦合到基于分组的网络;被耦合到刚性支持部件的网络接口总线,该网络接口总线适合于把网络接口模块接口到网络模块;被耦合到刚性支持部件的网络模块,该网络模块被耦合到网络接口总线;被耦合到刚性支持部件的网络事件模块,该网络事件模块被耦合到网络模块;被耦合到刚性支持部件的存储器模块,该存储器模块被耦合到网络事件模块和网络模块,该存储器模块包括模式存储器,该模式存储器与多个预先存储的模式有关;被耦合到刚性支持部件的主机接口模块,该主机接口模块被耦合到网络事件模块和/或网络模块;被耦合到刚性支持部件的主机接口总线,该主机接口总线被耦合到主机接口模块,该主机接口总线能够经由连接器区域连接到主机系统;把集成电路设备的主机接口连接器区域与网络系统上的主机连接器相连接,以使得将网络系统的主机接口总线机械地和电气地耦合到集成电路设备的主机接口总线;把选择的驱动器软件传送到网络系统,该驱动器软件被配置成通过主机接口总线来帮助进行在集成电路设备与网络系统之间的通信;以及通过驱动器软件来初始化集成电路设备。
65.权利要求64的设备,其中集成电路设备的初始化包括把多个预先存储的模式中的一个或多个模式从网络系统传送到集成电路设备。
66.权利要求65的设备,其中集成电路设备的初始化还包括把多个预先存储的协议定义中的一个或多个协议定义从网络系统传送到集成电路设备。
67.权利要求65的设备,其中集成电路设备的初始化还包括把多个预先存储的法则中的一个或多个法则从网络系统传送到集成电路设备。
68.一种用于使用集成电路设备的基于签名的模式识别的方法,该方法包括提供用于对于网络应用进行高吞吐量模式匹配的集成电路设备,该设备包括刚性支持部件,包括连接器区域,连接器区域包括网络连接区域和主机连接区域,刚性支持部件具有选择的宽度和选择的长度,选择的宽度和选择的长度适合于经由连接器区域被耦合到网络系统;一个或多个硬件模块,被布置在刚性支持部件上且被耦合到刚性支持部件,该一个或多个硬件模块包括被耦合到刚性支持部件的网络接口模块,该网络接口模块包括一个或多个网络接口端口,该一个或多个网络接口端口经由连接器区域被耦合到基于分组的网络;被耦合到刚性支持部件的网络接口总线,该网络接口总线适合于把网络接口模块接口到网络模块;被耦合到刚性支持部件的网络模块,该网络模块被耦合到网络接口总线;被耦合到刚性支持部件的网络事件模块,该网络事件模块被耦合到网络模块;被耦合到刚性支持部件的存储器模块,该存储器模块被耦合到网络事件模块和网络模块,该存储器模块包括模式存储器,该模式存储器与多个预先存储的模式有关;被耦合到刚性支持部件的主机接口模块,该主机接口模块被耦合到网络事件模块和/或网络模块;被耦合到刚性支持部件的主机接口总线,该主机接口总线被耦合到主机接口模块,该主机接口总线能够经由连接器区域连接到主机系统;把信息从基于分组的网络传送到网络接口端口;通过网络接口总线传送来自网络接口端口的信息;在处理单元处接收来自网络接口总线的信息;通过使用处理单元从信息中识别在一个或多个分组与流之间的关联性;把一个或多个分组重新排序成一个或多个相应的流;确定一个或多个相应的流中的一个或多个分组是否与被存储在通过存储器总线而被耦合到处理单元的存储器中的基于签名的模式相关,其中所述确定是通过使用具有小于8纳秒的随机访问时间的存储器来执行的;以及如果出现关联性,则发起信号到策略引擎。
69.权利要求68的方法,还包括按照多个预定的协议定义中的一个或多个协议定义对来自处理单元的重新排序的流进行译码,预定的协议定义,该译码处理过程适合于从重新排序的流中提取感兴趣的突出特性。
全文摘要
一种允许对于基于签名的网络应用有显著的性能改进的集成电路设备的结构和方法。在各种实施例中,该结构允许以线速度同时进行把分组高吞吐量地分类成网络流,对这种流进行分组重新装配,对这种流进行过滤和预处理,对这种流的报头和有效负荷内容进行模式匹配,和根据用于多个网络应用的基于法则的策略来进行动作执行。与现有技术设计相比,本发明在性能、灵活性和模式数据库大小上被改进。
文档编号G06FGK1836245SQ200480023086
公开日2006年9月20日 申请日期2004年8月12日 优先权日2003年8月13日
发明者罗伯特·M.·巴里, 斯蒂芬·古尔德, 达林·威廉斯, 尼古拉斯·德琼 申请人:感测网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1