论文部分内容阅读
随着计算机网络的迅速发展,网络规模越来越庞大,网络中的各种应用和业务数量都在快速增长。在这样的环境下,网络流量数据的分析对全面了解网络服务状况,提升网络服务质量、网络安全管理、网络未来规划以及发现网络异常等方面都起着十分重要的作用。Netflow最初是由Cisco公司提出的一种用于收集IP流量信息的网络协议,目前己成为网络流量分析和计量方面公认的行业标准。随着Netflow技术的发展,越来越多的网络管理系统使用Netflow来获取网络流量信息。Netflow数据采集是获取网络流量信息的基础。
本文在深入调研常见流量采集方法和Netflow采集系统的基础上,设计并实现了一套Netflow网络数据采集系统。该系统包括Netflow流分发子系统和存储子系统两部分,支持Netflow报文的处理分发和存储导出。论文的主要工作和贡献如下:
(1)Netflow流分发子系统的设计与实现
Netflow流分发子系统提供向其他网管系统分发Netflow数据的功能。子系统除了支持Netflow原始报文的转发外,还支持按指定规则来处理分发的Netflow数据。由于不同网管系统对Netflow数据的要求不尽相同,所以需要提供一套灵活的规则以满足不同系统的需求。基于上述要求,本文设计了一套Netflow流处理规则nSQL。该规则采用与SQL类似的语法来描述Netflow流的处理和转发,简单易懂,且支持自定义扩展。除此之外,本文还针对处理Netflow流时会出现冗余函数调用的现象提出了一种消除方法。以nSQL规则为核心,本文设计并实现了Netflow流分发子系统。通过对子系统的功能和性能测试,结果显示子系统在支持向4个网管系统转发Netflow数据时的处理延迟在500毫秒以内,能够满足目前系统的实际需求。
(2)Netflow存储子系统的设计与实现
Netflow存储子系统提供Netflow报文的存储和导出功能。在大规模网络中,单位时间内的流数目众多,相应的Netflow报文数目也十分巨大。如何在快速地存储大数据量Netflow报文的同时提高查询导出效率是存储子系统需要解决的问题。本文针对上述问题,设计并实现了一种Netflow数据存储方法。该方法通过文件分块存储和数据库存储索引信息的方式实现了报文存储和查询导出的高效性。以该存储方法为核心,本文设计并实现了Netflow存储子系统。通过对子系统的性能和功能测试,结果显示子系统能在1秒内存入约10万个Netflow报文,并能在1秒内导出约60万个Netflow报文,能够满足目前系统的实际需求。