网络流量监控及分析工具的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1 引言 (1)

1.1课题背景 (1)

1.2网络流量监控的引入 (1)

1.3课程设计的目的与任务 (1)

2 相关的概念与技术 (2)

2.1TCP/IP体系结构 (2)

2.2原始套接字 (3)

3 网络数据的采集技术分析 (4)

3.1Windows下原始数据包捕获的实现 (4)

3.2原始数据包捕获的关键函数 (5)

4 网络流量监控系统各模块的设计与实现 (6)

4.1总体结构设计 (6)

4.2流程图设计 (7)

4.3各模块功能概述与实现 (8)

4.3.1 数据包采集中各类的关系 (8)

4.3.2 数据包捕获与分析模块 (9)

4.3.3 流量获取模块 (10)

4.3.4 数据统计模块 (13)

5 分析工具测试 (13)

5.1测试环境 (13)

5.2测试步骤 (13)

5.3测试结果评价 (13)

6 结束语 (15)

参考文献: (16)

1引言

1.1课题背景

随着构建网络基础技术和网络应用的迅速发展以及用户对网络性能要求的提高,使得网络管理成为迫切需要解决的问题,有效的网络管理能够保证网络的稳定运行和持续发展,更重要的是,随着网络规模的扩大和黑客技术的发展,入侵和攻击的案例日益增多,对稳定的网络服务、信息安全、互联网秩序都提出了严峻的挑战,网络安全管理在整个网络管理系统里扮演起更为重要的角色。

1.2网络流量监控的引入

网络安全管理体系中,流量监控和统计分析是整个管理的基础。

流量检测主要目的是通过对网络数据进行实时连续的采集监测网络流量,对获得的流量数据进行统计计算,从而得到网络主要成分的性能指标。网络管理员根据流量数据就可以对网络主要成分进行性能分析管理,发现性能变化趋势,并分析出影响网络性能的因素及问题所在。此外,在网络流量异常的情况下,通过扩展的流量检测报警系统还可以向管理人员报警,及时发现故障加以处理。在网络流量检测的基础上,管理员还可对感兴趣的网络管理对象设置审查值范围及配置网络性能对象,监控实时轮询网络获取定义对象的当前值,若超出审查值的正常预定值则报警,协助管理员发现网络瓶颈,这样就能实现一定程度上的故障管理。而网络流量检测本身也涉及到安全管理方面的内容。

由此可见,对于一个有效的网络安全管理系统来说,功能的实现都或多或少的依赖于流量信息的获取。因此网络流量信息的采集可以说是网络安全管理系统得以实现的核心基石。它的应用可以在一定程度上检测到入侵攻击,可以有效地帮助管理人员进行网络性能管理,并利用报警机制协助网管人员采取对应的安全策略与防护措施,从而减少入侵攻击所造成的损失。

1.3课程设计的目的与任务

该网络流量监控及分析工具主要用途是通过实时连续地采集网络数据并对其进行统计,

得到主要成分性能指标,结合网络流量的理论,通过统计出的性能指数观察网络状态,分析出网络变化趋势,找出影响网络性能的因素。

课程设计开发的工具实现以下功能:

(1)采用Winsock编写原始套接字Socket-Raw对数据包进行采集捕获,并可实现分类及自定义范围进行捕获;

(2)对捕获的数据包进行一定的解析;

(3)访问操作系统提供的网络性能参数接口,得到网卡总流量、输入流量和输出流量;

(4)系统提供了多种方式显示结果,如曲线图、列表等;

(5)使用IP帮助API获取网络统计信息;

(6)实现对部分常见威胁的预警,可继续开发扩展其报警功能。

2相关的概念与技术

2.1TCP/IP体系结构

由于TCP/IP比其之前的OSI模型更具体实现,随着互联网的不断发展,遵循TCP/IP 结构的网络不断普及,因此现在通常采用TCP/IP代表Internet体系结构。TCP/IP的目的是在网络标准不同的情况下解决互联问题,可以说,网络互联是TCP/IP的核心。TCP/IP的体系结构如图1所示。

图1

TCP/IP在设计时重点并没有放在具体通信的实现上,所以对最后两层没有做出具体规定,同时表明它允许不同类型的通信网络参与通信。它的四个层次功能如下。

(1)应用层,提供常用的应用程序及自定义的应用程序,数据传输时用TCP/IP协议来进行;

(2)传输层,提供端到端的应用程序之间的通信,可以使用传输控制协议TCP (Transmission Control Protocol)或用户数据报协议UDP(User Datagram Protocol)协议,前者提供可靠传输,传送单位是报文段,后者提供不可靠服务,传输单位是数据报,即分组。此外,传输层另外一个功能就是区别应用程序;

(3)网际层,负责计算机之间的通信,采用的协议是IP协议,数据传送单位是分组,向上提供不可靠的传输服务;

(4)网络接口层,负责接收数据报,并实现发送,或者接收帧,提取IP数据报,交给互联网层。

2.2原始套接字

从用户的角度来看,标准的流式套接字和数据报套接字这两类套接字似乎涵盖了TCP/IP应用的全部,因为基于TCP/IP的应用,从协议栈的层次(如图2.2.1所示)上讲,在传输层的确只可能建立于TCP或UDP协议之上,而流式套接字和数据报套接字又分别对应于TCP和UDP,所以几乎所有的应用都可以用这两类套接字实现。但是,当需要自定义数据包发送时或者需要分析所有经过网络的数据包的时候,就必须面临一种不同于前两者的方式—Raw Socket,即原始套接字,程序员可以用它来发送和接收 IP 层以上的原始数据包, 如ICMP,TCP, UDP等,不仅这样,它还可以实现如伪装本地IP、发送ICMP包等功能。

图 2.2.1 协议栈层次

Raw Socket广泛应用于高级网络编程,也是一种广泛的黑客手段。著名的网络sniffer、拒绝服务攻击(DOS)、IP欺骗等都可以以Raw Socket实现。Raw Socket与标准套接字

相关文档
最新文档