有效率的多个过滤器包统计生成制造技术

技术编号:7737698 阅读:220 留言:0更新日期:2012-09-09 23:59
本发明专利技术涉及通过以下步骤管理输入数据流:在至少一个网络接口卡(NIC)上接收数据流,并且为每个网络接口卡使用运行若干第一线程的第一进程,和使用每个具有选用组第二线程的至少一组第二多个进程对所述数据流执行操作。所述第一进程和所述一组或多组第二多个进程是独立的并且经由共享内存而通信。所述每个网络接口卡的第一线程不同于所述组的第二线程。

【技术实现步骤摘要】
【国外来华专利技术】有效率的多个过滤器包统计生成
技术介绍
联网时,计算机通过经由设计用于联网目的的共享信道发送和接收信息而彼此通信。网络接口卡(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是示出根据本专利技术的实施方案的管理数据的方法的流程图。具体实施方案在下文描述中,为了说明目的,陈述特定详情以提供对本专利技术的彻底了解。然而,将显而易知的是可以在没有这些特定详情的情况下实践本专利技术。本专利技术的实施方案提供用于通过增强数据监视能力,同时减少硬件/软件成本、操作成本和网络成本而有效管理数据流的系统和方法。监视是通过将使用高速包捕获和过滤的至少两种不同应用程序组合到一个机器中而得到增强。本专利技术通过提供一种系统和方法而减少这些成本,所述系统和方法有效管理通过网络接口卡到达机器的数据流。本专利技术在具有多核心(例如,八个核心)的机器中特别有用,因为其通过一个核心实现数据的有效处理而不会使其它核心变慢或关闭。此外,本专利技术增强所有产品的监视能力。在本专利技术的实施方案中,一个机器上的软件进程和线程经过架构使得引入经由共享内存(例如消息队列)通信的两个单独进程。第一进程处理与网络对接的所有数据包,而且第二进程分析数据包且生成统计。使用第一进程处理与网络对接的所有数据包,消除维护每个应用程序的多个接口的额外开销。随着第一进程捕获数据包并且将其保存在缓冲器中以供稍后检查,第二进程编译关于数据包的统计并且将这些统计保存到磁盘文件,而不使第一进程变慢。第一进程和第二进程经由共享内存(例如队列)通信。此外,对于每个应用程序,第一进程可具有独立的缓冲器。这种架构消除或减少了丢失的包的数目。本专利技术的实施方案可以用硬件、软件或其组合实施。可以将本专利技术的组件并成独立系统,所述独立系统被配置来处理本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2009.10.27 US 12/606,8401.一种用于管理数据流的方法,其包括 在至少一个网络接口卡上接收数据流; 使用运行用于每个网络接口卡的多个第一线程的第一进程对所述数据流执行操作,其包括 将所述数据流的多个部分分布在多个缓冲器当中以由所述多个第一线程处理; 用专用第一进程线程处理存储在每个所述多个缓冲器中的数据流的每个部分,其中所述专用第一进程线程是所述多个第一线程之一; 将所述数据流的每个经过处理的部分存储在多个专用共享内存之一中; 使用每个具有至少一组第二线程的至少一组第二多个进程对所述数据流中经过处理的部分执行操作,其包括 用专用第二进程线程处理存储在每个所述共享内存中的所述数据流的每个经过处理的部分,其中所述专用第二进程线程是所述第二线程之一; 其中所述第一进程和所述一组或多组第二多个进程是独立的并且经由所述共享内存而通信;且 其中每个网络接口卡的所述多个第一线程不同于所述至少一组第二线程。2.根据权利要求I所述的方法,其中在所述第一进程中执行操作还包括 使用单独的多个专用第一进程线程从每个所述多个缓冲器中读取所述数据部分;和使用所述单独多个专用第一进程线程过滤从每个所述多个缓冲器中读取的所述数据以生成所述数据流的经过处理的部分。3.根据权利要求I所述的系统,其中所述第一进程和所述第二进程是异步的。4.根据权利要求I所述的系统,其中由单独且不同的第一进程线程访问每个所述多个缓冲器。5.根据权利要求I所述的方法,其中将所述数据流的每个部分存储在单独一个的所述多个缓冲器中。6.根据权利要求I所述的方法,其中将所述数据流的每个经过处理的部分存储在单独的共享内存中。7.一种用于管理数据流的方法,其包括 在至少一个网络接口卡上接收数据流; 使用运行用于每个网络接口卡的多个第一线程的第一进程对所述数据流执行操作,其包括 将所述数据流的多个部分分布在多个缓冲器当中以由所述多个第一线程来处理; 用专用第一进程线程处理存储在每个所述多个缓冲器中的所述数据流的每个部分,其中所述专用第一进程线程是所述多个第一线程之一; 将每个所述数据流中经过处理的部分存储在多个专用共享内存之一中; 使用至少一组第二多个进程对所述数据流中经过处理的部分执行操作,其包括 从每个所述共享内存中读取所述数据流的经过存储处理的部分; 对从所述共享内存中读取的所述数据流的经过处理的部分执行统计并且将所述统计周期性地保存到区间文件;且 其中所述第一进程和所述至少一组第二多个进程是独立的并且经由所述共享内存通 目;8.根据权利要求7所述的方法,其中在所述第一进程中执行操作还包括 使用相同的专用第一进程线程从每个所述多个缓冲器中读取数据;和 使用所述相同的专用第一进程线程过滤从所述多个缓冲器中读取的数据以生成所述数据流的经过处理的部分。9.根据权利要求7所述的系统,其中所述第一进程和所述第二进程是异步的。10.根据权利要求7所述的系统,其中仅由所述第一进程使用所述多个缓冲器。11.根据权利要求7所述的方法,其中将每个所述数据流的分布部分存储在单独一个所述多个缓冲器中。12.根据权利要求7所述的方法,其中将每个所述数据流的经过处理的部分存储在单独共享内存中。13.一种用于管理数据流的方法,其包括 在至少一个网络接口卡上接收数据流; 将所述数据流...

【专利技术属性】
技术研发人员:J·K·加兰特K·亨德森
申请(专利权)人:弗里塞恩公司
类型:发明
国别省市:

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

1