CN112468365A - 用于网络镜像流量的数据质量检测方法、***及介质 - Google Patents
用于网络镜像流量的数据质量检测方法、***及介质 Download PDFInfo
- Publication number
- CN112468365A CN112468365A CN202011342778.2A CN202011342778A CN112468365A CN 112468365 A CN112468365 A CN 112468365A CN 202011342778 A CN202011342778 A CN 202011342778A CN 112468365 A CN112468365 A CN 112468365A
- Authority
- CN
- China
- Prior art keywords
- data packet
- target data
- network
- protocol
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 47
- 238000004458 analytical method Methods 0.000 claims abstract description 74
- 238000001914 filtration Methods 0.000 claims abstract description 37
- 238000007619 statistical method Methods 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims description 16
- 102100026278 Cysteine sulfinic acid decarboxylase Human genes 0.000 claims description 7
- 108010064775 protein C activator peptide Proteins 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000013480 data collection Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005641 tunneling Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种用于网络镜像流量的数据质量检测方法、***及介质;所述方法包括以下步骤:获取网络数据包;对网络数据包进行过滤,以获取过滤后的目标数据包;将目标数据包分发至并行的多个工作流中;对每一工作流中的目标数据包进行协议识别;对工作流中的目标数据包执行解析操作;查找或创建数据流,并以数据流为单位对目标数据包进行统计分析和质量分析;将对应目标数据包的数据流添加到流超时链表中进行管理;在流超时后,生成对应统计分析和质量分析的分析结果并输出;本发明能够解决大流量下数据包质量分析的痛点,其输出结果能够给网络运维人员或开发人员提供指导性建议,协助其解决网络数据异常的问题。
Description
技术领域
本发明涉及物理领域,尤其涉及网络通信中数据质量检测技术,特别是一种用于网络镜像流量的数据质量检测方法、***及介质。
背景技术
随着互联网技术的发展,网络中的数据流量成倍增长,特别是数据中心的流量,即使在分光后,流量速率也至少在Gbps级别,如何检测高速网络数据的完整性成为当前行业中的难题。
目前最常用的网络数据分析方式是采用Tcpdump+Wireshark的模式,然而Tcpdump无法实时保存高速的网络数据包,并且巨大的网络流量对磁盘空间也是一种挑战,即使保存下来,Wireshark也很难一次性加载那么大的文件到内存中,特别是当网络中一个TCP流的数据达到GB级别的时候,这种分析方式带来的困难和误差会急剧加大。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种用于网络镜像流量的数据质量检测方法、***及介质,用于解决现有网络数据分析方式存在误差大、难度高的问题。
为实现上述目的及其他相关目的,本发明提供一种用于网络镜像流量的数据质量检测方法,包括以下步骤:获取网络数据包;根据预设过滤规则对所述网络数据包进行过滤,以获取过滤后的目标数据包;将所述目标数据包分发至并行的多个工作流中;对每一所述工作流中的目标数据包进行协议识别,确定所述工作流中的目标数据包的协议类型;按照所述协议类型对所述工作流中的目标数据包执行解析操作,以提取协议关键信息;根据所述协议关键信息查找或创建数据流,并以所述数据流为单位对所述目标数据包进行统计分析和质量分析;将对应所述目标数据包的数据流添加到流超时链表中进行管理;在流超时后,生成对应所述统计分析和所述质量分析的分析结果并输出。
于本发明的一实施例中,获取网络数据包包括以下步骤:初始化数据采集引擎;所述数据采集引擎包括:网络流采集引擎和离线PCAP包采集引擎;根据配置项切换使用所述网络流采集引擎或所述离线PCAP包采集引擎进行所述网络数据包的采集,以实现获取所述网络数据包。
于本发明的一实施例中,所述预设过滤规则采用ACL规则;根据预设过滤规则对所述网络数据包进行过滤,以获取过滤后的目标数据包包括以下步骤:根据所述ACL规则对所述网络数据包进行过滤;若所述网络数据包不满足所述ACL规则,则将所述网络数据包丢弃,并重新获取一网络数据包,直至获取的网络数据包满足所述ACL规则,将满足所述ACL规则的网络数据包作为所述目标数据包。
于本发明的一实施例中,将所述目标数据包分发至并行的多个工作流中包括以下步骤:判断所述目标数据包是否包裹在隧道协议中;若所述目标数据包包裹在所述隧道协议中,则先剥离所述目标数据包外层的所述隧道协议,然后执行数据包分发步骤;若所述目标数据包没有包裹在所述隧道协议中,则直接执行所述数据包分发步骤;其中,所述数据包分发步骤包括以下步骤:提取所述目标数据包的IP地址和/或五元组,并以所述IP地址和/或所述五元组为关键字,计算出对应所述目标数据包的哈希值;将所述哈希值对所述并行的多个工作流的个数进行取余处理,并将取余处理的结果作为要分发的工作流的索引,以实现将不同的所述目标数据包分发到不同的工作流。
于本发明的一实施例中,对所述工作流中的所述目标数据包进行协议识别的识别条件包括:按协议号识别、按已知端口号识别、按匹配固定字段的方式识别;对每一所述工作流中的目标数据包进行协议识别包括以下步骤:按所述协议号对所述目标数据包进行识别;按所述已知端口号对所述目标数据包进行识别;按所述匹配固定字段的方式对所述目标数据包进行识别;若满足所述识别条件,则执行所述解析操作;若不满足所述识别条件,则将所述目标数据包丢弃。
于本发明的一实施例中,所述解析操作是按照TCP/IP协议栈从下至上进行逐层解析,且是对多层嵌套协议的递归解析;所述协议关键信息包括:IP地址和/或五元组。
于本发明的一实施例中,根据所述协议关键信息查找或创建数据流,并以所述数据流为单位对所述目标数据包进行统计分析和质量分析包括以下步骤:以所述协议关键信息为关键字,查找对应所述目标数据包的数据流;若对应所述目标数据包的数据流存在,则以对应所述目标数据包的数据流为单位,实现对所述目标数据包的统计分析和质量分析;若对应所述目标数据包的数据流不存在,则创建新的数据流,并将所述新的数据流作为对应所述目标数据包的数据流,实现以对应所述目标数据包的数据流为单位,对所述目标数据包进行统计分析和质量分析;其中,对所述目标数据包的统计分析包括:统计对应所述目标数据包的数据流中原始数据包的个数、统计对应所述目标数据包的数据流的原始字节数、统计对应所述目标数据包的数据流中的TCP标识;对所述目标数据包的质量分析包括:分析所述目标数据包的乱序程度并计算乱序率,及分析所述目标数据包的负载数据的完整程度并计算丢包率。
于本发明的一实施例中,所述流超时链表采用双向侵入式链表;所述分析结果输出至网络和/或磁盘中;在所述流超时链表中进行管理时,使用基于LRU算法的流超时管理策略,并且使用所述流超时链表从头到尾存储流结构,流的活跃度从高到低,每次进行流超时检测时反向遍历所述流超时链表,并设置每轮检测的预设个数,当遇到超时的流时,则输出所述分析结果,并从所述流超时链表中删除所述流结构。
本发明提供一种用于网络镜像流量的数据质量检测***,包括:数据采集模块、数据过滤模块、数据分发模块、协议识别模块、协议解析模块、质量分析模块、流超时管理模块及输出管理模块;所述数据采集模块用于获取网络数据包;所述数据过滤模块用于根据预设过滤规则对所述网络数据包进行过滤,以获取过滤后的目标数据包;所述数据分发模块用于将所述目标数据包分发至并行的多个工作流中;所述协议识别模块用于对每一所述工作流中的目标数据包进行协议识别,确定所述工作流中的目标数据包的协议类型;所述协议解析模块用于按照所述协议类型对所述工作流中的目标数据包执行解析操作,以提取协议关键信息;所述质量分析模块用于根据所述协议关键信息查找或创建数据流,并以所述数据流为单位对所述目标数据包进行统计分析和质量分析;所述流超时管理模块用于将对应所述目标数据包的数据流添加到流超时链表中进行管理;所述输出管理模块用于在流超时后,生成对应所述统计分析和所述质量分析的分析结果并输出。
本发明提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的用于网络镜像流量的数据质量检测方法。
如上所述,本发明所述的用于网络镜像流量的数据质量检测方法、***及介质,具有以下有益效果:
与现有技术相比,本发明能够完成对高速网络流量的质量分析,避免了存储网络数据对磁盘空间的消耗,同时缓解了计算机运行内存不足的尴尬,其生成的分析结果能够给网络运维人员或开发人员提供指导性建议,协助其解决网络数据异常的问题。
附图说明
图1显示为本发明的用于网络镜像流量的数据质量检测方法于一实施例中的流程图。
图2显示为本发明的获取网络数据包于一实施例中的流程图。
图3显示为本发明的根据预设过滤规则对网络数据包进行过滤,以获取过滤后的目标数据包于一实施例中的流程图。
图4显示为本发明的将目标数据包分发至并行的多个工作流中于一实施例中的流程图。
图5显示为本发明的对每一工作流中的目标数据包进行协议识别于一实施例中的流程图。
图6显示为本发明的根据协议关键信息查找或创建数据流,并以数据流为单位对目标数据包进行统计分析和质量分析于一实施例中的流程图。
图7显示为本发明的用于网络镜像流量的数据质量检测***于一实施例中的结构示意图。
图8显示为本发明的用于网络镜像流量的数据质量检测***于一实施例中的工作原理图。
图9显示为本发明的用于网络镜像流量的数据质量检测方法于一实施例中的实施流程图。
图10显示为本发明的流超时管理模块于一实施例中的工作流程图。
图11显示为本发明的TCP数据包乱序分析于一实施例中的工作流程图。
图12显示为本发明的TCP负载数据完整程度分析于一实施例中的工作流程图。
标号说明
71 数据采集模块;
72 数据过滤模块;
73 数据分发模块;
74 协议识别模块;
75 协议解析模块;
76 质量分析模块;
87 流超时管理模块;
78 输出管理模块;
S1~S8 步骤;
S11~S12 步骤;
S21~S23 步骤;
S31~S33 步骤;
S41~S43 步骤;
S61~S63 步骤。
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的用于网络镜像流量的数据质量检测方法、***及介质,与现有技术相比,本发明能够完成对高速网络流量的质量分析,避免了存储网络数据对磁盘空间的消耗,同时缓解了计算机运行内存不足的尴尬,其生成的分析结果能够给网络运维人员或开发人员提供指导性建议,协助其解决网络数据异常的问题。
如图1所示,于一实施例中,本发明的用于网络镜像流量的数据质量检测方法包括以下步骤:
步骤S1、获取网络数据包。
如图2所示,于一实施例中,获取网络数据包包括以下步骤:
步骤S11、初始化数据采集引擎。
需要说明的是,所述数据采集引擎包括:网络流采集引擎和离线PCAP包采集引擎。
步骤S12、根据配置项切换使用所述网络流采集引擎或所述离线PCAP包采集引擎进行所述网络数据包的采集,以实现获取所述网络数据包。
具体地,根据配置项来选择是从网卡还是本地PCAP文件接收该网络数据包。
步骤S2、根据预设过滤规则对所述网络数据包进行过滤,以获取过滤后的目标数据包。
于一实施例中,所述预设过滤规则采用ACL规则。
需要说明的是,该ACL规则是Cisco IOS所提供的一种访问控制技术,ACL使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。
如图3所示,于一实施例中,根据预设过滤规则对所述网络数据包进行过滤,以获取过滤后的目标数据包包括以下步骤:
步骤S21、根据所述ACL规则对所述网络数据包进行过滤。
步骤S22、若所述网络数据包不满足所述ACL规则,则将所述网络数据包丢弃,并重新获取一网络数据包,直至获取的网络数据包满足所述ACL规则。
步骤S23、若所述网络数据包满足所述ACL规则,则将满足所述ACL规则的网络数据包作为所述目标数据包。
步骤S3、将所述目标数据包分发至并行的多个工作流中。
如图4所示,于一实施例中,将所述目标数据包分发至并行的多个工作流中包括以下步骤:
步骤S31、判断所述目标数据包是否包裹在隧道协议中。
若所述目标数据包包裹在所述隧道协议中,则先执行步骤S32,再执行步骤S33(数据分发步骤)。
若所述目标数据包没有包裹在所述隧道协议中,则直接执行步骤S33。
步骤S32、剥离所述目标数据包外层的所述隧道协议。
如图4所示,于一实施例中,所述数据分发步骤(步骤S33)包括以下步骤:
步骤S331、提取所述目标数据包的IP地址和/或五元组,并以所述IP地址和/或所述五元组为关键字,计算出对应所述目标数据包的哈希值。
步骤S332、将所述哈希值对所述并行的多个工作流的个数进行取余处理,并将取余处理的结果作为要分发的工作流的索引,以实现将不同的所述目标数据包分发到不同的工作流。
步骤S4、对每一所述工作流中的目标数据包进行协议识别,确定所述工作流中的目标数据包的协议类型。
于一实施例中,对所述工作流中的所述目标数据包进行协议识别的识别条件包括:按协议号识别、按已知端口号识别、按匹配固定字段的方式识别。
如图5所示,于一实施例中,对每一所述工作流中的目标数据包进行协议识别包括以下步骤:
步骤S41、按所述协议号对所述目标数据包进行识别。
步骤S42、按所述已知端口号对所述目标数据包进行识别。
步骤S43、按所述匹配固定字段的方式对所述目标数据包进行识别。
需要说明的是,若所述工作流中的目标数据包满足所述识别条件(按协议号识别、按已知端口号识别、按匹配固定字段的方式识别),则执行所述解析操作(步骤S5);若不满足所述识别条件,则将所述目标数据包丢弃。
步骤S5、按照所述协议类型对所述工作流中的目标数据包执行解析操作,以提取协议关键信息。
于一实施例中,所述解析操作是按照TCP/IP协议栈从下至上进行逐层解析,且是对多层嵌套协议的递归解析。
需要说明的是,所述协议关键信息包括但并不限于:IP地址和/或五元组。
步骤S6、根据所述协议关键信息查找或创建数据流,并以所述数据流为单位对所述目标数据包进行统计分析和质量分析。
如图6所示,于一实施例中,根据所述协议关键信息查找或创建数据流,并以所述数据流为单位对所述目标数据包进行统计分析和质量分析包括以下步骤:
步骤S61、以所述协议关键信息为关键字,查找对应所述目标数据包的数据流。
步骤S62、若对应所述目标数据包的数据流存在,则以对应所述目标数据包的数据流为单位,实现对所述目标数据包的统计分析和质量分析。
步骤S63、若对应所述目标数据包的数据流不存在,则创建新的数据流,并将所述新的数据流作为对应所述目标数据包的数据流,实现以对应所述目标数据包的数据流为单位,对所述目标数据包进行统计分析和质量分析。
需要说明的是,步骤S62和步骤S63是以择一的方式执行的。
于一实施例中,对所述目标数据包的统计分析包括但并不限于:统计对应所述目标数据包的数据流中原始数据包的个数、统计对应所述目标数据包的数据流的原始字节数、统计对应所述目标数据包的数据流中的TCP标识。
于一实施例中,对所述目标数据包的质量分析包括但并不限于:分析所述目标数据包的乱序程度并计算乱序率,及分析所述目标数据包的负载数据的完整程度并计算丢包率。
步骤S7、将对应所述目标数据包的数据流添加到流超时链表中进行管理。
优选地,所述流超时链表采用双向侵入式链表。
步骤S8、在流超时后,生成对应所述统计分析和所述质量分析的分析结果并输出。
需要说明的是,所述分析结果可输出至网络和/或磁盘中。
进一步地,在所述流超时链表中进行管理时,使用基于LRU算法的流超时管理策略,并且使用所述流超时链表从头到尾存储流结构,流的活跃度从高到低,每次进行流超时检测时反向遍历所述流超时链表,并设置每轮检测的预设个数,当遇到超时的流时,则输出所述分析结果,并从所述流超时链表中删除所述流结构。
需要说明的是,本发明所述的用于网络镜像流量的数据质量检测方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
如图7所示,于一实施例中,本发明的用于网络镜像流量的数据质量检测***包括数据采集模块71、数据过滤模块72、数据分发模块73、协议识别模块74、协议解析模块75、质量分析模块76、流超时管理模块77及输出管理模块78。
所述数据采集模块71用于获取网络数据包。
所述数据过滤模块72用于根据预设过滤规则对所述网络数据包进行过滤,以获取过滤后的目标数据包。
所述数据分发模块73用于将所述目标数据包分发至并行的多个工作流中。
所述协议识别模块74用于对每一所述工作流中的目标数据包进行协议识别,确定所述工作流中的目标数据包的协议类型。
所述协议解析模块75用于按照所述协议类型对所述工作流中的目标数据包执行解析操作,以提取协议关键信息。
所述质量分析模块76用于根据所述协议关键信息查找或创建数据流,并以所述数据流为单位对所述目标数据包进行统计分析和质量分析。
所述流超时管理模块77用于将对应所述目标数据包的数据流添加到流超时链表中进行管理。
所述输出管理模块78用于在流超时后,生成对应所述统计分析和所述质量分析的分析结果并输出。
需要说明的是,所述数据采集模块71、所述数据过滤模块72、所述数据分发模块73、所述协议识别模块74、所述协议解析模块75、所述质量分析模块76、所述流超时管理模块77及所述输出管理模块78的结构及原理与上述用于网络镜像流量的数据质量检测方法中的步骤(步骤S1~步骤S8)一一对应,故在此不再赘述。
需要说明的是,应理解以上***的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述***的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述***的存储器中,由上述***的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个数字信号处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上***(system-on-a-chip,简称SOC)的形式实现。
本发明的存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述的用于网络镜像流量的数据质量检测方法。所述存储介质包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
下面通过具体实施例来进一步解释说明本发明的用于网络镜像流量的数据质量检测***。
如图8至图12所示,于一实施例中,该用于网络镜像流量的数据质量检测***及采用该***实现的用于网络镜像流量的数据质量检测方法的工作原理如下:
一、该用于网络镜像流量的数据质量检测***中的数据采集模块使用DPDK作为收包引擎。
具体地,该数据采集模块获取网络数据包的原理如下:
首先,为***配置DPDK运行环境,包括设置巨页、绑定网卡、加载驱动等操作;然后,根据配置项统一初始化各个模块,完成各模块的资源配置工作,特别是对DPDK的初始化,确保其能够正常进行收包;最后,使用该DPDK收包引擎从网络中读取数据包,即该网络数据包。
二、该用于网络镜像流量的数据质量检测***中的数据过滤模块使用ACL规则对数据包进行过滤,当该数据包不满足条件时,则直接丢弃。
三、该用于网络镜像流量的数据质量检测***中的数据分发模块通过提取该数据包的IP地址或五元组,并以此为关键字(key)计算哈希(hash)值,hash函数使用更均匀的jhash,然后按照index=hash%count对数据包进行分发,其中,count为并行工作流的个数,index为要分发的工作流的索引。
四、该用于网络镜像流量的数据质量检测***中的协议识别模块、协议解析模块及质量分析模块,在每个工作流中分别对各自的数据包进行协议识别、协议解析及质量分析,具体先按协议号、端口号、固定字段对该数据包进行识别,确定待解析数据包的协议类型后,按照对应协议进行解析,同时提取协议关键信息,包括五元组信息等,然后以五元组为key查找或创建流,并以流为单位进行统计分析,其中,分析部分重点分析数据包的乱序程度以及负载数据的完整程度;
五、该用于网络镜像流量的数据质量检测***中的流超时管理模块通过将流添加到流超时链表中进行管理,为了性能,该流超时链表采用双向、侵入式链表,可以在O(1)时间复杂度完成对流的查找、添加、删除等操作;
六、当流超时后,使用该用于网络镜像流量的数据质量检测***中的输出管理模块将分析结果进行输出,输出方式选择以固定消息格式输出到本地磁盘。
如图10所示,于一实施例中,该流超时管理模块的工作流程如下:
(1)以五元组为key查找或创建流,所有活跃的流会被放到每个工作流相互独立hash表中,以达到O(1)的查找效率。
(2)更新流的时间戳,该步骤是流超时管理的核心,决定了流的活跃程度以及其在超时链表中的位置,并且时间戳直接决定某个流是否超时。
(3)判断当前流是否位于超时链表中,每个流结构中会保留个字段来表面其是否在超时链表中,因此相当于O(1)查找效率。
(4)如果流不在超时链表中,则直接将其***到链表的开头,反之现将其从链表中删除后再重新***到链表开头,由于是侵入式链表,流结构也会存储链表节点,同时又是双向链表,因此***、删除操作也是O(1)的效率,整个链表从头到尾,流的活跃度从高到低,即链表头部存储的流的时间戳较大(最新),尾部较小。
(5)以后在每次做超时检测时从链表尾部遍历,通过时间戳判断流是否超时,若超时则生成当前流的分析结果,发送给输出管理模块,然后从hash表和超时链表中删除流,此时该流的生命周期结束,反之则检测流程退出,待下次重新检测。
如图11所示,于一实施例中,对TCP数据包乱序的分析过程如下:
(1)设置初始序号为1。
(2)当有新数据包到来时,使用新数据包的序号初始序号作比较,若当前序号在初始序号之前,则说明新数据包到达时间较晚,即产生了乱序,然后将乱序包数加1;反之,没有乱序,乱序包数保持不变。
(3)更新初始序号为当前数据包的序号,以便下次新数据包到来时继续进行比较。
如图12所示,于一实施例中,对TCP负载数据完整程度的分析过程不考虑负载的具体内容,只关心长度是否连续;若不连续,则说明TCP负载数据存在缺失,即产生了丢包;具体地,核心过程如下:
(1)接收新的数据包,然后正向遍历重组链表,该链表也采用双向链表,从头到尾,链表节点的TCP序号从后到前,即头部序号对应的数据包理论上位于尾部序号对应数据包的后面,而抛开少量乱序情况,新到的数据包的序号一般更靠后,因此正向遍历能更快找到合适的***位置。
(2)将新数据包的序号和链表当前节点序号作比较,主要分为下面三种情况:
情况一、新数据包序号在当前节点序号之前,即乱序情形,此时需要计算理论上新数据包的下一数据包的序号再与当前节点序号做比较,以确定新数据包与当前节点对应的数据包的关系,又包括中间缺失、连续、踩踏三种情况,由于新数据包序号在前,其与链表中后续节点的关系尚不明确,因此需要对实际长度做合并后需要重新回到核心过程(1),此时把当前合并后的数据包继续作为新数据包与遍历到的节点进行比较。
情况二、新数据包序号和当前节点序号相等,此时直接合并数据包长度并退出。
情况三、新数据包序号在当前节点序号之后,此时需要计算理论上当前节点对应的下一数据包的序号再和新数据包的序号做比较,以确定新数据包与当前节点对应的数据包的关系,又包括中间缺失、连续、踩踏三种情况,此时只需要正确合并实际数据包的长度,或者直接将新数据包***链表即可。每当新的数据包到来时重复执行以上过程,即可最终确定一个流中理论上负载数据的总长度,以及中间负载数据缺失的长度,即丢包的情况,同时能够准确的排除重传和重复数据包对数据分析的影响。
需要说明的是,本发明的用于网络镜像流量的数据质量检测***可以实现本发明的用于网络镜像流量的数据质量检测方法,但本发明的用于网络镜像流量的数据质量检测方法的实现装置包括但不限于本实施例列举的用于网络镜像流量的数据质量检测***的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。
综上所述,本发明的用于网络镜像流量的数据质量检测方法、***及介质,与现有技术相比,本发明能够完成对高速网络流量的质量分析,避免了存储网络数据对磁盘空间的消耗,同时缓解了计算机运行内存不足的尴尬,其生成的分析结果能够给网络运维人员或开发人员提供指导性建议,协助其解决网络数据异常的问题;所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种用于网络镜像流量的数据质量检测方法,其特征在于,包括以下步骤:
获取网络数据包;
根据预设过滤规则对所述网络数据包进行过滤,以获取过滤后的目标数据包;
将所述目标数据包分发至并行的多个工作流中;
对每一所述工作流中的目标数据包进行协议识别,确定所述工作流中的目标数据包
的协议类型;
按照所述协议类型对所述工作流中的目标数据包执行解析操作,以提取协议关键信
息;
根据所述协议关键信息查找或创建数据流,并以所述数据流为单位对所述目标数据
包进行统计分析和质量分析;
将对应所述目标数据包的数据流添加到流超时链表中进行管理;
在流超时后,生成对应所述统计分析和所述质量分析的分析结果并输出。
2.根据权利要求1所述的用于网络镜像流量的数据质量检测方法,其特征在于,所述的获取网络数据包的步骤包括以下步骤:
初始化数据采集引擎;所述数据采集引擎包括:网络流采集引擎和离线PCAP包采集引擎;
根据配置项切换使用所述网络流采集引擎或所述离线PCAP包采集引擎进行所述网络数据包的采集,以实现获取所述网络数据包。
3.根据权利要求1所述的用于网络镜像流量的数据质量检测方法,其特征在于,所述预设过滤规则采用ACL规则;所述的根据预设过滤规则对所述网络数据包进行过滤的步骤包括以下步骤:
根据所述ACL规则对所述网络数据包进行过滤;
若所述网络数据包不满足所述ACL规则,则将所述网络数据包丢弃,并重新获取一网络数据包,直至获取的网络数据包满足所述ACL规则,将满足所述ACL规则的网络数据包作为所述目标数据包。
4.根据权利要求1所述的用于网络镜像流量的数据质量检测方法,其特征在于,所述的将目标数据包分发至并行的多个工作流的步骤中包括以下步骤:
判断所述目标数据包是否包裹在隧道协议中;
若所述目标数据包包裹在所述隧道协议中,则先剥离所述目标数据包外层的所述隧道协议,然后执行数据包分发步骤;若所述目标数据包没有包裹在所述隧道协议中,则直接执行所述数据包分发步骤;其中,
所述数据包分发步骤包括以下步骤:
提取所述目标数据包的IP地址和/或五元组,并以所述IP地址和/或所述五元组
为关键字,计算出对应所述目标数据包的哈希值;
将所述哈希值对所述并行的多个工作流的个数进行取余处理,并将取余处理的结果作为要分发的工作流的索引,以实现将不同的所述目标数据包分发到不同的工作流。
5.根据权利要求1所述的用于网络镜像流量的数据质量检测方法,其特征在于,对所述工作流中的所述目标数据包进行协议识别的识别条件包括:按协议号识别、按已知端口号识别、按匹配固定字段的方式识别;对每一所述工作流中的目标数据包进行协议识别包括以下步骤:
按所述协议号对所述目标数据包进行识别;
按所述已知端口号对所述目标数据包进行识别;
按所述匹配固定字段的方式对所述目标数据包进行识别;
若满足所述识别条件,则执行所述解析操作;若不满足所述识别条件,则将所述目标数据包丢弃。
6.根据权利要求1所述的用于网络镜像流量的数据质量检测方法,其特征在于,所述解析操作是按照TCP/IP协议栈从下至上进行逐层解析,且是对多层嵌套协议的递归解析;所述协议关键信息包括:IP地址和/或五元组。
7.根据权利要求1所述的用于网络镜像流量的数据质量检测方法,其特征在于,根据所述协议关键信息查找或创建数据流,并以所述数据流为单位对所述目标数据包进行统计分析和质量分析包括以下步骤:
以所述协议关键信息为关键字,查找对应所述目标数据包的数据流;
若对应所述目标数据包的数据流存在,则以对应所述目标数据包的数据流为单位,
实现对所述目标数据包的统计分析和质量分析;
若对应所述目标数据包的数据流不存在,则创建新的数据流,并将所述新的数据流作为对应所述目标数据包的数据流,实现以对应所述目标数据包的数据流为单位,对所述目标数据包进行统计分析和质量分析;其中,
对所述目标数据包的统计分析包括:统计对应所述目标数据包的数据流中原始数据包的个数、统计对应所述目标数据包的数据流的原始字节数、统计对应所述目标数据包的数据流中的TCP标识;
对所述目标数据包的质量分析包括:分析所述目标数据包的乱序程度并计算乱序率,及分析所述目标数据包的负载数据的完整程度并计算丢包率。
8.根据权利要求1所述的用于网络镜像流量的数据质量检测方法,其特征在于,所述流超时链表采用双向侵入式链表;所述分析结果输出至网络和/或磁盘中;
在所述流超时链表中进行管理时,使用基于LRU算法的流超时管理策略,并且使用所述流超时链表从头到尾存储流结构,流的活跃度从高到低,每次进行流超时检测时反向遍历所述流超时链表,并设置每轮检测的预设个数,当遇到超时的流时,则输出所述分析结果,并从所述流超时链表中删除所述流结构。
9.一种用于网络镜像流量的数据质量检测***,其特征在于,包括:数据采集模块、数据过滤模块、数据分发模块、协议识别模块、协议解析模块、质量分析模块、流超时管理模块及输出管理模块;
所述数据采集模块用于获取网络数据包;
所述数据过滤模块用于根据预设过滤规则对所述网络数据包进行过滤,以获取过滤
后的目标数据包;
所述数据分发模块用于将所述目标数据包分发至并行的多个工作流中;
所述协议识别模块用于对每一所述工作流中的目标数据包进行协议识别,确定所述
工作流中的目标数据包的协议类型;
所述协议解析模块用于按照所述协议类型对所述工作流中的目标数据包执行解析
操作,以提取协议关键信息;
所述质量分析模块用于根据所述协议关键信息查找或创建数据流,并以所述数据流
为单位对所述目标数据包进行统计分析和质量分析;
所述流超时管理模块用于将对应所述目标数据包的数据流添加到流超时链表中进行
管理;
所述输出管理模块用于在流超时后,生成对应所述统计分析和所述质量分析的分析
结果并输出。
10.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的用于网络镜像流量的数据质量检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011342778.2A CN112468365A (zh) | 2020-11-26 | 2020-11-26 | 用于网络镜像流量的数据质量检测方法、***及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011342778.2A CN112468365A (zh) | 2020-11-26 | 2020-11-26 | 用于网络镜像流量的数据质量检测方法、***及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112468365A true CN112468365A (zh) | 2021-03-09 |
Family
ID=74809482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011342778.2A Withdrawn CN112468365A (zh) | 2020-11-26 | 2020-11-26 | 用于网络镜像流量的数据质量检测方法、***及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112468365A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259142A (zh) * | 2021-07-07 | 2021-08-13 | 飞腾信息技术有限公司 | 虚拟机中的组播性能优化方法、***、装置及存储介质 |
CN114374748A (zh) * | 2022-01-14 | 2022-04-19 | 上海金融期货信息技术有限公司 | 基于fpga加速处理证券行情中tcp镜像的装置 |
CN114760256A (zh) * | 2022-04-14 | 2022-07-15 | 曙光网络科技有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116112399A (zh) * | 2022-12-23 | 2023-05-12 | 中核武汉核电运行技术股份有限公司 | 一种工控网络流量解析*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281213A (zh) * | 2013-04-18 | 2013-09-04 | 西安交通大学 | 一种网络流量内容提取和分析检索方法 |
CN103873712A (zh) * | 2014-04-14 | 2014-06-18 | 中国人民解放军信息工程大学 | VoIP网关检测方法及多核处理设备 |
CN103888321A (zh) * | 2014-04-14 | 2014-06-25 | 中国人民解放军信息工程大学 | 一种数据流检测方法及多核处理设备 |
CN104184659A (zh) * | 2013-05-22 | 2014-12-03 | 上海贝尔股份有限公司 | 一种用于获取网络中数据包的方法与设备 |
CN106790050A (zh) * | 2016-12-19 | 2017-05-31 | 北京启明星辰信息安全技术有限公司 | 一种异常流量检测方法及检测*** |
US20190129970A1 (en) * | 2017-10-31 | 2019-05-02 | EMC IP Holding Company LLC | Speeding deduplication using a most wanted digest cache |
-
2020
- 2020-11-26 CN CN202011342778.2A patent/CN112468365A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281213A (zh) * | 2013-04-18 | 2013-09-04 | 西安交通大学 | 一种网络流量内容提取和分析检索方法 |
CN104184659A (zh) * | 2013-05-22 | 2014-12-03 | 上海贝尔股份有限公司 | 一种用于获取网络中数据包的方法与设备 |
CN103873712A (zh) * | 2014-04-14 | 2014-06-18 | 中国人民解放军信息工程大学 | VoIP网关检测方法及多核处理设备 |
CN103888321A (zh) * | 2014-04-14 | 2014-06-25 | 中国人民解放军信息工程大学 | 一种数据流检测方法及多核处理设备 |
CN106790050A (zh) * | 2016-12-19 | 2017-05-31 | 北京启明星辰信息安全技术有限公司 | 一种异常流量检测方法及检测*** |
US20190129970A1 (en) * | 2017-10-31 | 2019-05-02 | EMC IP Holding Company LLC | Speeding deduplication using a most wanted digest cache |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113259142A (zh) * | 2021-07-07 | 2021-08-13 | 飞腾信息技术有限公司 | 虚拟机中的组播性能优化方法、***、装置及存储介质 |
CN114374748A (zh) * | 2022-01-14 | 2022-04-19 | 上海金融期货信息技术有限公司 | 基于fpga加速处理证券行情中tcp镜像的装置 |
CN114760256A (zh) * | 2022-04-14 | 2022-07-15 | 曙光网络科技有限公司 | 数据处理方法、装置、设备及存储介质 |
CN114760256B (zh) * | 2022-04-14 | 2024-01-30 | 曙光网络科技有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116112399A (zh) * | 2022-12-23 | 2023-05-12 | 中核武汉核电运行技术股份有限公司 | 一种工控网络流量解析*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112468365A (zh) | 用于网络镜像流量的数据质量检测方法、***及介质 | |
US10649838B2 (en) | Automatic correlation of dynamic system events within computing devices | |
CN107566206B (zh) | 一种流量测量方法、设备及*** | |
US20180048571A1 (en) | System and method for identification of large-data flows | |
US20020174083A1 (en) | Systems and methods for identifying and counting instances of temporal patterns | |
US9680720B1 (en) | Operations, administration, and maintenance (OAM) engine | |
US7187676B2 (en) | Apparatus and method for steering a communication to an open stream | |
TW201501556A (zh) | 用於唯一枚舉解析樹中的路徑的裝置和方法 | |
CN112486914B (zh) | 一种数据包存储与快查方法与*** | |
CN110489317B (zh) | 基于工作流的云***任务运行故障诊断方法与*** | |
US8782092B2 (en) | Method and apparatus for streaming netflow data analysis | |
CN108121788B (zh) | 子图查询方法 | |
EP2517410B1 (en) | Tracing support in a router | |
CN114327833A (zh) | 一种基于软件定义复杂规则的高效流量处理方法 | |
KR20050052636A (ko) | 인터넷 트래픽 측정을 위한 플로우 생성 방법 | |
CN109063040A (zh) | 客户端程序数据采集方法及*** | |
CN113965492A (zh) | 一种数据流统计方法及装置 | |
US20070032986A1 (en) | Efficient filtered causal graph edge detection in a causal wavefront environment | |
CN114884893A (zh) | 一种转发和控制可定义的协同流量调度方法与*** | |
US7487241B2 (en) | Performing efficient insertions in wavefront table based causal graphs | |
US9641437B2 (en) | Packet relay device and packet relay method | |
CN112272193A (zh) | 一种有效解决报文多命中流量过滤分流平台及实现方法 | |
CN112783673A (zh) | 一种调用链的确定方法、装置、计算机设备及存储介质 | |
CN114666231B (zh) | 一种多云环境下可视化运维管理方法、***及存储介质 | |
CN111431737B (zh) | 一种检测软件定义网络中数据竞争的预测性方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210309 |