有效率的多个过滤器包统计生成的制作方法

文档序号:6351494阅读:200来源:国知局
专利名称:有效率的多个过滤器包统计生成的制作方法
有效率的多个过滤器包统计生成
背景技术
联网时,计算机通过经由设计用于联网目的的共享信道发送和接收信息而彼此通信。网络接口卡(NIC)-其是安装在计算机上的硬件装置,是用来实现联网并且用来支持由计算机用户维持的联网偏好设定。例如,NIC用于将称为MAC(媒体访问控制)的唯一地址分配到将所述NIC安装在其上的计算机。NIC还包括集线器或交换器,所述集线器或交换器行为表现为使用MAC地址在计算机之间传递信息的中继器。NIC被计算机用于接收输入数据流。由于多数操作系统包括用于读取所有到NIC的包的一般实用程序,所以计算机通常使用这种一般实用程序来操作所安装的NIC。应用程序通常通过使用如在操作系统中提供的一般实用程序,或通过使用相似实用程序来并入这种实用程序。在这种背景下,输入数据流的典型处理将包括接收包,检查所述包和维护具有关于所述包的信息的某些主内存数据结构。图I示出这种处理。在图I中,具有多个中央处理单元的计算机110接收三个满包数据流120a、120b和120c,使用三个不同进程(进程I (140a)、进程II (140b)和进程III (140c))处理所述满包数据流120a、120b和120c。三个进程140a、进程140b和进程140c是独立的进程。存在若干与现有技术架构相关的缺点。首先,存在起因于运行一个以上全孔网络接口包捕获进程的低效率。例如,需要大量的计算机处理资源来处理这类流。如果每个进程是单独的,那么需要计算机资源迅速地增大到无法运行多个应用程序的点。第二个缺点源自将主内存数据结构转储到磁盘文件的需要。在转储过程期间,包可能丢失并且应用程序不对其计数。当监视输入数据时,这些缺点会由于当多个独立进程和应用程序同时在计算机上运行时需要大量资源来监视数据而造成诸多问题。因此,期望有一种增强数据监视能力并且有效捕获和处理包流,同时减少丢失的数据,硬件/软件成本、操作成本和网络成本的计算机架构。发明概述本发明的实施方案提供用于通过增强数据监视能力,同时减少硬件/软件成本、操作成本和网络成本而有效管理数据流的技术。通过提供一种将每个使用高速包捕获和过滤的至少两个不同应用程序组合到一个机器中的机构管理数据流。在本发明的实施方案中,一个机器上的软件进程和线程经过架构使得引入经由共享内存通信的两个单独进程。第一进程处理与网络对接的所有包并且第二进程处理统计到磁盘文件的保存。因此,虽然第二进程将统计转储到磁盘文件,但是第一进程仍捕获包并且将其放在缓冲器中以供稍后检查。第一进程和第二进程是异步的。此外,对于每个应用程序,第一进程可具有独立的缓冲器。共享内存可为消息队列。根据本发明的实施方案,一种用于管理数据流的方法包括在至少一个网络接口卡上接收数据流和使用运行用于每个网络接口卡的若干第一线程的第一进程对所述数据流 执行操作。使用运行若干第一线程的第一进程执行的操作包括生成所述数据流的多个拷贝;将所述数据流的多个拷贝分布在由第一进程使用的多个缓冲器当中;和将每个所述数据流的多个拷贝的一部分存储在共享内存中。所述方法还包括使用每个具有选用组第二线程的至少一组第二多个程序对所述数据流中经过处理的部分执行附加操作。所述附加操作包括从要由第二进程使用的共享内存中读取数据,所述第二进程可执行内存区间分析以生成统计,并且将所述统计周期性地保存到区间文件。所述第一进程和所述一组或多组第二多个进程是独立的并且经由所述共享内存通信。所述每个网络接口卡的第一线程可不同于第二线程组。
每个所述数据流的多个拷贝可存储在单独一个的所述多个缓冲器中。此外,可将所述数据流的多个拷贝的每个部分存储在单独共享内存中。根据本发明的另一实施方案,一种用于管理数据流的系统包括至少一个网络接口卡,其接收数据流;和第一处理器,其耦合到至少一个所述网络接口卡并且将所述数据流分布在一个或多个缓冲器当中。所述第一处理器被配置来运行使用用于每个网络接口卡的一个或多个第一线程的第一进程。所述一个或多个第一线程访问存储在所述一个或多个缓冲器中的数据、处理所述访问的数据并且将所述经过处理的数据存储在一个或多个共享内存中。所述一个或多个第一线程可为了特定特征而过滤从所述一个或多个缓冲器中访问的数据,并且将具有特定特征的数据保存在特定共享内存中。所述第一处理器可分布由所述网络卡接收的数据流的拷贝并且将所述拷贝存储在所述缓冲器之一中。所述系统还包括从所述共享内存中读取数据的至少一组第二多个进程。所述至少一组第二多个进程每个均可使用选用组的第二线程。所述组的第二线程可用于分析数据以生成内存中区间统计,并且将所述统计周期性地保存到区间文件。所述共享内存可为队列。所述第一进程和所述一组或多组第二多个进程是独立的并且经由所述共享内存而通信。从后文提供的详述中本公开的适用性的其它领域将变得显而易知。应当了解希望详述和特定实施例在指示各种实施方案时仅为了阐释目的,并且不希望必定限制本公开的范畴。附图
简述可以参考下文呈现的说明书和图示的剩余部分领悟对本发明的特性和优点的深入了解。图示被并入本发明的详述部分中。图I是示出用于接收计算机系统中的包并且为所述包定路径的现有技术架构的方框图。图2是示出根据本发明的实施方案的用于使用两个进程接收计算机系统中的包并且为所述包定路径的架构的方框图。图3是示出根据本发明的实施方案的用于分类/合并/聚集数据的架构的方框图。图4是示出根据本发明的实施方案的用于管理数据流的方法的流程图。图5是示出根据本发明的实施方案的来自图4的操作410的其它详情的流程图。图6是示出根据本发明的实施方案的来自图4的操作415的其它详情的流程图。图7是示出根据本发明的实施方案的管理数据流的方法的流程图。图8是示出根据本发明的实施方案的管理数据的方法的流程图。
具体实施方案
在下文描述中,为了说明目的,陈述特定详情以提供对本发明的彻底了解。然而,将显而易知的是可以在没有这些特定详情的情况下实践本发明。本发明的实施方案提供用于通过增强数据监视能力,同时减少硬件/软件成本、操作成本和网络成本而有效管理数据流的系统和方法。监视是通过将使用高速包捕获和过滤的至少两种不同应用程序组合到一个机器中而得到增强。本发明通过提供一种系统和方法而减少这些成本,所述系统和方法有效管理通过网络接口卡到达机器的数据流。本发明在具有多核心(例如,八个核心)的机器中特别有用,因为其通过一个核心实现数据的有效处理而不会使其它核心变慢或关闭。此外,本发明增强所有产品的监视能力。在本发明的实施方案中,一个机器上的软件进程和线程经过架构使得引入经由共享内存(例如消息队列)通信的两个单独进程。第一进程处理与网络对接的所有数据包,而且第二进程分析数据包且生成统计。使用第一进程处理与网络对接的所有数据包,消除维护每个应用程序的多个接口的额外开销。随着第一进程捕获数据包并且将其保存在缓冲器中以供稍后检查,第二进程编译关于数据包的统计并且将这些统计保存到磁盘文件,而不使第一进程变慢。第一进程和第二进程经由共享内存(例如队列)通信。此外,对于每个应用程序,第一进程可具有独立的缓冲器。这种架构消除或减少了丢失的包的数目。本发明的实施方案可以用硬件、软件或其组合实施。可以将本发明的组件并成独立系统,所述独立系统被配置来处理用于使用至少一个网络接口卡(NIC)进行处理的信息。还可以将本发明的组件并入一个或多个系统(其可以是分布式的)中,使所述系统或多个系统能够接收和处理从网络中接收用于使用NIC进行处理的信息。例如,可将本发明的一个实施方案并入网络装置(例如交换器或路由器)中,从而使所述网络装置能够使用NIC接收和处理IP地址。图2是示出用于使用两个进程而接收计算机系统中的包并且为所述包定路径的架构的方框图。所述架构包括通过共享内存215a、215b和215c而彼此通信的第一进程205和第二进程210。虽然图3示出了三个共享内存215a、215b和215c,但是共享内存的数目可为N,其中N是大于或等于I的有限整数。第一进程205接收满包数据流220并且通过包分布模块225分布数据流220。数据流220被分布到可为了特定目的,例如存储不同数据类型而配置的一个或多个包缓冲器230a、230b和230c。例如,图2示出指定为“类型A包缓冲器” 230a、“类型B包缓冲器” 230b和“类型C包缓冲器” 230c的三个包缓冲器。包缓冲器230a、230b和230c每个可专用于仅存储识别为类型A、类型B和类型C的数据流220的部分。包分布模块225将输入满包数据流解析成类型A、类型B和类型C并且将数据推送到适当的包缓冲器230a、230b和230c。在替代实施方案中类型A包缓冲器230a、类型B包缓冲器230b和类型C包缓冲器230c每个可用于存储相同信息,在这种情况下,包分布模块225将相同数据推送到每个包缓冲器230a、230b和230c。过滤器235a、235b和235c每个用于分别从包缓冲器230a、230b和230c中拉取数据。然后,拉取的数据被过滤成特定类型的数据以使之通过。例如,类型A过滤器235a可过滤数据使得仅仅拉取类型A数据。相似地,类型B过滤器235b可过滤数据,使得仅拉取 类型B数据并且类型C过滤器235c可过滤数据使得仅仅拉取类型C数据。一旦数据已被过滤器235a、235b和235c拉取和过滤,过滤的数据就被推送到共享内存215a、215b和215c中。共享内存可包括单独的共享内存215a、215b和215c,其每个用于存储已被过滤器235a、235b和235c过滤的数据。因此,共享内存215a存储已被“类型A过滤器” 235a推送到其上的类型A数据。相似地,共享内存215b存储已被“类型B过滤器” 235b推送到其上的类型B数据,并且共享内存215c存储已被“类型C过滤器” 235c推送到其上的类型C数据。第 二进程210从共享内存215a、215b和215c中拉取数据,处理这个数据并且将经过处理的数据周期性地转储到文件中。第二进程210包括第一子处理模块240a,其从共享内存215a中拉取数据;第二子处理模块240b,其从共享内存215b中拉取数据;和第三子处理模块240c,其从共享内存215c中拉取数据。子处理模块240a包括类型A模块245a,其用于处理从含有类型A数据的共享内存215a中拉取的类型A数据;和内存中区间统计模块250a,其用于对经过处理的类型A数据执行统计分析。子处理模块240b包括类型B模块245b,其处理从含有类型B数据的共享内存215b中拉取的类型B数据;和内存中区间统计模块250b,其用于对经过处理的类型B数据执行统计分析。子处理模块240c包括类型C模块245c,其处理从含有类型C数据的共享内存215c中拉取的类型C数据;和内存中区间统计模块250c,其用于对经过处理的类型C数据执行统计分析。如下文参考图3另作说明,在由子处理模块240a、240b和240c处理数据后,将经过处理的数据周期性地转储到文件。在图2中示出的架构可用于一个具有多个中央处理单元(CPU)的计算机。第一进程205可运行具有用于类型A、类型B和类型C的不同子线程的单个进程I。第二进程210还可以运行具有用于类型A、类型B和类型C的不同子线程的单个进程II。在一个实施方案中,第一进程205对数据流执行操作,在一个或多个网络接口卡上使用运行用于每个网络接口卡的至少一个子线程的第一进程接收所述数据流。接收的数据的部分分布在包缓冲器230a、230b和230c当中以由至少一个或多个子线程来处理。然后,用专用第一进程子线程(其是所述至少一个或多个子线程之一)处理存储在包缓冲器230a、230b和230c中的数据的部分。然后,将数据的处理部分存储在共享内存215a、215b和215c中。然后,第二进程210使用每个具有选用组第二线程的至少一组第二多个子进程240a、240b和240c对数据流中经过处理的部分执行操作。然后,第二多个子进程240a、240b和240c从各自共享内存215a、215b和215c中拉取数据,并且用专用第二进程线程处理每个数据中经过处理的部分。第一进程和一组或多组第二多个子进程是独立的并且经由共享内存通信。此外,每个网络接口卡的子线程可不同于选用组的第二线程。图2还示出机器上的软件进程和线程如何被架构使得引入经由共享内存(例如消息队列)通信的两个单独进程。第一进程处理与网络对接的所有数据包,并且第二进程分析数据包和生成统计。使用第一进程处理与网络对接的所有数据包,消除维护每个应用程序的多个接口的巨大额外开销。随着第一进程捕获数据包并且将其保存在缓冲器中以供稍后检查,第二进程编译关于数据包的统计并且将这些统计保存到磁盘文件,而不使第一进程变慢。第一进程和第二进程经由共享内存(例如队列)通信。此外,对于每个应用程序,第一进程可具有独立的缓冲器。这种架构消除或减少了丢失的包的数目。图3是示出用于分类/合并/聚集数据的架构的方框图,由子处理模块240a、240b和240c将所述数据周期性地转储到文件。图3示出分别周期性地转储到区间文件305a、305b和305c的类型A数据、类型B数据和类型C数据。然后,分类/合并/聚集处理模块310a拉取存储在区间文件305a中的数据,处理数据使得所述数据被分类/被合并/被聚集,并且然后将经过分类/合并/聚集的数据推送到存储其的分类/合并/聚集文件315a。分类/合并/聚集处理模块310a可执行任何或所有的分类、合并或聚集功能以及其它功能。相似地,分类/合并/聚集处理模块310b和310c还分别拉取存储在区间文件305b和305c中的数据,处理数据使得所述数据被分类/合并/聚集,并且然后将经过分类/合并/聚集的数据推送到存储其的分类/合并/聚集的文件315b和315c。分类/合并/聚集处理模块310b和310c还可执行任何或所有的分类、合并或聚集功能以及其它功能。然后,文件传送环320a从分类/合并/聚集的文件315a中拉取数据并且将拉取的数据推出以供另外处理。相似地,文件传送环320b和320c还分别从分类/合并/聚集的文件315b和315c中拉取数据并且将拉取的数据推出以供另外处理。
图4示出根据本发明的实施方案的管理数据流的方法的流程图。所述方法开始于其中至少一个网络接口卡接收数据流的操作405。在410中运行每个网络接口卡的多个第一线程的第一进程处理数据流。下文参考图5详细讨论在操作410中执行的处理。然后在步骤415中,使用至少一组第二多个进程再次处理数据流中经过处理的部分,其中每个进程具有选用组的第二线程。下文参考图6详细讨论在操作415中执行的处理。第一进程和一组或多组第二多个进程是独立的并且经由共享内存通信。此外,用于每个网络接口卡的子线程可不同于所述组的第二线程。图5是示出根据本发明的实施方案的来自图4且用于管理数据流的操作410的另外详情的流程图。在操作505中,将接收的数据流的多个部分分布在多个缓冲器当中并且存储在所述缓冲器中以由第一线程来处理。在某些实施方案中,将数据流的每个部分存储在多个缓冲器的单独一个中。在其它实施方案中,将相同数据流的副本存储在每个多个缓冲器中。然后在操作510中,使用专用第一进程线程读取存储在每个缓冲器中的数据。专用第一进程线程是选自所述组的第一线程。在操作515中,使用相同的专用第一进程线程过滤从缓冲器中读取的数据以生成数据流的经处理部分。在操作520中,可使用相同组的进程线程再次处理经过过滤的数据。然后在操作525中,将每个数据流中经过处理的部分存储在专用的共享内存之一中。在某些实施方案中,数据流中每个经过处理的部分存储在单独的共享内存中。或者,可使用不同的专用第一进程线程读取、过滤和处理数据。图6是示出根据本发明的实施方案的来自图4且用于管理数据流的操作415的另外详情的流程图。在操作605中,用专用第二进程线程读取在操作525期间存储在专用共享内存之一中的数据流中经过处理的部分。所述专用第二进程线程是来自第二过程进程线程组组的线程之一。然后在操作610中,对读取的数据执行统计分析。可用相同的专用第二进程线程或用来自第二过程进程线程组组的另一线程执行统计分析。统计分析还生成统计数据。在操作615中,将统计数据周期性地保存到区间文件。将统计数据周期性地保存到文件可由用户配置或可例如每天一次或每小时一次。在另一实施方案中,当统计数据的大小达到某个阀值时,统计数据可周期性地保存到区间文件。在参考图5-6描述的实施方案中,每个具有选用组第二线程的第一进程和一组或多组第二多个进程是独立的并且经由共享内存而彼此通信。每个网络接口卡的第一线程组可不同于选用组的第二线程。在某些实施方案中,第一进程和一组或多组第二多个子进程是异步的。图7是示出根据本发明的实施方案的管理数据流的另一方法的流程图。所述方法开始于至少一个网络接口卡接收数据流的步骤705。在操作710中,生成接收的数据流的多个拷贝。然后在操作715中,将数据流的多个拷贝分布到多个缓冲器。然后,读取多个缓冲器并且使用运行每个网络接口卡的多个第一线程的第一进程处理数据。使用相同第一线程过滤从缓冲器中读取的数据以生成数据流的经过处理的部分。如果若干线程正同时运行,那么来自每个所述多个缓冲器的数据可由每个线程读取,并且然后由每个线程过滤使得每个线程仅允许通过特定类型的数据。这种过滤进程可用于解析数据流使得每个线程仅处理特定类型的数据。然后在操作720中,将数据流中经过处理的部分存储在专用共享内存之一中。由于每个线程滤出不同类型的数据,所以多个共享内存每个可用于存储为原始数据流的所有部分的特定类型的数据。用于读取和过滤特定类型的数据的线程可专用于特定类型的数据。例如,一个线程可用于读取数据,过滤类型A数据的数据,并且将类型A数据存储在共享内存中。相似地,另一线程可用于读取数据,过滤类型B数据的数据,并且将类型B数据存储在共享内存中。这种情况可被一般化使得N个线程(其中N是大于或等于I的有限整数)可用于读取数据,过滤N种类型的数据的数据,并且将N种类型的数据存储在共享内存中。在操作725中,使用每个具有选用组第二线程的至少一组第二多个子进程读取存储在共享内存中的数据流的经过处理的部分。可用不同于第二线程的线程或专用线程读取每个共享内存。然后在操作730中,对从共享内存中读取的数据流的部分执行统计分析。可用用于从共享内存中读取数据的相同线程或用来自第二进程线程组的另一线程完成统计分析。用于读取和/或分析存储在特定共享内存中的数据的线程可为专用的第二进程线程。统计分析还生成统计数据。在操作735中,将统计数据周期性地保存到区间文件。将统计数据周期性地保存到文件可由用户配置或可例如每天一次或每小时一次。在另一实施方案中,当统计数据的大小达到某个阀值时,可将统计数据周期性地保存到区间文件。在参考图7描述的实施方案中,每个具有选用组第二线程的第一进程和一组或多组第二多个进程是独立的并且经由共享内存彼此通信。每个网络接口卡的第一线程组可不同于选用组的第二线程。在某些实施方案中,第一进程和一组或多组第二多个进程是异步的。图8是示出根据本发明的实施方案的管理数据流的另一方法的流程图。所述方法开始于至少一个网络接口卡接收数据流的操作805。在操作810中,运行每个网络接口卡的至少一个第一线程的第一进程处理接收的数据流,组织经过处理的数据流,过滤经过处理的数据流并且将经过处理的数据流存储在共享内存中。然后在操作815中,使用至少一组第二多个进程再次处理存储在共享内存中的数据,其中每个进程具有选用组的第二线程。来自所述组的第二线程的至少一个线程是用于从共享内存中读取数据并且生成关于共享内存的统计。如果存在多个共享内存,那么可用不同于第二线程的线程或专用线程读取每个共享内存。在操作820中,将生成的统计周期性地保存到区间文件。将生成的统计周期性地保存到文件可由用户配置或可例如每天一次或每小时一次。在另一实施方案中,当统计数据的大小达到某个阀值时,可将生成的统计周期性地保存到区间文件。在操作825中,从区间文件中读取数据,并且将其分类、合并和聚集。在参考图8描述的实施方案中,每个具有选用组第二线程的第一进程和一组或多 组第二多个进程是独立的并且经由共享内存彼此通信。每个网络接口卡的第一线程组可不同于选用组的第二线程。在某些实施方案中,第一进程和一组或多组第二多个进程是异步的。根据本发明的实施方案,一种管理数据流的方法包括在至少一个网络接口卡上接收数据流,和使用运行用于每个网络接口卡的多个第一线程的第一进程对所述数据流执行操作。使用运行多个第一线程的第一进程执行的操作包括将所述数据流的部分分布在多个缓冲器当中以由所述多个第一线程来处理;用专用第一进程线程处理存储在每个所述多个缓冲器中的数据流的每个部分;和将每个所述数据流的处理部分存储在多个专用共享内存之一中。所述专用第一进程线程可为所述多个第一线程之一。所述方法还包括使用每个具有选用组第二线程的至少一组第二多个进程对所述数据流的处理部分执行附加操作,所述操作包括用专用第二进程线程处理存储在每个所述共享内存中的所述数据流的每个经过处理的部分。所述专用第二进程线程可为所述第二线程之一。所述第一进程和所述一组或多组第二多个进程可独立的并且经由所述共享内存而通信。所述每个网络接口卡的多个第一线程可不同于所述组的第二线程。根据本发明的另一实施方案,在所述第一进程中执行操作还包括使用单独多个 专用第一进程线程从每个所述多个缓冲器中读取所述数据部分;和使用所述单独多个专用第一进程线程过滤从每个所述多个缓冲器中读取的所述数据以生成所述数据流的处理部分。根据本发明的又一实施方案,所述第一进程和所述第二进程是异步的。根据本发明的又一实施方案,由单独并且不同的第一进程线程访问每个所述多个缓冲器。根据本发明的又一实施方案,将所述数据流的每个部分存储在单独一个所述多个缓冲器中。根据本发明的又一实施方案,将每个所述数据流的经过处理的部分存储在单独的共享内存中。根据本发明的另一实施方案,一种用于管理数据流的方法包括在至少一个网络接口卡上接收数据流,和使用运行用于每个网络接口卡的多个第一线程的第一进程对所述数据流执行操作。所述使用运行多个第一线程的第一进程执行的操作包括将所述数据流的多个部分分布在多个缓冲器当中以由所述多个第一线程来处理;用专用第一进程线程处理存储在每个所述多个缓冲器中的数据流的每个部分;和将每个所述数据流中经过处理的部分存储在多个专用共享内存之一中。所述专用第一进程线程可为所述多个第一线程之一。所述方法还包括使用每个具有选用组第二线程的至少一组第二多个进程对所述数据流的经过处理的部分执行操作,所述操作包括用专用第二进程线程从每个所述共享内存中读取所述数据流的存储处理部分。所述专用第二进程线程可为所述组的第二线程之一。所述方法还包括用所述专用第二进程线程对从所述共享内存中读取的数据流的经处理部分执行统计并且将所述统计周期性地保存到区间文件。所述第一进程和所述至少一组第二多个进程可为独立的并且经由所述共享内存而通信。根据本发明的又一实施方案,一种用于管理数据流的方法包括在至少一个网络接口卡上接收数据流;将所述数据流的多个部分分布在由运行用于每个网络接口卡的多个线程的第一进程使用的多个缓冲器当中;和用专用于所述缓冲器的特定线程处理存储在每个缓冲器中的数据流的部分。每个线程处理来自特定个的多个缓冲器的数据。所述特定线程可为所述多个线程之一。所述方法还可包括将经过处理的数据流存储在指定的共享内存中。
根据本发明的又一实施方案,一种用于管理数据流的方法包括在至少一个网络接口卡上接收数据流,将所述数据流的多个部分分布在多个缓冲器当中,其中由运行多个第一进程线程的第一进程访问所述多个缓冲器,并且其中每个所述第一进程线程处理来自特定一个所述多个缓冲器的数据。所述方法还可包括将所述数据流的一部分存储在指定的共享内存中。所述方法还可包括由运行第二多个进程线程的第二进程从所述共享内存中读取数据。所述第二多个进程线程还可执行内存中区间统计并且将所述统计周期性地保存到区间文件。所述第一进程和所述第二进程可为异步的。所述方法还可包括使用用于处理来自每个所述多个缓冲器的数据的相同第一进程线程从每个所述多个缓冲器中读取数据;和使用所述相同第一进程线程过滤从所述多个缓冲器中读取的数据以生成所述数据流的经过处理的部分。可将每个所述数据流的分布部分存储在单独一个的所述多个缓冲器中。所述数据流的分布部分还可存储在单独共享内存中。根据本发明的又一实施方案,一种用于管理数据流的方法包括在至少一个网络接口卡上接收数据流,和使用运行用于每个网络接口卡的多个第一线程的第一进程对所述数据流执行操作。所述使用运行多个第一线程的第一进程执行的操作包括将所述数据流解析成多个子数据流;将所述多个子数据流分布在多个缓冲器当中;将每个所述多个子数据流的一部分存储在共享内存中。所述方法还包括使用每个具有选用组第二线程的至少一组第二多个进程对所述多个子数据流执行附加操作。所述附加操作包括从所述共享内存中读取存储在所述共享内存中的所述子数据流的部分;和对从所述共享内存中读取的所述子数据流的部分执行统计;并且将所述统计周期性地保存到区间文件。所述第一进程和所述第二进程可独立的并且经由所述共享内存而通信。根据本发明的又一实施方案,一种用于管理数据流的系统包括至少一个网络接口卡,其接收数据流;第一处理器,其耦合到至少一个所述网络接口卡并且将所述数据流分布在多个缓冲器当中。所述第一处理器被配置来运行使用用于每个网络接口卡的多个第一线程的第一进程。所述多个第一进程线程访问存储在所述多个缓冲器中的数据,处理所述访问的数据并且将所述处理的数据存储在多个共享内存中。所述多个第一线程可为了特定特征而过滤从所述多个缓冲器中访问的数据,并且将具有特定特征的数据保存在特定共享内存中。所述第一进程可分布由所述网络卡接收的数据流的拷贝,并且将所述拷贝存储在所述多个缓冲器之一中。所述系统还可包括从所述共享内存中读取数据的至少一组第二多个进程。所述至少一组第二多个进程每个均可使用来自选用组的第二线程的一个或第二多个线程。所述组的第二线程可用于分析数据以生成内存中区间统计并且将所述统计周期性地保存到区间文件。所述共享内存可为队列。虽然已经描述本发明的特定实施方案,但是各种修改、变更、替代结构和等效物也涵盖在本发明的范畴内。所述发明不限于某些特定数据处理环境内的操作,而是在多个数据处理环境内自由操作。此外,虽然已使用特定系列的事务和步骤描述本发明,但是所属领域技术人员应当明白本发明不限于所述系列的事务和步骤。此外,虽然已经使用硬件和软件的特定组合描述本发明,但是应明白硬件和软件的其它组合也在本发明的范畴内。本发明仅可以用硬件,或仅以软件或使用其组合予以实施。
因此,在阐释性而非限制性意义上看待本说明书和图示。然而,显然可在不背离如在权利要求中陈述的本发明的更广精神和范畴的情况下作出添加、删减、删除以及其它修改和变化。
权利要求
1.一种用于管理数据流的方法,其包括 在至少一个网络接口卡上接收数据流; 使用运行用于每个网络接口卡的多个第一线程的第一进程对所述数据流执行操作,其包括 将所述数据流的多个部分分布在多个缓冲器当中以由所述多个第一线程处理; 用专用第一进程线程处理存储在每个所述多个缓冲器中的数据流的每个部分,其中所述专用第一进程线程是所述多个第一线程之一; 将所述数据流的每个经过处理的部分存储在多个专用共享内存之一中; 使用每个具有至少一组第二线程的至少一组第二多个进程对所述数据流中经过处理的部分执行操作,其包括 用专用第二进程线程处理存储在每个所述共享内存中的所述数据流的每个经过处理的部分,其中所述专用第二进程线程是所述第二线程之一; 其中所述第一进程和所述一组或多组第二多个进程是独立的并且经由所述共享内存而通信;且 其中每个网络接口卡的所述多个第一线程不同于所述至少一组第二线程。
2.根据权利要求I所述的方法,其中在所述第一进程中执行操作还包括 使用单独的多个专用第一进程线程从每个所述多个缓冲器中读取所述数据部分;和使用所述单独多个专用第一进程线程过滤从每个所述多个缓冲器中读取的所述数据以生成所述数据流的经过处理的部分。
3.根据权利要求I所述的系统,其中所述第一进程和所述第二进程是异步的。
4.根据权利要求I所述的系统,其中由单独且不同的第一进程线程访问每个所述多个缓冲器。
5.根据权利要求I所述的方法,其中将所述数据流的每个部分存储在单独一个的所述多个缓冲器中。
6.根据权利要求I所述的方法,其中将所述数据流的每个经过处理的部分存储在单独的共享内存中。
7.一种用于管理数据流的方法,其包括 在至少一个网络接口卡上接收数据流; 使用运行用于每个网络接口卡的多个第一线程的第一进程对所述数据流执行操作,其包括 将所述数据流的多个部分分布在多个缓冲器当中以由所述多个第一线程来处理; 用专用第一进程线程处理存储在每个所述多个缓冲器中的所述数据流的每个部分,其中所述专用第一进程线程是所述多个第一线程之一; 将每个所述数据流中经过处理的部分存储在多个专用共享内存之一中; 使用至少一组第二多个进程对所述数据流中经过处理的部分执行操作,其包括 从每个所述共享内存中读取所述数据流的经过存储处理的部分; 对从所述共享内存中读取的所述数据流的经过处理的部分执行统计并且将所述统计周期性地保存到区间文件;且 其中所述第一进程和所述至少一组第二多个进程是独立的并且经由所述共享内存通 目;
8.根据权利要求7所述的方法,其中在所述第一进程中执行操作还包括 使用相同的专用第一进程线程从每个所述多个缓冲器中读取数据;和 使用所述相同的专用第一进程线程过滤从所述多个缓冲器中读取的数据以生成所述数据流的经过处理的部分。
9.根据权利要求7所述的系统,其中所述第一进程和所述第二进程是异步的。
10.根据权利要求7所述的系统,其中仅由所述第一进程使用所述多个缓冲器。
11.根据权利要求7所述的方法,其中将每个所述数据流的分布部分存储在单独一个所述多个缓冲器中。
12.根据权利要求7所述的方法,其中将每个所述数据流的经过处理的部分存储在单独共享内存中。
13.一种用于管理数据流的方法,其包括 在至少一个网络接口卡上接收数据流; 将所述数据流的多个部分分布在由运行用于每个网络接口卡的多个线程的第一进程使用的多个缓冲器当中,其中每个线程处理来自所述多个缓冲器中特定一个的数据;和 用专用于所述缓冲器的特定线程处理存储在每个缓冲器中的所述数据流的多个部分,其中所述特定线程是所述多个线程之一。
将所述经过处理的数据流存储在指定的共享内存中。
14.一种用于管理数据流的方法,其包括 在至少一个网络接口卡上接收数据流; 将所述数据流的多个部分分布在多个缓冲器当中,其中由运行多个第一进程线程的第一进程访问所述多个缓冲器,且其中每个所述第一进程线程处理来自所述多个缓冲器中特定一个的数据;和 将所述数据流的一部分存储在指定的共享内存中。
15.根据权利要求14所述的方法,其还包括由运行多个第二进程线程的第二进程从所述共享内存中读取数据。
16.根据权利要求15所述的方法,其中所述多个第二进程线程还执行内存中区间统计并且将所述统计周期性地保存到区间文件。
17.根据权利要求15所述的系统,其中所述第一进程和所述第二进程是异步的。
18.根据权利要求14所述的方法,其还包括 使用用于处理来自每个所述多个缓冲器的数据的相同第一进程线程从每个所述多个缓冲器中读取数据;和 使用所述相同第一进程线程过滤从所述多个缓冲器中读取的数据以生成所述数据流的经过处理的部分。
19.根据权利要求14所述的方法,其中将每个所述数据流的分布部分存储在单独一个所述多个缓冲器中。
20.根据权利要求14所述的方法,其中将每个所述数据流的分布部分存储在单独共享内存中。
21.一种用于管理数据流的方法,其包括在至少一个网络接口卡上接收数据流; 使用运行用于每个网络接口卡的多个第一线程的第一进程对所述数据流执行操作,其包括 将所述数据流解析成多个子数据流; 将所述多个子数据流分布在多个缓冲器当中; 将每个所述多个子数据流的一部分存储在共享内存中; 使用至少一组第二多个进程对所述多个子数据流执行操作,其包括 从所述共享内存中读取存储在所述共享内存中的所述子数据流的多个部分; 对从所述共享内存中读取的所述子数据流的多个部分执行统计并且将所述统计周期性地保存到区间文件;并且 其中所述第一进程和所述第二进程是独立的并且经由所述共享内存通信。
22.一种用于管理数据流的系统,其包括 至少一个网络接口卡,其接收数据流; 第一处理器,其耦合到至少一个所述网络接口卡并且将所述数据流分布在多个缓冲器当中,所述第一处理器被配置来运行使用用于每个网络接口卡的多个第一线程的第一进程; 其中所述多个第一进程线程访问存储在所述多个缓冲器中的数据,处理所述访问的数据并且将所述经过处理的数据存储在多个共享内存中。
23.根据权利要求22所述的系统,其中所述多个第一线程为了特定特征而过滤从所述多个缓冲器中访问的数据,并且将具有特定特征的数据保存在特定的共享内存中。
24.根据权利要求22所述的系统,其中所述第一处理器分布由所述网络卡接收的数据流的拷贝并且将所述拷贝存储在所述多个缓冲器之一中。
25.根据权利要求22所述的系统,其还包括从所述共享内存中读取数据的至少一组第二多个进程,其中所述至少一组第二多个进程每个均使用至少一组第二线程。
26.根据权利要求22所述的系统,其中所述至少一组第二多个进程分析数据以生成内存中区间统计并且将所述统计周期性地保存到区间文件。
27.根据权利要求22所述的系统,其中所述共享内存是队列。
全文摘要
本发明涉及通过以下步骤管理输入数据流在至少一个网络接口卡(NIC)上接收数据流,并且为每个网络接口卡使用运行若干第一线程的第一进程,和使用每个具有选用组第二线程的至少一组第二多个进程对所述数据流执行操作。所述第一进程和所述一组或多组第二多个进程是独立的并且经由共享内存而通信。所述每个网络接口卡的第一线程不同于所述组的第二线程。
文档编号G06F13/14GK102656573SQ201080057542
公开日2012年9月5日 申请日期2010年10月19日 优先权日2009年10月27日
发明者J·K·加兰特, K·亨德森 申请人:弗里塞恩公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1