一种网络流特征的提取与存储方法技术

技术编号:18458818 阅读:28 留言:0更新日期:2018-07-18 12:42
一种网络流特征的提取与存储方法,包括以下步骤:S1:使用gopacket数据包工具驱动libpcap函数包,捕捉原始的网络数据包,按网络的不同的层次的特性提取网络数据包,得到特征原文数据,并且进行落盘处理,生成本地网络数据包文件并存储;S2:使用avro二进制序列化的方式将特征原文数据序列化成特征二进制数据;S3:将特征二进制数据写入到分布式消息队列构成的数据管道中,进行数据的缓存存储,形成缓存数据;S4:将缓存数据进行反序列化处理得到特征数据,获取到所述特征原文数据,运用窗口运算获取所述特征原文数据的统计特征数据;S5:将所述特征原文数据和统计特征数据用列式稀疏存储的方式存储在分布式数据库Hbase中。

A method of extracting and storing network flow characteristics

A method of extracting and storing network flow features, including the following steps: S1: using the gopacket packet tool to drive Libpcap function packets, capture the original network packets, extract network packets according to the characteristics of different levels of the network, get the feature original data, and process the local network data to generate local network data. Packet file and storage; S2: using Avro binary serialization to sequence the characteristic original data into characteristic binary data; S3: write the feature binary data into a data pipeline composed of distributed message queues to store the data and form cached data; S4: the cache data is in the anti serialization section. The feature data is obtained, the original data is obtained, and the statistical feature data of the original text data are obtained by window operation; S5: the features of the original data and the statistical feature data are stored in the distributed database Hbase in a column sparse storage manner.

【技术实现步骤摘要】
一种网络流特征的提取与存储方法
本专利技术涉及计算机通信
,具体涉及一种网络流特征的提取与存储方法。
技术介绍
目前许多的网络特征提取工具往往依赖于开源软件如:snort、SNMP、netflow等,物理硬件资源利用率得不到很好的提升,磁盘的IO瓶颈得不到解决,网络资源大量浪费,以及数据的可靠、冗余等机制的缺失,阻碍系统整体的性能、可靠性,最终导致大量的物理、人力资源的浪费。并且snort等的工具的不可控性会带来很多安全性问题以及更多的人力成本,同时,面对海量网络数据流的情况下,传统的网络流特征提取工具的性能不足以承担高速网络的网络流特征提取与存储工作。本专利技术所使用的特征提取技术能够在大流量的情况下保障整个系统的高效性、稳定性,节省物理、人力成本。在实际生产环境中,特征数据流的传输,往往采用原文的方式在数据管道中流转,处理灵活性低,造成了网络资源的浪费,容易达到网络瓶颈,进而从而引发整个系统的停滞。
技术实现思路
针对现有技术中所存在的不足,本专利技术提供了一种网络流特征的提取与存储方法,解决在有限的网络条件下保障网络流特征提取的鲁棒性、高效性,保证存储的可用性、可靠性的问题。为实现上述目的,本专利技术采用了如下的技术方案:一种网络流特征的提取与存储方法,包括以下步骤:S1:使用gopacket数据包工具驱动libpcap函数包,按网络的不同的层次的特性对网络数据进行网络数据包提取,得到特征原文数据,并且进行落盘处理,生成本地数据包文件并存储;S2:使用avro二进制序列化的方式将特征原文数据序列化成特征二进制数据;S3:将特征二进制数据写入到分布式消息队列构成的数据管道中,进行数据的缓存存储;S4:提取缓存数据进行反序列化处理得到特征数据,运用基于Flink流式处理引擎的窗口运算获取所述特征数据的统计特征数据;S5:将所述特征数据和统计特征数据拼接成网络流特征,用列式稀疏存储的方式将网络流特征存储在分布式数据库Hbase中。进一步的,运用基于Flink流式处理引擎的窗口运算获取所述特征数据的统计特征数据,得到数量统计特征数据和时间统计特征数据,具体实现步骤为:S4-1:建立时间窗口并设定时间阈值;S4-2:对进入时间窗口的特征数据中的每一条数据时数据进行信息计算;S4-3:到达时间窗口的时间阈值时,调用窗口计算,得出时间统计特征数据;S4-4:建立数量窗口并设定数量时间阈值;S4-5:对进入窗口的特征数据中的每一条数据时数据进行信息计算;S4-6:到达时间数量时间阈值时,调用窗口计算,得出数量统计特征数据。进一步的,特征原文数据的类型包括特征包括Ethernet、IP、ICMP、TCP和UDP五种协议的报文头部数值特征。进一步的,步骤S1中特征原文数据提取的具体步骤为:S1-1:将原始的网络数据包镜像汇聚,得到镜像数据;S1-2:捕获网络数据包:运用libpcap函数包处理镜像数据捕获网络数据包;S1-3:运用gopacket工具读取网络数据包,按照网络的不同的层次的特性,提取各个协议的报文头部特征,既得到特征原文数据,并打包成多个本地的pcap包,既网络数据包本地文件。进一步的,所述步骤S1-1中:原始的网络数据包镜像汇聚的处理过程为:得到镜像数据是通过网络设备的SPAN模块,将其他端口的网络流镜像到指定的的端口,获取整个网络的镜像网络流。相比于现有技术,本专利技术具有如下有益效果:本专利技术创新的使用avro二进制序列化的方式进行数据特征流的传输,提供更灵活的数据流传输方式,节省网络资源,提高系统的整体性能。同时,本专利技术所使用的基于分布式文件系统的分布式数据库来进行流量特征的存储,相对于市面上其他的直接采用本地磁盘的存储方案,具有高可靠、高可用、大容量等特点,提供更可靠、高效的存储服务。附图说明图1为本专利技术结构框图;图2为特征原文数据中Ethernet和IP协议包含特征内容表图;图3为特征原文数据中ICMP、TCP和UDP协议包含特征内容表图。具体实施方式相关术语解释:Libpcap:一种用于捕获网络数据包的函数包,具有高性能、高稳定的特点,目前被市面上大多数捕获工具所采用;Gopacket:一种驱动libpcap函数包,捕获并解析网络包数据的工具。具有高效率、低资源消耗等特点;Kakfa:是一种具有优秀的性能、可靠性的分布式消息队列,使用生产者消费者模型,在本专利技术中用来打造高性能、高可靠的数据管道;Flink:新一代真正意义上的流式处理引擎,具有优秀的性能与丰富的处理API;在本专利技术中用于切分特征以及提取统计特征;HDFS:一种分布式文件系统,能存储PB级以上的数据,具有优秀的可靠性和性能。在本专利技术中作为分布式数据库的底层存储支撑;HBase:一种列式分布式数据库,具有较好的写入性能与存储性能,采用列式稀疏存储,在本专利技术中用于存储最终的特征数据;Avro:一种二进制序列化文件格式,具有高性能、低资源占用、低空间占用、高灵活性的特性,在本专利技术中用于数据管道前后的数据交换,节约网络资源。下面结合附图对本专利技术做进一步的说明。如图1所示,本专利技术所述的一种网络流特征的提取与存储方法,包括以下步骤:S1:使用gopacket数据包工具驱动libpcap函数包,按网络的不同的层次的特性对网络数据进行数据特征提取,得到特征原文数据,并且进行落盘处理,生成本地数据包文件并存储。Libpcap是目前unix以及linux平台下的基础网络数据捕获函数包,能够提供高性能的数据包捕获服务。本专利技术创新的使用gopacket数据包工具来驱动libpcap函数包,捕捉原始的网络数据包。捕获到的数据包包含了应用层、网络层、传输层、数据链路层等四层的数据内容。其中很多的数据内容是没有价值的,因此需要进行特征的再次提取。同时,将数据包进行落盘处理,生成本地pcap包文件,用于长时间存储保存,用于后续发现网络异常行为问题时方便进行数据回放或查找。S2:使用avro二进制序列化的方式将特征原文数据序列化成特征二进制数据;avro二进制序列化格式,通过定义数据组装模式(schema),将特征原文数据序列化成二进制格式(bytes),进行发送。使用avro二进制序列化的方式具有存储空间占用小、序列化效率高等特性,能够有效的节约网络资源。同时,avro二进制格式自带的动态类型(Dynamictyping)特性,使得在进行特征模式升级时,能够提供更好的兼容性,不需要进行多次编码修改,节省人力成本。S3:将特征二进制数据写入到分布式消息队列构成的数据管道中,进行数据的缓存存储,形成缓存数据;数据管道层连接了数据收集层与实时计算层,具有承上启下的作用。数据管道为数据收集层所收集到的数据提供了一个缓冲通道以及统一的数据通道。在真实的场景中,往往会出现瞬间访问量过大、或者下游实时处理出现停顿的问题,这是数据管道的缓冲作用就尤为重要,能够在真实场景中保障数据传输的可靠性,避免数据的丢失,提升整个系统的鲁棒性。同时统一的数据管道利于数据流的管理,节省更多的人力成本。使用分布式消息队列(Kafka)作为数据管道的基础,Kafka是一款工业界非常流行的消息队列软件,能够同时支持多个生产者与消费者,保障数据传输的高效性,具备的数据分区复制(replica)功能,保本文档来自技高网...

【技术保护点】
1.一种网络流特征的提取与存储方法,其特征在于,包括以下步骤:S1:使用gopacket数据包工具驱动libpcap函数包,按网络的不同的层次的特性对网络数据进行网络数据包提取,得到特征原文数据,并且进行落盘处理,生成本地数据包文件并存储;S2:使用avro二进制序列化的方式将特征原文数据序列化成特征二进制数据;S3:将特征二进制数据写入到分布式消息队列构成的数据管道中,进行数据的缓存存储;S4:提取缓存数据进行反序列化处理得到特征数据,运用基于Flink流式处理引擎的窗口运算获取所述特征数据的统计特征数据;S5:将所述特征数据和统计特征数据拼接成网络流特征,用列式稀疏存储的方式将网络流存储在分布式数据库Hbase中。

【技术特征摘要】
1.一种网络流特征的提取与存储方法,其特征在于,包括以下步骤:S1:使用gopacket数据包工具驱动libpcap函数包,按网络的不同的层次的特性对网络数据进行网络数据包提取,得到特征原文数据,并且进行落盘处理,生成本地数据包文件并存储;S2:使用avro二进制序列化的方式将特征原文数据序列化成特征二进制数据;S3:将特征二进制数据写入到分布式消息队列构成的数据管道中,进行数据的缓存存储;S4:提取缓存数据进行反序列化处理得到特征数据,运用基于Flink流式处理引擎的窗口运算获取所述特征数据的统计特征数据;S5:将所述特征数据和统计特征数据拼接成网络流特征,用列式稀疏存储的方式将网络流存储在分布式数据库Hbase中。2.如权利要求1所述的一种网络流特征的提取与存储方法,其特征在于,运用基于Flink流式处理引擎的窗口运算获取所述特征数据的统计特征数据,得到数量统计特征数据和时间统计特征数据,具体实现步骤为:S4-1:建立时间窗口并设定时间阈值;S4-2:对进入时间窗口的特征数据中的每一条数据时数据进行信息计算;S4-3:到达时间窗口的时间阈值时,调用窗口计算,得出时间统计特征数据...

【专利技术属性】
技术研发人员:高英李若鹏靳亚洽刘煜
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

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

1