欢迎来到天天文库
浏览记录
ID:9416780
大小:53.00 KB
页数:5页
时间:2018-04-30
《netflow流量采集与聚合的研究实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、NetFlow流量采集与聚合的研究实现~教育资源库 0引言 近年来,随着信息技术的飞速发展,越来越多的企业和大型机构在其内部构建基于网络的应用,复杂程度及对网络的依赖程度日益提高,各种各样的网络问题也随之产生。网络流量监测是网络管理和系统管理的一个重要组成部分,网络流量数据为网络的运行和维护提供了重要信息。这些数据对网络的资源分布、容量规划、服务质量分析、错误监测与隔离、安全管理都十分重要。因此,对网络流量及相关情况实施科学合理的监管和深入分析,成为网络管理的重要环节之一;同时,它也为网络问题提供有效解决方案及进行网络的规划。 目前的网络流量分析方法主要有基于SNMP、基于实时抓包
2、分析、基于网络探针和基于:Floiddot;源地址 目的地址 源端口号 目的端口号 第3层协议类型(如TCP,UDP) 服务类型 入逻辑接口标示符 1.2流(FloplateFlocat服务器通过Web方式展现,前台部分用JSP编写实现。工作的重点即在于数据采集、数据聚合以及数据库设计部分。 2.2NetFlow流采集 2.2.1采集器的设计 数据采集模块是整个系统的基础。由于。NetFlow数据流量非常大,为防止丢包系统采用缓冲区和线程池结构,如图2所示。 图片看不清楚?请点击这里查看原图(大图)。 当采集器监听到一个NetFlow数据包时,将该数据包接收到缓冲
3、区,并从包解析线程池中取出一个线程,根据相应的NetFlow的报文格式解析出数据流信息,将该原始流信息放入缓冲区,然后将原始流存入数据库,同时采用相应的聚合策略聚合原始流生成聚合流并存入相应的数据库中。 2.2.2NetFlow数据包接收与解析 由于NetFlow数据是借助于UDP数据报来传送,因而倘若后续的处理速度跟不上数据包到达的速度,则会出现严重丢包的现象。为解决高速大流量数据的及时接收及较低丢包率问题,采用了多线程的方式来实现。用独立的两个线程分别完成数据接收和解析操作:接收数据的线程在特定的IP地址监听相应的UDP端口,接收到的数据暂存在缓冲区中;解析线程从缓冲区提取数据,
4、按照相应的报文格式进行解析。由于接收线程和解析线程共享同一个临界资源,即接收的缓冲区,需要对临界资源进行加锁操作。 下面为部分实现多线程采集的JAVA代码实例,其中packet为接收的NetFlow数据包对象,li12下一页友情提醒:,特别!nkedLst为linkedList容器,利用synchronized进行线程间同步。 (1)接收线程 图片看不清楚?请点击这里查看原图(大图)。 2.3NetFloin适合于当天实时流量的监测;T=30min用于一周流量的分析;T=3h用于一月内流量的分析。 2.3.2聚合的实现 对于一个新采集的原始流,必须能根据其所携带的聚合
5、条件信息快速匹配是否已存在与其相同聚合条件的聚合流,若有则做流量叠加,若没有则创建一条新的聚合流。Hash表具有从Key快速映射到Value的特点,这种特点对于实时性较高的聚合非常有意义。图3为流量聚合的}Iash表设计。 图片看不清楚?请点击这里查看原图(大图)。 在图3中聚合条件(F)作为Key,聚合项(C)作为Hash函数的映射值,时间粒度(T)作为Hash表导出到数据库的时间。这样可以满足实时流量监测的需要,同时也压缩数据减少存储空间,提高数据的查询效率。 3实际NetFloin,主要检验丢包情况,以及聚合后压缩效率。这次采集无丢包发生,表1为该系统采集的数据结果。 图片
6、看不清楚?请点击这里查看原图(大图)。 图4是系统由所采集的数据生成的该时段的流量监测图。 图片看不清楚?请点击这里查看原图(大图)。 4结语 NetFlow数据流的海量特征使得服务器程序的效率至关重要,因此基于NetFlow的流量监测的主要任务是如何根据应用保存最重要的网络流特征以及如何更高效地实现数据检索。基于NetFlow特点,提出了一套适用于大流量网络的流量采集与聚合存储方案。流量采集通过多线程和缓冲区机制实现,有效提高了流量采集的可靠性。采集的原始流经聚合,并通过合理的分级存储策略进行存储组织,为前端的数据分析提供了全面支持。本系统在实际应用中取得了良好效果。下一步还将
7、对采集和多级聚合存储方案进行改进,以丰富系统对网络流量统计分析功能,并力争为异常流量分析提供较为完善的数据支持。上一页12友情提醒:,特别!
此文档下载收益归作者所有