网络监控方法、过滤数据包的方法及装置的制造方法

文档序号:10473570阅读:815来源:国知局
网络监控方法、过滤数据包的方法及装置的制造方法
【专利摘要】本申请公开了一种网络监控方法和装置。该网络监控方法包括:接收网络上传输的数据包,其中所述数据包具有指示所述数据包传输的网络流的流信息;获取所述数据包的流信息;检测元数据库中是否存在对应于所述数据包的流信息,其中所述元数据库用于存储元数据和与其相关联的流信息;根据所述流信息的检测结果,生成与所述数据包的传输相关的元数据,并将其与对应的流信息相关联;以及将被生成的元数据和与其相关联的流信息存储到所述元数据库中。
【专利说明】
网络监控方法、过滤数据包的方法及装置
技术领域
[0001]本申请涉及通信技术领域,更具体地,涉及一种网络监控方法、过滤数据包的方法以及装置。
【背景技术】
[0002]云计算、高清视频通信、数据库等新兴信息技术的应用极大地推动了通信技术的发展,例如1Gbps以太网技术等高速网络通信技术也随之得到了广泛地应用。然而随着传输速率的大幅提高,高速通信网络的监控和管理也变得更为困难。
[0003]为了从网络中获得足够的信息,网络监控需要对网络中传输的数据包进行捕获,并对捕获的数据包进行分析,从而实现网络故障确定、入侵检测、流量统计以及网络安全性和可靠性保证等目的。然而,现有的网络监控分析设备往往不能有效支持例如1Gbps的高速传输速率下数据包的采集,这是因为在高速传输速率下数据包会丢失,而数据包的丢失会影响数据分析的准确性。此外,在很多应用场合下,网络中传输的数据包还需要被存储起来,以便于后续的分析、比较处理。数据包的存储需求进一步增加了网络监控分析设备的处理压力。

【发明内容】

[0004]本申请的一个目的在于提供一种能够在高速传输速率下捕获网络数据包并且同时获取数据包相关信息的方法。
[0005]本申请的一个方面公开了一种网络监控方法。该监控方法包括:接收网络上传输的数据包,其中所述数据包具有指示所述数据包传输的网络流的流信息;获取所述数据包的流信息;检测元数据库中是否存在对应于所述数据包的流信息,其中所述元数据库用于存储元数据和与其相关联的流信息;根据所述流信息的检测结果,生成与所述数据包的传输相关的元数据,并将其与对应的流信息相关联;以及将被生成的元数据和与其相关联的流信息存储到所述元数据库中。
[0006]可以看出,本申请的网络监控方法通过元数据来描述数据包的传输,而该元数据的大小通常远小于数据包的大小。在需要对数据包进行监控时,例如对数据包的传输状态等信息进行统计、或者依据特定算法对数据包进行过滤时,网络监控装置仅需要对元数据进行处理,而不需要或者较少需要直接对数据包进行处理。这种数据分析处理方式极大地简化了网络数据包的分析处理难度,从而提高了网络监控的效率和可靠性。
[0007]在一些实施例中,所述根据所述流信息的检测结果,生成与所述数据包的传输相关的元数据的步骤包括:如果检测到元数据库中不具有对应于所述数据包的流信息,则从所述数据包中提取与其传输相关的数据以生成所述元数据;以及如果检测到元数据库中具有对应于所述数据包的流信息,则从所述元数据库中复制与所述流信息相关联的元数据作为所述数据包的元数据。
[0008]在一些实施例中,从所述数据包中提取与其传输相关的数据以生成所述元数据的步骤包括:复制和/或处理所述数据包包头的至少一部分以得到所述数据包的元数据。
[0009]在一些实施例中,所述处理数据包包头的至少一部分包括利用一个或多个预定转换函数来转换所述数据包包头中包含的至少一部分数据。
[0010]在一些实施例中,将所述元数据与对应的流信息相关联包括:将所述流信息包含在生成的元数据中。
[0011]在一些实施例中,所述被接收的数据包是网络上传输的多个数据包中的一个,所述网络监控方法包括:接收所述多个数据包,并根据对应于所述多个数据包的元数据,生成针对所述多个数据包的网络统计信息。
[0012]在一些实施例中,所述网络统计信息包括源地址和目的地址,源端口和目的端口,源域标识符,目的域标识符,服务类型标识符,数据包流向,协议标识符,VLAN标识符,数据包的计数,和/或数据包的大小。
[0013]在一些实施例中,所述网络监控方法还包括:将所述数据包存储在数据包库中,其中所述数据包被分配了所述元数据库中的生成的元数据。
[0014]在一些实施例中,将被生成的元数据和与其相关联的流信息存储到所述元数据库中的步骤包括:将所述数据包的被生成的元数据和与其相关联的流信息缓存到缓冲存储器中;将被缓存的所述数据包的元数据和相关联的流信息、以及被缓存的其他数据包的元数据和相关联的流信息从所述缓冲存储器异步地转移到所述元数据库中。
[0015]在一些实施例中,所述被接收的数据包是网络上传输的一组数据包中的一个,所述网络监控方法包括:接收该组数据包;以及如果该组数据包中的每个数据包均被分配了对应的所述元数据库中的元数据,则对该组数据包添加指示每个数据包被分配了对应元数据的块标记。
[0016]在一些实施例中,所述网络监控方法还包括:使用元数据过滤器来过滤具有所述指示每个数据包被分配了对应元数据的块标记的该组数据包。
[0017]在一些实施例中,所述元数据包括一对源地址及目的地址、一对源端口和目的端口、源端子网络标识符、目的端子网络标识符、数据包流向、服务类型标识符、协议标识符、应用标识符和/或VLAN标识符。
[0018]在一些实施例中,所述流信息包括一对源地址及目的地址。
[0019]在一些实施例中,所述流信息还包括一对源端口和目的端口。
[0020]本申请的另一方面还公开了一种用于过滤网络上传输的至少一组数据包的方法。该方法包括:提供元数据过滤器和数据包过滤器,其中所述数据包过滤器关联于所述元数据过滤器;针对所述至少一组数据包中的每组数据包,检测其是否具有块标记,其中所述块标记指示所述该组数据包被分配了与其中的每个数据包的传输相关的元数据;根据所述块标记的检测结果使用所述元数据过滤器或所述数据包过滤器来过滤所述至少一组数据包。[0021 ] 在一些实施例中,所述根据所述块标记的检测结果使用所述元数据过滤器或所述数据包过滤器来过滤所述至少一组数据包的步骤包括:如果检测到所述至少一组数据包中的一组数据包被分配了一组元数据,则使用所述元数据过滤器来过滤该组数据包;以及如果检测到所述至少一组数据包中的一组数据包未被分配一组元数据,则使用所述数据包过滤器来过滤该组数据包。
[0022]在一些实施例中,所述至少一组数据包中的每组数据包具有数据块头,并且所述指示每个数据包被分配了对应元数据的块标记被添加在所述数据块头中。
[0023]在一些实施例中,所述至少一组数据包是由数据包块索引来索引的,并且所述块标记还被添加在所述数据包块索引中。
[0024]在一些实施例中,所述方法还包括:从所述至少一组数据包中获取被过滤的数据包。
[0025]在一些实施例中,所述数据包过滤器具有至少一个预定过滤条件,其与所述元数据过滤器中的至少一个过滤条件对应并可相互转换。
[0026]本申请的另一方面还公开了一种用于过滤网络上传输的至少一个数据包的方法。该方法包括:提供元数据过滤器和数据包过滤器,其中所述数据包过滤器关联于所述元数据过滤器;针对所述至少一个数据包中的每个数据包,检测其是否具有对应的元数据;以及根据所述元数据的检测结果使用所述元数据过滤器或所述数据包过滤器来过滤所述至少一个数据包。
[0027]本申请的另一方面还公开了一种网络监控装置,该网络监控装置包括:接收装置,用于接收网络上传输的数据包,其中所述数据包具有指示所述数据包传输的网络流的流信息;流信息获取装置,用于获取所述数据包的流信息;检测装置,用于检测元数据库中是否存在对应于所述数据包的流信息,其中所述元数据库用于存储元数据和与其相关联的流信息;元数据生成装置,用于根据所述流信息的检测结果,生成与所述至少一个数据包中的每个数据包的传输相关的元数据,并将其与对应的流信息相关联;以及存储装置,用于将被生成的元数据和与其相关联的流信息存储到所述元数据库中。
[0028]本申请的另一方面还公开了一种用于过滤网络上传输的至少一组数据包的装置。该装置包括:元数据过滤器;数据包过滤器,其中所述数据包过滤器关联于所述元数据过滤器;标记检测装置,用于针对所述至少一组数据包中的每组数据包,检测其是否具有块标记,其中所述块标记指示所述该组数据包被分配了与其中的每个数据包的传输相关的元数据;以及过滤器选择装置,用于根据所述块标记的检测结果使用所述元数据过滤器或所述数据包过滤器来过滤所述至少一组数据包。
[0029]以上为本申请的概述,可能有简化、概括和省略细节的情况,因此本领域的技术人员应该认识到,该部分仅是示例说明性的,而不旨在以任何方式限定本申请范围。本概述部分既非旨在确定所要求保护主题的关键特征或必要特征,也非旨在用作为确定所要求保护主题的范围的辅助手段。
【附图说明】
[0030]通过下面说明书和所附的权利要求书并与附图结合,将会更加充分地清楚理解本申请内容的上述和其他特征。可以理解,这些附图仅描绘了本申请内容的若干实施方式,因此不应认为是对本申请内容范围的限定。通过采用附图,本申请内容将会得到更加明确和详细地说明。
[0031]图1示出了可以应用本申请网络监控装置的网络系统10的示意图;
[0032]图2示出了根据本申请一个实施例的网络监控装置16的示意图;
[0033]图3示出了根据本申请一个实施例的网络监控方法300的流程图;
[0034]图4示出了根据本申请一个实施例的用于过滤网络上传输的至少一组数据包的方法400 ;
[0035]图5示出了根据本申请一个实施例的网络监控装置500的示意图;
[0036]图6示出了根据本申请一个实施例的用于过滤网络上传输的至少一组数据包的装置600的示意图。
【具体实施方式】
[0037]在下面的详细描述中,参考了构成其一部分的附图。在附图中,类似的符号通常表示类似的组成部分,除非上下文另有说明。【具体实施方式】、附图和权利要求书中描述的示例性实施方式并非旨在限定。在不偏离本申请的主题的精神或范围的情况下,可以采用其他实施方式,并且可以做出其他变化。可以理解,可以对本文中一般性描述的、在附图中图解说明的本申请内容的各个方面进行多种不同构成的配置、替换、组合、设计,而所有这些都明确地构成本申请内容的一部分。
[0038]图1示出了可以应用本申请网络监控装置的网络系统10的示意图。
[0039]如图1所示,该网络系统10包括多个网络设备12,这些网络设备12通过网络14进行通信,并且在相互之间发送、接收数据。网络14上传输的数据可以采用数据包(packet)的形式,其中这些数据包可以采用相同或不同的通信传输协议,并且具有相同或不同的数据格式。这些数据包具有包头,其包含有关于数据包的数据及传输的信息。通过使用包头中有关于数据包传输的信息,网络14可以利用例如路由器来将数据包由源网络设备发送到目的网络设备。例如,对于采用TCP/IP协议的数据包,其包头中包含有源网络设备的源地址和源端口,以及目的网络设备的目的端口和目的地址。
[0040]网络监控装置16被耦接到网络14上,并且用于监测网络14上传输的数据信息。例如,网络监控装置16可以捕获数据包,并且还可以使用数据包分析引擎来对所捕获的数据包进行分析。在一些实施例中,网络监控装置16可以包括硬件、软件、CPU、存储器、接口等组件,从而运行通用或专用程序,以连接网络14并监测其上传输的数据。网络监控装置16还可以进行其他的测试、测量操作,以及进行数据的发送和接收操作,等等。
[0041]图2示出了根据本申请一个实施例的网络监控装置的示意图。
[0042]如图2所示,该网络监控装置16包括网络接口 22,其通过一个或多个端口将网络装置16连接到网络14上。网络监控装置16还可以包括一个或多个处理器23,一个或多个易失性存储器24 (诸如动态随机存储器),一个或多个非易失性存储器26 (诸如硬盘、快闪存储器等)。在一些实施例中,网络监控装置16还包括显示器28,用户输入组件30,以及用于耦接外部设备的输入/输出接口 34等。网络监控装置16可以基于存储在存储器26中的操作系统,例如 Windows Server?,Mac OS X?,Unix?, Linux?,FreeBSD?等,来进行操作。
[0043]图3示出了根据本申请一个实施例的网络监控方法300的流程图。该方法可以由处理逻辑执行,该处理逻辑可以包括软件(其可运行在例如通用或专用计算设备上)、硬件(例如电路、专用逻辑等)、固件或者其组合。在一些实施例中,该网络监控方法可以由图2所示的网络监控装置执行。
[0044]如图3所示,该网络监控方法300始于步骤S302,网络监控装置接收网络上传输的一个数据包,其中该数据包具有指示数据包传输的网络流的流信息。在一些实施例中,流信息可以包括一对源地址和目的地址,或者还可以包括一对源端口和目的端口。通过源地址和目标地址对,网络监控装置可以确定所接收的数据包是在网络上耦接的哪两个网络设备之间传输的;而通过源端口和目的端口,网络监控装置可以进一步地确定所接收的数据包是有关于这些网络设备上的哪些具体进程。在一些实施例中,网络监控装置可以通过建立一个或多个查找表来存储流信息所包括的源地址和目的地址对和/或源端口和目的端口对。该查找表包括多对地址对和/或端口对,其中每个地址对和/或端口对可以由一流标识符来标识。
[0045]可以理解,在实际应用中,网络上通常传输有多个数据包。网络监控装置接收这些数据包,并对其进行监控。换言之,在步骤S302接收的数据包可以是网络监控装置接收的多个数据包中的一个,并且网络监控装置可以对该数据包执行网络监控方法300。此外,对于其他被接收的数据包,所述网络监控装置也可以对这些数据包执行网络监控方法300。
[0046]之后,在步骤S304,网络监控装置获取步骤S302中接收的数据包的流信息。
[0047]通常,流信息可以被包含在数据包的包头中,例如被定义在包头的预定字段。因此,在一些实施例中,网络监控装置可以通过查询数据包包头的预定字段来获得对应的流信息。可以理解,根据发送/接收的网络设备的不同,不同的数据包可以具有不同或相同的流信息。然而数据包的长度通常具有限制,例如对于IP数据包而言,其最大长度为64k字节。因此,对于两个网络设备之间的大数据量传输,网络监控装置往往能够监测到数百、数千或者更多数量的数据包,并且这些数据包具有相同的流信息。
[0048]接着,在步骤S306,网络监控装置检测元数据库中是否存在对应于所接收的数据包的流信息,其中元数据库可以存储元数据和与其相关联的流信息。
[0049]在一些实施例中,元数据库是元数据以及与其相关联的流信息的集合,其是网络监控装置基于已接收到的数据包的信息所创建的。其中,元数据是与数据包的传输相关的信息,其例如包括一对源地址及目的地址、一对源端口和目的端口、源端子网络标识符、目的端子网络标识符、数据包流向、服务类型标识符、协议标识符和/或VLAN(虚拟局域网)标识符等信息,或者其他与数据包的数据和/或其传输相关的信息(例如数据包的大小等)O
[0050]在一些实施例中,网络监控装置可以通过复制一个数据包包头的一部分或全部数据来作为该数据包的元数据。例如,网络监控装置可以直接复制包头中的源地址、目的地址、源端口、目的端口、地址类型、数据包长度、服务类型标识符等数据作为元数据的一部分。对于采用特定协议的数据包,这些数据在数据包中的位置都是确定的。因此,可以在网络监控装置中提供预定义的数据提取程序来获得元数据。
[0051]在另一些实施例中,网络监控装置还可以对数据包包头的部分或全部数据进行处理,并将处理后的数据作为数据包的元数据。例如,在采用TCP/IP协议的系统中,不同的服务端口通常已被分配给不同的应用程序或服务。通常地,端口号53被分配给网络系统(DNS)以进行域名解析;端口号80被分配给超文本服务器(HTTP)以用于万维网服务器向网络设备的本地浏览器传送超文本;端口号110被分配用于电子邮件传输,等等。因此,网络监控装置中可以包括一个预定转换函数,其可以包括TCP/IP协议或其他网络传输协议定义的端口 -应用程序或服务的对应关系。利用该预定转换函数,数据包包头中的源端口或目的端口的数据可以被转换为对应的应用程序标识符,其中应用程序标识符可以指示数据包可被应用于何种应用程序。在一些实施例中,只要数据包包头中的源端口和目标端口中的一个属于预定义的服务端口,则该数据包即可被提供或标记与该服务端口对应的应用程序标识符。类似地,网络监控装置还可以包括其他的预定转换函数。例如,根据实际应用的需要,某些源地址或目标地址可以被定义为属于某个域或某些域;相应地,网络监控装置可以提供一预定转换函数,其包括源地址和/或目标地址与域的对应关系。利用该预定转换函数,数据包包头中的源地址可以被转换为对应的源域标识符,而目的地址可以被转换为对应的目的域标识符,以分别指示数据包来自或将被发送给哪些域。再例如,网络监控装置还可以根据两个网络设备之间一次会话的情况,将该会话相关的多个数据包的源地址和目的地址定义为一个地址对,并且进一步地区分这两个网络设备的主从关系。其中,最先发送数据包的网络设备可以被定义为客户端(其通常启动会话以请求数据),而接收该数据包的网络设备可以被定义为服务器端(其应答请求以提供数据)。因此,最先发送的数据包包头中的源地址可以被定义为客户端地址,而目的地址可以被定义为服务器端地址。相应地,网络监控装置可以根据上述定义构建转换函数,并且将该次会话中的每个数据包包头中的源地址和目的地址转换为客户端地址和服务器端地址。同时,网络监控装置还可以在转换函数中设置数据包流向的确定函数,其中数据包流向可以是由客户端至服务器端(如果数据包的源地址与客户端地址相同,或者数据包的目的地址与服务器端地址相同),或者是由服务器端至客户端(如果数据包的目的地址与客户端地址相同,或者数据包的源地址与服务器地址相同)。该数据包流向也可以被添加到元数据中。可以理解,上述关于元数据所包含的数据信息仅为示例,根据具体应用的不同,本领域技术人员可以对元数据中包含的数据信息进行各种修改、变换和处理。
[0052]正如前述,元数据库中的元数据与对应的流信息相关联。在一些实施例中,流信息可以包含在对应的元数据中。例如,元数据与流信息的关联关系可以通过将源地址-目的地址对和/或源端口 -目的端口对加入到对应的元数据中来建立。在另一些实施例中,流信息可以通过流标识符来标识,例如建立流信息与流标识符的查找表。相应地,元数据与流信息的关联关系可以通过将流标识符加入到对应的元数据中来建立,或者通过创建流标识符与元数据的查找表来建立。这种处理与将流信息加入到元数据中可以实现相同的效果。可以理解,由于网络监控装置不断地从网络上捕获或接收到新的数据包,因而元数据库中包含的元数据可能会不断增加。
[0053]此外,由于元数据库中包含有大量的元数据,因此元数据库还可以包含一元数据索引。元数据索引可以有助于元数据的查找或排序,并且可以提高元数据查找的效率。
[0054]根据在步骤S304中获得的数据包的流信息,网络监控装置可以检测元数据库中是否存在该流信息。在一些实施例中,网络监控装置可以查询流信息与流标识符的查找表以确定其中是否包含有该流信息。该查找表中具有例如源地址-目的地址对和/或源端口-目的端口对与流标识符的对应关系。如果存在,则网络监控装置可以获得对应的流标识符。如果不存在,网络监控装置可以得到一表示无效或不存在的返回值,例如空值(null)。在另一些实施例中,流信息可以不采用流标识符来标识,而仅仅采用源地址-目的地址对和/或源端口-目的端口对来表示。网络监控装置可以将所有源地址-目的地址对和/或源端口-目的端口对存储为一个查找表,并且在接收到新的源地址-目的地址对和/或源端口-目的端口对后更新该查找表。这样,网络监控装置可以查询该查找表来确定元数据库中是否存在该流信息。
[0055]接着,在步骤S308中,网络监控装置根据流信息的检测结果,生成与该数据包的传输相关的元数据。
[0056]具体地,如果检测到元数据库中不具有对应于该数据包的流信息,这说明元数据库中不包含该流信息关联的元数据,则网络监控装置从该数据包中提取与该数据包传输相关的数据以生成元数据。在一个实施例中,对于待提取的数据包,网络监控装置可以复制该数据包包头的至少一部分以得到对应于该数据包的元数据,或者可选地,也可以对该数据包包头的部分或全部数据进行处理,并将处理后的数据作为元数据或其一部分。在一些实施例中,元数据可以包括直接从数据包本身复制的数据,以及由数据包数据处理得到的数据。对包头的数据进行的处理可以是通过例如预定转换函数来转换包头中包含的至少一部分数据。关于转换函数,可以参见上文中的说明,在此不再赘述。
[0057]相反,如果检测到元数据库中具有对应于被检测的数据包的流信息,则网络监控装置可以从元数据库中复制与检测到的流信息相关的元数据作为该数据包的元数据。之所以可以采用上述处理方式,是因为在两个网络设备之间传输的多个数据包主要区别在于净载数据(也即用户数据),而其包头中所包含的信息基本相同或仅略有差异。因此,对于在两个网络设备之间传输的多个数据包,基于数据包包头数据解析得到的元数据通常也相同。进一步地,两个网络设备又可以通过其间传输的数据包的流信息来表征,如果流信息相同,则对应的元数据也相同。基于此,如果元数据库中存在有对应于被检测的数据包的流信息,这说明元数据库中已包含有该流信息相关联的元数据,因而可以将该元数据作为被检测的数据包的元数据。这样,网络监控装置可以减少解析数据包以获得元数据的操作次数,从而大大提高元数据生成效率,这种处理方式特别适合应用于高速网络通信中。
[0058]在一些实施例中,在针对每个接收到的数据包生成对应的元数据后,网络监控装置可以根据这些数据包的元数据来生成针对这些数据包的网络统计信息。在一些实施例中,网络统计信息可以包括源地址和目的地址,源端口和目的端口,源域标识符,目的域标识符,服务类型标识符,数据包流向,协议标识符,VLAN标识符,数据包的计数,和/或数据包的大小。网络统计信息可以基于流信息,也即基于两个相互通信的网络设备对来进行统计。例如,网络统计信息可以包括一对网络设备之间一次或多次会话中传输的数据包的数量(即计数),或者这些数据包所包含的数据的大小。这些统计信息都可以通过设置预定统计函数或统计规则,并且利用这些统计函数或规则对元数据进行处理后得到。网络统计信息还可以直接提取元数据中的一部分数据,例如协议标识符、VLAN标识符、服务类型标识符等。在一些实施例中,网络统计信息可以缓存在网络监控装置中,例如缓存在主存储器中,并且每隔预定时间间隔(例如60秒)将所缓存的信息存储到网络统计数据库中。
[0059]之后,在步骤S310中,网络监控装置将被生成的元数据和与其相关联的流信息存储到元数据库中。这样,每个接收到的数据包均可以被分配一个对应的元数据。
[0060]在一些实施例中,如果在步骤S308中检测到元数据库中不具有一个数据包的流信息,则需要生成该数据包的元数据,并将被生成的该数据包的元数据与其流信息相互关联,例如生成或分配一个新流标识符以表示该新的流信息,并且在生成的元数据中添加该新流标识符以关联新流信息和新元数据。进一步地,新生成的元数据和与其相关联的流信息可以被存储在元数据库中。此外,如果在步骤S308中检测到元数据库中已具有一个数据包的流信息,并且通过例如复制该已有流信息对应的元数据的操作来生成新的元数据,则该新的元数据所关联的流信息也是确定的,网络监控装置可以将该元数据以及与其相关联的流信息存储到元数据库中。
[0061]网络监控装置已经通过上述步骤得到了其所接收的数据包对应的元数据,而对于这些被接收的数据包本身,网络监控装置可以根据具体应用需求的不同来选择如何处理。在一些实施例中,网络监控装置可能仅需要存储元数据,以便后续基于所存储的元数据来分析或回溯网络中的数据包传输情况。在另一些实施例中,网络监控装置还可以同时存储其在步骤S302中接收到的数据包,并且将所接收到的数据包存储在数据包库中。该数据包库中的每个数据包可以被分配一个对应的元数据库中的元数据,以描述其传输情况。例如,元数据库可以包括元数据索引来索引元数据;而数据包库可以包括数据包索引来索引数据包。其中数据包索引与元数据索引可以相互对应。例如,数据包索引以数据包接收的时序来对数据包进行排序,每个数据包被分配了唯一对应的数据包序号。相应地,元数据索引可以按照其对应的数据包的序号来进行排序。这样,当网络监控装置分析元数据后发现仍缺少某些信息(例如缺少净载数据时),网络监控装置还可以根据元数据来找到其对应的数据包,并且进一步地对该数据包进行分析处理。
[0062]可以理解,在高速通信网络中,网络中传输的数据包数量很多,因而网络监控装置需要具有足够的存储速度和存储能力,以存储大量的数据包和元数据。在一些情况下,特别是网络传输速率过高时,有可能出现网络监控装置难以及时将所接收的数据包以及被生成的元数据存储到其内部的大容量存储介质(例如硬盘或快闪存储器)中的情况。为了避免或者减少这种情况的发生,在一些实施例中,网络监控装置可以设置缓冲存储器,在步骤S308中生成的元数据、以及来自网络的其他数据包的被生成的元数据可以首先被缓存到缓冲存储器中,并且在满足预定条件后将这些所缓存的元数据转移到元数据库的大容量存储介质中。换言之,这些数据包的元数据以及相关联的流信息被逐批地转移到元数据库中。例如,在缓冲存储器每次存满之后,或者在间隔预定时间之后,将元数据转移到元数据库中。在一些实施例中,可以将被缓存的元数据和流信息从缓冲存储器中异步地转移到元数据库中,即元数据库中的存储器采用了异步输入输出方式来存储数据。具体地,当网络监控装置指示某一批被缓存的元数据向存储器转移后,其不等待存储器返回该批元数据是否存储完成的响应,就继续将下一批被缓存的元数据向存储器转移。网络监控装置可以安排特定的线程来处理该元数据的转移和存储,而安排另一个或一些线程来检测被转移的元数据是否存储成功。对于采用硬盘存储器的元数据库,上述异步存储的操作可以使磁头能够连续地向硬盘的相同区域或相邻区域写入数据,从而避免频繁寻址影响数据写入速度。
[0063]正如之前所说明的,每个IP数据包的最大长度为64k字节。对于两个网络设备之间的大数据量传输,网络监控装置往往能够监测到数百、数千或者更多数量的数据包,并且这些数据包具有相同的流信息。为了提高数据包的处理效率,在一些实施例中,多个数据包被打包成一组数据包,例如64个、128个、256个或者更多个数据包被打包成一组数据包。这一组数据包可以被一起传输,并被网络监控装置接收并进行处理。其中,每组数据包可以包括一个数据块头,以用于在其中添加有关于该组数据包及其传输的信息。相应地,多个对应的元数据也可以被打包成一组元数据,并且提供一元数据块头。在一些实施例中,数据块头中可以添加一个块标记,其用于表示该组数据包中的每个数据包均被分配了对应的元数据。块标记的使用有助于数据包和元数据的后续处理。例如,当网络监控装置对其所接收并存储的数据包进行后续处理时,网络监控装置可以检测每组数据包中数据块头中是否具有块标记:如果具有指示该组数据包中的每个数据包均被分配了元数据的块标记,则网络监控装置可以选择对该组数据包对应的元数据组来进行处理,例如对元数据进行数据分析和过滤;相反,如果数据块头中没有指示该组数据包被分配了元数据的块标记,则网络监控装置可以选择仍对该组数据包进行处理,例如对数据包进行数据分析和过滤。
[0064]可以看出,本申请的网络监控方法通过元数据来描述数据包的传输,而该元数据的大小通常远小于数据包的大小。在需要对数据包进行监控时,例如对数据包的传输状态等信息进行统计、或者依据特定算法对数据包进行过滤时,网络监控装置通常可以只对元数据进行处理,而不需要或者较少需要直接对数据包进行处理。这种数据分析处理方式极大地简化了网络数据包的分析处理难度,从而提高了网络监控的效率和可靠性。这使得该网络监控方法特别适合应用于高速通信网络。
[0065]对于通过上述网络监控方法获得的数据包及元数据,本申请还提供了一种对其进行过滤的方法。在过滤后,符合过滤条件和要求的数据包和/或元数据可以被恢复,并且可以被汇编或整理成数据文件,以供后续使用。
[0066]图4示出了根据本申请一个实施例的用于过滤网络上传输的至少一组数据包的方法400。该方法400可以通过例如图2所示的网络监控装置执行,或者通过类似的数据处理装置执行。
[0067]如图4所示,在步骤S402中,提供元数据过滤器和数据包过滤器,其中该数据包过滤器关联于元数据过滤器。
[0068]具体地,待过滤的数据是数据包,其通常被网络监控装置接收并且存储在数据包库中。这些数据包中的部分或全部被分配有对应的元数据,元数据被存储在元数据库中。在一些实施例中,数据包可以按组地存储在数据包库中,每组数据包可以包括一数据块头;类似地,元数据可以按组地存储在元数据库中,每组元数据可以包括一元数据块头。
[0069]对于每组数据包,其可以包括一块标记,该块标记用于指示该组数据包被分配了与其中每个数据包的传输相关的元数据。换言之,如果一组数据包中的任意一个或多个数据包不具有对应的元数据,则该组数据包可以不具有块标记,或者块标记被设置为指示缺少对应的元数据。在一些实施例中,块标记可以被添加在数据块头中。在另一些实施例中,块标记还可以被添加在数据包块的块索引中。
[0070]元数据过滤器通常包含有一些预设的过滤条件,这些过滤条件与元数据中所包含的数据相对应。例如,元数据可以包含例如应用程序标识符,其指示该元数据对应的数据包适于应用的应用程序。不同的应用程序标识符可以被分配了不同的值。应用程序标识符可以参见图3所示的网络监控方法中的相关描述。相应地,元数据过滤器可以包括应用程序标识符的一个或多个具体值,当元数据的应用程序标识符的值与元数据过滤器中的值相同时,可以认为该元数据符合过滤条件;而当元数据的应用程序标识符的值与元数据过滤器中的值不同时,可以认为该元数据不符合过滤条件。在一些实施例中,符合过滤条件的元数据可以被保留,而不符合过滤条件的元数据可以被丢弃。或者相反地,丢弃符合过滤条件的元数据。
[0071 ] 在一些实施例中,数据包过滤器与元数据过滤器相关联是指数据包过滤器具有至少一个预定过滤条件,其与元数据过滤器中的一过滤条件对应并且可以相互转换。例如,数据包可能并不具有元数据的应用程序标识符,而仅具有源端口或目的端口的端口号,但是这些端口号中的至少一个通常与应用程序是一一对应的。因此,数据包过滤器可以与包含端口号相关的过滤条件,其与元数据过滤器中应用程序标识符的值相对应。例如,元数据过滤器的过滤条件可以限定为元数据的应用程序标识符需要对应为DNS的标识符。相应地,数据包过滤器中包含的过滤条件可以限定为目标端口或源端口的端口号为53。由于在采用TCP/IP协议的网络系统中,端口号53被分配给网络系统(DNS)以进行域名解析,因此数据包过滤器与元数据过滤器的这两个过滤条件是相同,从而使得两个过滤器进行实质上相同的数据过滤操作。在实际应用中,可以通过元数据和数据包中数据的对应关系来构建数据包过滤器和元数据过滤器。
[0072]接着,在步骤S404中,针对待过滤的每组数据包,检测其是否具有块标记。
[0073]正如前述,块标记可以被添加在数据块头中,或者被添加在数据包块的索引中。因此,对于每组数据包,可以在其数据块头和/或数据包块的索引中查找、检测块标记。
[0074]之后,在步骤S406中,根据块标记的检测结果使用元数据过滤器或数据包过滤器来过滤数据包。
[0075]具体地,如果检测到一组数据包被分配了一组元数据,则使用元数据过滤器来过滤该组数据包,具体地,过滤该组数据包对应的元数据;而如果检测到一组数据包未被分配一组元数据,则使用数据包过滤器来过滤该组数据包。
[0076]在一些实施例中,在步骤S406之后,还可以获取被过滤的数据包,以生成包含这些被过滤的数据包的数据文件。例如,对于使用数据包过滤器过滤的数据包,可以在过滤的同时直接将其转移到预定存储位置,或者缓存起来;而对于使用元数据过滤的数据包,可以在过滤得到的元数据的基础上,进一步地到数据包库中读取获得对应的数据包,并且之后将这些数据包转移到预定存储位置,或者缓存起来。这样处理后,即可得到符合元数据过滤器过滤条件或数据包过滤器过滤条件的数据包。这些数据包可以被汇编或整理成数据文件,以供后续使用。
[0077]在一些实施例中,接收自网络的数据包也可以逐个地进行过滤。相应地,针对待过滤的每个数据包,检测其是否具有对应的元数据。接着,根据元数据的检测结果使用元数据过滤器或数据包过滤器来过滤所接收的数据包。在一些实施例中,可以先过滤元数据库中包含的元数据,并且之后过滤数据包库中包含的不具有对应元数据的数据包。
[0078]图5示出了根据本申请一个实施例的网络监控装置500的示意图。
[0079]如图5所示,该网络监控装置500包括:
[0080]接收装置501,用于接收网络上传输的数据包,其中所述数据包具有指示所述数据包传输的网络流的流信息;
[0081]流信息获取装置503,用于获取所述数据包的流信息;
[0082]检测装置505,用于检测元数据库中是否存在对应于所述数据包的流信息,其中所述元数据库用于存储元数据和与其相关联的流信息;
[0083]元数据生成装置507,用于根据所述流信息的检测结果,生成与该数据包的传输相关的元数据,并将其与对应的流信息相关联;以及
[0084]存储装置509,用于将被生成的元数据和与其相关联的流信息存储到元数据库中。
[0085]图6示出了根据本申请一个实施例的用于过滤网络上传输的至少一组数据包的装置600的示意图。
[0086]如图6所示,该装置600包括:
[0087]元数据过滤器601;
[0088]数据包过滤器603,其中所述数据包过滤器603关联于所述元数据过滤器601 ;
[0089]标记检测装置605,用于针对所述至少一组数据包中的每组数据包,检测其是否具有块标记,其中所述块标记指示所述该组数据包被分配了与其中的每个数据包的传输相关的元数据;以及
[0090]过滤器选择装置607,用于根据所述块标记的检测结果使用所述元数据过滤器601或所述数据包过滤器603来过滤所述至少一组数据包。
[0091]在本申请的一些实施例中,图5所示的装置500以及图6所示的装置600可以通过一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件来实现,并且可以用于执行图3所示的方法300或图4所示的方法400。
[0092]在一些实施例中,本申请还提供了一种包括指令的非易失性计算机可读存储介质,例如包括指令的存储器,上述指令可由例如图2所示的网络监控装置16的处理器23执行以实现图3所示的方法300或图4所示的方法400。例如,非易失性计算机可读存储介质可以是R0M、随机存取存储器(RAM)、CD-ROM、磁带、闪存、硬盘、软盘和光数据存储设备等。
[0093]应当注意,尽管在上文详细描述中提及了本申请实施例的网络监控装置的若干模块或子模块,但是这种划分仅仅是示例性的而非强制性的。实际上,根据本申请的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
[0094]此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0095]本技术领域的普通技术人员可以通过研究说明书、公开的内容及附图和所附的权利要求书,理解和实施对披露的实施方式的其他改变。在权利要求中,措词“包括”不排除其他的元素和步骤,并且措辞“一”、“一个”不排除复数。在发明的实际应用中,一个零件可以执行权利要求中所引用的多个技术特征的功能。权利要求中的任何附图标记不应理解为对范围的限制。
【主权项】
1.一种网络监控方法,其特征在于,包括: 接收网络上传输的数据包,其中所述数据包具有指示所述数据包传输的网络流的流信息; 获取所述数据包的流信息; 检测元数据库中是否存在对应于所述数据包的流信息,其中所述元数据库用于存储元数据和与其相关联的流信息; 根据所述流信息的检测结果,生成与所述数据包的传输相关的元数据,并将其与对应的流信息相关联;以及 将被生成的元数据和与其相关联的流信息存储到所述元数据库中。2.根据权利要求1所述的网络监控方法,其特征在于,所述根据所述流信息的检测结果,生成与所述数据包的传输相关的元数据的步骤包括: 如果检测到元数据库中不具有对应于所述数据包的流信息,则从所述数据包中提取与其传输相关的数据以生成所述元数据;以及 如果检测到元数据库中具有对应于所述数据包的流信息,则从所述元数据库中复制与所述流信息相关联的元数据作为所述数据包的元数据。3.根据权利要求2所述的网络监控方法,其特征在于,从所述数据包中提取与其传输相关的数据以生成所述元数据的步骤包括: 复制和/或处理所述数据包包头的至少一部分以得到所述数据包的元数据。4.根据权利要求3所述的网络监控方法,其特征在于,所述处理所述数据包包头的至少一部分包括利用一个或多个预定转换函数来转换所述数据包包头中包含的至少一部分数据。5.根据权利要求1所述的网络监控方法,其特征在于,将所述元数据与对应的流信息相关联包括:将所述流信息包含在生成的元数据中。6.根据权利要求1所述的网络监控方法,其特征在于,所述被接收的数据包是网络上传输的多个数据包中的一个,所述网络监控方法包括: 接收所述多个数据包,并根据对应于所述多个数据包的元数据,生成针对所述多个数据包的网络统计信息。7.根据权利要求6所述的网络监控方法,其特征在于,所述网络统计信息包括源地址和目的地址,源端口和目的端口,源域标识符,目的域标识符,服务类型标识符,数据包流向,协议标识符,VLAN标识符,数据包的计数,和/或数据包的大小。8.根据权利要求1所述的网络监控方法,其特征在于,所述网络监控方法还包括: 将所述数据包存储在数据包库中,其中所述数据包被分配了对应的所述元数据库中的元数据。9.根据权利要求1所述的网络监控方法,其特征在于,所述将被生成的元数据和与其相关联的流信息存储到所述元数据库中的步骤包括: 将所述数据包的被生成的元数据和与其相关联的流信息缓存到缓冲存储器中; 将被缓存的所述数据包的元数据和相关联的流信息、以及被缓存的其他数据包的元数据和相关联的流信息从所述缓冲存储器异步地转移到所述元数据库中。10.根据权利要求1所述的网络监控方法,其特征在于,所述被接收的数据包是网络上传输的一组数据包中的一个,所述网络监控方法包括: 接收该组数据包;以及 如果该组数据包中的每个数据包均被分配了对应的所述元数据库中的元数据,则对该组数据包添加指示每个数据包被分配了对应元数据的块标记。11.根据权利要求10所述的网络监控方法,其特征在于,所述网络监控方法还包括: 使用元数据过滤器来过滤具有所述块标记的该组数据包。12.根据权利要求1所述的网络监控方法,其特征在于,所述元数据包括一对源地址及目的地址、一对源端口和目的端口、源端子网络标识符、目的端子网络标识符、数据包流向、服务类型标识符、协议标识符、应用标识符和/或VLAN标识符。13.根据权利要求1所述的网络监控方法,其特征在于,所述流信息包括一对源地址及目的地址。14.根据权利要求13所述的网络监控方法,其特征在于,所述流信息还包括一对源端口和目的端口。15.一种用于过滤网络上传输的至少一组数据包的方法,其特征在于,所述方法包括: 提供元数据过滤器和数据包过滤器,其中所述数据包过滤器关联于所述元数据过滤器; 针对所述至少一组数据包中的每组数据包,检测其是否具有块标记,其中所述块标记指示所述该组数据包被分配了与其中的每个数据包的传输相关的元数据;以及 根据所述块标记的检测结果使用所述元数据过滤器或所述数据包过滤器来过滤所述至少一组数据包。16.根据权利要求15所述的方法,其特征在于,所述根据所述块标记的检测结果使用所述元数据过滤器或所述数据包过滤器来过滤所述至少一组数据包的步骤包括: 如果检测到所述至少一组数据包中的一组数据包被分配了一组元数据,则使用所述元数据过滤器来过滤该组数据包;以及 如果检测到所述至少一组数据包中的一组数据包未被分配一组元数据,则使用所述数据包过滤器来过滤该组数据包。17.根据权利要求15所述的方法,其特征在于,所述至少一组数据包中的每组数据包具有数据块头,并且所述块标记被添加在所述数据块头中。18.根据权利要求17所述的方法,其特征在于,所述至少一组数据包是由数据包组索引来索引的,并且所述块标记还被添加在所述数据包块索引中。19.根据权利要求15所述的方法,其特征在于,所述方法还包括: 从所述至少一组数据包中获取被过滤的数据包。20.根据权利要求15所述的方法,其特征在于,所述数据包过滤器具有至少一个预定过滤条件,其与所述元数据过滤器中的至少一个过滤条件对应并可相互转换。21.根据权利要求15所述的方法,其特征在于,所述元数据包括一对源地址及目的地址、一对源端口和目的端口、源端子网络标识符、目的端子网络标识符、数据包流向、服务类型标识符、协议标识符、应用标识符和/或VLAN标识符。22.一种用于过滤网络上传输的至少一个数据包的方法,其特征在于,所述方法包括: 提供元数据过滤器和数据包过滤器,其中所述数据包过滤器关联于所述元数据过滤器; 针对所述至少一个数据包中的每个数据包,检测其是否具有对应的元数据;以及 根据所述元数据的检测结果使用所述元数据过滤器或所述数据包过滤器来过滤所述至少一个数据包。23.一种网络监控装置,其特征在于,包括: 接收装置,用于接收网络上传输的数据包,其中所述数据包具有指示所述数据包传输的网络流的流信息; 流信息获取装置,用于获取所述数据包的流信息; 检测装置,用于检测元数据库中是否存在对应于所述数据包的流信息,其中所述元数据库用于存储元数据和与其相关联的流信息; 元数据生成装置,用于根据所述流信息的检测结果,生成与所述数据包的传输相关的元数据,并将其与对应的流信息相关联;以及 存储装置,用于将被生成的元数据和与其相关联的流信息存储到所述元数据库中。24.一种用于过滤网络上传输的至少一组数据包的装置,其特征在于,所述装置包括: 元数据过滤器; 数据包过滤器,其中所述数据包过滤器关联于所述元数据过滤器; 标记检测装置,用于针对所述至少一组数据包中的每组数据包,检测其是否具有块标记,其中所述块标记指示所述该组数据包被分配了与其中的每个数据包的传输相关的元数据;以及 过滤器选择装置,用于根据所述块标记的检测结果使用所述元数据过滤器或所述数据包过滤器来过滤所述至少一组数据包。
【文档编号】H04L12/24GK105827474SQ201510011673
【公开日】2016年8月3日
【申请日】2015年1月9日
【发明人】潘阿荣, R·福格特, 章亮, 潘世光
【申请人】丹纳赫(上海)工业仪器技术研发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1