高速网络流量统计系统的设计与实现

上传人:kms****20 文档编号:46686037 上传时间:2018-06-27 格式:PDF 页数:5 大小:319.10KB
返回 下载 相关 举报
高速网络流量统计系统的设计与实现_第1页
第1页 / 共5页
高速网络流量统计系统的设计与实现_第2页
第2页 / 共5页
高速网络流量统计系统的设计与实现_第3页
第3页 / 共5页
高速网络流量统计系统的设计与实现_第4页
第4页 / 共5页
高速网络流量统计系统的设计与实现_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《高速网络流量统计系统的设计与实现》由会员分享,可在线阅读,更多相关《高速网络流量统计系统的设计与实现(5页珍藏版)》请在金锄头文库上搜索。

1、http:/ -1- 高速网络流量统计系统的设计与实现高速网络流量统计系统的设计与实现 李力 北京邮电大学计算机科学与技术学院,北京(100876) E-mail: 摘摘 要:要:本文针对流量统计在高速网络中所面临的一系列问题,基于 NetFlow 技术,并采用 了一种资源受限的抽样算法, 构建了一个在高速网络下的 NetFlow 流量监控系统。 并在真实 的网络环境中进行了实验,验证了系统的可行性。 关键词:关键词:NetFlow,抽样算法,网络测量 1 引言引言 随着 IP 网络的普及和壮大,IP 业务得到了迅速的发展。然而,由于 IP 协议固有的无连接特性和“尽力而为”的服务原则,使得

2、当前基于 IP 的互联网无法向用户提供有效的服务质量(QoS) ,也不能实现网络资源的有效监控和管理。所以,IP 业务就非常需要对整个网络进行监测,得到网络性能和服务质量参数,从而合理规划网络,为 IP 语音服务提供服务质量保障。 IP 流量的监控与统计在维护整个 IP 网络中起着重要的作用。通过对全网的数据流的分析,网络管理人员能更好地对全网实行网络规划与分析、故障维护、网络流量均衡。现今比较成熟的流量监控的商务应用技术主要有 NetFlow 等1。参考文献1对这个问题进行了说明。 然而,由于网络的传输速度越来越快,网络的规模越来越大,对网络流量的海量数据存储和后期数据分析提出了极高的要求。

3、 早期的网络流量统计系统越来越不能满足现有高速网络流量统计系统的要求。 早期的统计系统主要是针对比较低速的网络, 对网络数据的存储和后期分析的需求都比较简单。但是由于网络速度的飞速增长,这种需求发生了巨大的变化。 现在对网络流量统计系统的要求是: 能够快速的存取网络的流量信息并能将数据存储起来,在需要的时候能迅速存海量数据中将所需的数据提取出来,进行后期分析。本文介绍了采用 NetFlow 技术, 并结合了一种资源受限的抽样算法, 很好的解决了高速网络对于网络流量分析的需求,并在真是网络环境下,进行了测试,验证了系统的有效性。 2 NetFlow 协议简介协议简介 NetFlow 协议是由 C

4、isco 公司提出的一项网络数据流统计标准2,并得到了众多主流厂商的支持。NetFlow 设备把采集到的网络流量信息数据按照流记录(flow record)放到缓存中,由网络设备在一定条件下发送到指定服务器。 丰富的 NetFlow 流量信息可以帮助网络管理人员进行网络规划、网络管理、流量计费和病毒检测等。 2.1 流的定义流的定义 流是在 T 时间段内具有某种相同属性的分组的集合。从观测的角度看,所有同属于一个特定流记录的分组具有一些共同属性, 这些特性是由分组中所包含的数据信息和对这些分组的处理方式来决定的。 NetFlow 中定义的流一般是按五元组:源 IP、目地 IP、源端口号、目地端

5、口号和传输协议, 这 5 个属性对报文进行汇聚统计。 流记录的数量随着网络速度、 性能的增加而迅速增加。 http:/ -2- 对于一条流,我们主要关心的是所包含的总字节数、流的持续时间、流所包含的总分组数。其中最关心字节数。一般来讲,我们的网络监控主要是分析大流对网络造成的影响;对于小流,由于它们的字节数很小,对网络造成的影响可以忽略不计。 2.2 NetFlow 的协议格式的协议格式 NetFlow 协议目前包括 1、5、7、8、9 等几个版本,V5 和 V9 的格式入图 1 和图 2 所示。版本之间差异主要表现在对流采用的汇聚方法不同。 NetFlow V9是一种全新的灵活和可扩展的Ne

6、tFlow数据输出格式,采用了基于模板(Template)的统计数据输出。在V5和V9版本中,均有一个包头(packet header),里面记录了版本、包含的数据个数等信息。在包头之后,V5的版本是一系列定长的数据记录(Flow Record),而在V9的版本中,一个模板后跟一些列的数据记录,这些数据记录的格式由前面的模板说明。由于这些版本中只有V9版本支持IpV6,所以我们的系统采用了NetFlow V9格式。 Header Sequence number Record count Version number Flow RecordFlow Record Flow Record 图 1

7、NetFlow V5 的格式 Packet Header Template FlowSet Data FlowSet Template FlowSet Data FlowSet 图 2 NetFlow V9 的格式 3 高速网络流量统计方案高速网络流量统计方案 3.1 面临的问题面临的问题 基于NetFlow的监控系统的工作流程是:骨干路由器产生大量的流记录,监控采集器将它们收集并存储起来, 然后进行流量分析等工作。 互联网上的网络设备的数量以万计, 同时,HTTP、P2P等消耗带宽的应用非常普遍。在这样的高速网络中,实时流量统计必然会遇到一些问题: 1)由于网络的速度达到了 Gbps 以上,

8、所以产生的流统计信息数据是十分巨大的。如果将采集器连接到一个中型网络中,一天的流量统计信息将达到几十 G 到上百 G,这对存储设备产生了巨大的压力。 2)后期数据分析、处理会耗费大量的时间。由于数据存储量十分巨大,所以想要从如此海量的数据中找到我们想要的数据是十分困难和费时的。这个问题在网络规模不是很大时,可以使用高速 CPU、大容量内存来解决。但是当网络变得很大的时候,即使再高速的CPU、再海量的存储设备也有无法处理的时候。 3.2 解决方案解决方案 由于我们对网络监测关注的是对网络影响较大的数据, 而对一些影响较小的数据我们则可以不关心,所以,我们采用了一种资源受限的抽样算法3来解决。 h

9、ttp:/ -3- Feldmann 等人证明网络中的流(根据字节数属性)是符合重尾分布4的。即大流(字节数很大的流)虽然数目比较少,但是对网络流量的影响却是很大的;而小流(字节数很小的流)虽然数目比较多,但是对网络中的流量的影响确实非常微小的。而我们进行网络监控主要想得到的是发现对网络影响比较大的流, 反映出网络流量的趋势变化。 理论上我们采取抽样算法是可行的。 3.2.1 算法思想算法思想 我们采用的是一种资源受限的抽样算法,这种算法假定我们的存储设备的容量是受到限制的,即我们采集到的流的数量?存储器的容量。 算法的基本思想:对于每一个流i(i的字节数为Xi) ,产生一个随机数Wi : (

10、0,1Wi (1) 我们对每条流产生一个随机的阀值Zi : XiZiWi= (2) 我们从 n 个Zi中取出最大的 m 个Zi(n?m)存储在流量采集器的存储器中。取门限值Z,令Z为第 m+1 个最大的Zi,然后使用Z对存储在存储器中的 m 个数据流进行重正化。 重正化过程:对于每一条流,我们比较它们的原始数据Xi和门限值Z。若Xi大于Z则Xi作为流的真实字节数存储在存储器中,反之,则Z作为流的真实字节数存储在存储器中。即抽样之后每条流的字节数Si为 : ,SiMax Xi Z= (3) 可以证明, 抽样所得的m个的值可以无偏的反映所有通过采集器的n条流的某种属性(例如,字节数等)。即 m 个

11、Si可以反映出 n 个原始数据的总量和变化趋势。 3.2.2 算法的验证算法的验证 本文中进行算法验证的 Trace 数据来源于 NLANR 的 PMA 项目。NLANR 提供的 Trace数据来源于从Indianapolis到Cleveland的一条OC48链路, 链路带宽为2.488Gbps, 由Dag4.23卡采集 44 字节的包头数据。 由于这条链路的带宽很大, 所以每分钟的数据流量是非常大的,因此我们随机选择了 2002 年 8 月 27 日 5 分钟的 Trace 数据。 表 1 抽样之后总字节数的误差 抽样率抽样率 0.1%0.5%1%5%50%误差误差 3.2E-21.1E-3

12、1.4E-32.8E-41.1E-5我们以这 5 分钟之内的总字节数作为评估对象, 对不同的抽样率的误差进行了统计, 具体的统计结果如表 1 所示。 通过表 1 可以看出随着抽样率的提高, 抽样值与真实的流量之间的误差变得越来越小。并且在抽样率很低的情况下,例如 1的时候,误差也是可以接受的(在 3左右)。 http:/ -4- 4 流量统计系统的构建流量统计系统的构建 我们采用自主开发的 FlowAnalyzer 系统对网络进行流量的采集和统计。FlowAnalyzer 系统的构架入下图所示: 图形用户界面 多维分析OLAP 数据库模块 实时分析模块抽样模块 采集预处理模块 系 统 管 理

13、图 3 流量统计系统的软件框架 1.采集预处理模块处于整个系统的最底层,负责接收从路由器发送出来的 NetFlow 数据包,并且根据相应的 NetFlow 格式进行解析工作,把解析完毕的包信息交给抽样模块; 2.抽样模块对采集到的数据进行抽样,减少存储的数据量;实时分析模块将数据文件中的数据导入到数据库中, 并在数据库的基础上, 通过调用存储过程来完成二次数据分析工作; 3.数据库模块主要完成原始数据信息和数据分析结果的存储,同时,通过数据库自身的技术对数据存储的性能和相关数据操作的性能进行优化, 还包括一些数据维护工作, 如数据的定期转存、数据的定期清理等; 4.多维分析 OLAP 模块主要

14、给用户提供多种形式的结果呈现; 系统管理模块负责采集预处理、 内存数据库和实时分析这三个模块的运行和监控, 在以上三个模块出现异常情况退出或终止的情况下,进行相应模块的重新启动并且记录下错误日志; 5.图形用户界面主要以 Web 页面方式将各种数据分析结果以图表和数字的形式呈现给用户,使用户能够对分析结果有直观清楚的了解和掌握。 为了验证我们系统的性能, 我们在我们自己的实验网络上进行了试验, 并选取抽样率为5。从实验结果我们可以看出,我们对数据进行抽样之后对网络进行的监控,满足我们对于流量监控的需要。 即可以反映出网络的变化趋势, 又可以探测出网络中一些主要的占据网络资源较多的应用。同时使对

15、于存储系统的需求减少了 95%,CPU 的利用率大为降低,处理时间也明显加快。 5 结束语结束语 NetFlow 流量采集是对于流量监控比较常用的一项技术。但是常常受到硬件的限制而不能对高速的网络进行监控。 本文提出了利用一种资源受限的抽样算法结合通用的 NetFlow 流量采集系统,在不影响对网络监测的情况下,有效的减少了对于 CPU 和存储设备的依赖。并通过实践证明了结合资源受限的抽样算法的 NetFlow 流量采集系统可行性。 http:/ -5- 参考文献参考文献 1 田东,董得存.网络流量技术与分析.计算机工程与应用.2005 年 01 期. 2 Cisco. NetFlow services and applications. While Paper 1999 3 Nick G. Duffield, Carsten Lund, Mikkel Thorup. Flow sampling under hard resource constraints. SIGMETRICS 2004: 85-96. 4 A. Feldmann, J. Rexford, and R. Caceres. Efficient Policies for Ca

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号