网络流量监控及分析工具的设计与实现
摘 要
互联网迅速发展的同时,网络安全问题日益成为人们关注的焦点,病毒、恶意攻击、非法访问等都容易影响网络的正常运行,多种网络防御技术被综合应用到网络安全管理体系中,流量监控系统便是其中一种分析网络状况的有效方法,它从数据包流量分析角度,通过实时地收集和监视网络数据包信息,来检查是否有违反安全策略的行为和网络工作异常的迹象。
在研究网络数据包捕获、 TCP/IP原理的基础上,采用面向对象的方法进行了需求分析与功能设计。该系统在VisualC++6.0环境下进行开发,综合采用了Socket-Raw、注册表编程和IP助手API等VC编程技术,在系统需求分析的基础上,对主要功能的实现方案和技术细节进行了详细分析与设计,并通过测试,最终实现了数据包捕获、流量监视与统计主要功能,达到了预定要求,为网络管理员了解网络运行状态提供了参考。
关键词:网络管理;数据采集;流量统计;Winsock2
目 录
1 引言 1
1.1 课题背景 1
1.2 网络安全管理的现状与需求 1
1.3 网络流量监控的引入 1
1.4 本文的目的与任务 2
1.5 论文结构安排 2
2 相关的概念与技术 2
2.1 OSI参考模型与TCP/IP体系结构 2
2.1.1 OSI参考模型 2
2.1.2 TCP/IP体系结构 3
2.1.3 OSI模型与TCP/IP体系结构的区别 4
2.2 传输层的编程接口—Windows套接字编程技术 4
2.2.1 Windows套接字的概念 4
2.2.2 套接字类型 5
2.2.3 涉及的几个基本概念 5
2.3 原始套接字 5
3 网络数据的采集技术分析 6
3.1 Windows下原始数据包捕获的实现 6
3.2 原始数据包捕获的关键函数 7
4 网络流量监控系统各模块的设计与实现 9
4.1 开发背景介绍 9
4.2 总体结构设计 9
4.3 流程图设计 10
4.4 各模块功能概述与实现 11
4.4.1 数据包采集中各类的关系 11
4.4.2 数据包捕获与分析模块 11
4.4.3 流量获取模块 13
4.4.4 数据统计模块 17
4.4.5 常见攻击分析功能 18
5 系统测试 19
5.1 测试环境 19
5.1.1 硬件环境 19
5.1.2 操作系统及软件运行环境 19
5.2 测试步骤 19
5.3 测试结果评价 19
结 论 19
参考文献 20
致 谢 21
声 明 22
1.21.1 网络安全管理的现状与需求
目前,在网络应用不断深入和技术频繁升级的同时,非法访问、恶意攻击等安全威胁也在不断推陈出新,愈演愈烈。防火墙、VPN、IDS、防病毒、身份认证、数据加密、安全审计等安全防护和管理系统在网络中得到了广泛应用。从网络安全专业管理人员的角度来说,最直接的需求就是根据分类在统一的界面中监视网络中各种运行性能状态,获取相关数据信息、日志信息和报警信息等,并进行分类汇总、分析和审计;同时完成攻击事件报警、响应等功能。因此,用户的网络管理需要不断健全整体网络安全管理解决方案,从统一安全管理平台总体调控配置到多层面、分布式的安全系统,实现对各种网络安全资源的集中监控、策略管理、审计及多种安全功能模块之间的互动,从而有效简化网络安全管理工作,提升网络的安全水平和可用性、可控制性、可管理性。
1.31.2 网络流量监控的引入
网络安全管理体系中,流量监控和统计分析是整个管理的基础。
流量检测主要目的是通过对网络数据进行实时连续的采集监测网络流量,对获得的流量数据进行统计计算,从而得到网络主要成分的性能指标。网络管理员根据流量数据就可以对网络主要成分进行性能分析管理,发现性能变化趋势,并分析出影响网络性能的因素及问题所在。此外,在网络流量异常的情况下,通过扩展的流量检测报警系统还可以向管理人员报警,及时发现故障加以处理。在网络流量检测的基础上,管理员还可对感兴趣的网络管理对象设置审查值范围及配置网络性能对象,监控实时轮询网络获取定义对象的当前值,若超出审查值的正常预定值则报警,协助管理员发现网络瓶颈,这样就能实现一定程度上的故障管理。而网络流量检测本身也涉及到安全管理方面的内容。
由此可见,对于一个有效的网络安全管理系统来说,功能的实现都或多或少的依赖于流量信息的获取。因此网络流量信息的采集可以说是网络安全管理系统得以实现的核心基石。它的应用可以在一定程度上检测到入侵攻击,可以有效地帮助管理人员进行网络性能管理,并利用报警机制协助网管人员采取对应的安全策略与防护措施,从而减少入侵攻击所造成的损失。