大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx

上传人:b****2 文档编号:1095825 上传时间:2023-04-30 格式:DOCX 页数:22 大小:334.17KB
下载 相关 举报
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第1页
第1页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第2页
第2页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第3页
第3页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第4页
第4页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第5页
第5页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第6页
第6页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第7页
第7页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第8页
第8页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第9页
第9页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第10页
第10页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第11页
第11页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第12页
第12页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第13页
第13页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第14页
第14页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第15页
第15页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第16页
第16页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第17页
第17页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第18页
第18页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第19页
第19页 / 共22页
大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx

《大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx(22页珍藏版)》请在冰点文库上搜索。

大学毕业设计网络流量监控软件的设计与实现Word文档下载推荐.docx

课程名称

网络协议编程课程设计

时间

2015~2016学年第1学期3~4周

学生姓名

xxxxxx

指导老师

题目

主要内容:

(1)可以监控网络实时监控网络流量,同时利用图像分析显示网络流量大小,并将结果写入日志文件。

(2)显示内容包括:

网络输入流量,网络输出流量,接口名称,总流量以及流量统计图等内容。

(3)设置停止标志,当程序接受到停止命令时即停止。

要求:

(1)结合网络协议编程课程设计所学知识设计并实现网络流量监控软件的设计与实现。

(2)学会文献检索的基本方法和综合运用文献的能力。

(3)通过课程设计培养严谨的科学态度,认真的工作作风和团队协作精神。

应当提交的文件:

(1)课程设计学年论文。

(2)课程设计附件(相关图纸、设备配置清单、报告等)。

学生姓名:

xxxxxx指导老师:

摘要互联网迅速发展的同时,网络安全问题日益成为人们关注的焦点,病毒、恶意攻击、非法访问等都容易影响网络的正常运行,多种网络防御技术被综合应用到网络安全管理体系中,流量监控系统便是其中一种分析网络状况的有效方法,它从数据包流量分析角度,通过实时地收集和监视网络数据包信息,来检查是否有违反安全策略的行为和网络工作异常的迹象。

在研究网络数据包捕获、TCP/IP原理的基础上,采用面向对象的方法进行了需求分析与功能设计。

该系统在VisualC++6.0环境下进行开发,综合采用了Socket-Raw、注册表编程和IP助手API等VC编程技术,在系统需求分析的基础上,对主要功能的实现方案和技术细节进行了详细分析与设计,并通过测试,最终实现了数据包捕获、流量监视与统计主要功能,达到了预定要求,为网络管理员了解网络运行状态提供了参考。

关键词网络管理;

数据采集;

流量统计;

Winsock2

TheDesignandImplementationofMonitoringandAnalyzingToolforNetworkTraffic

Studentname:

xxxxxxAdvisor:

AbstractWith 

the 

rapid 

development 

of 

Internet, 

network 

safety 

has 

become 

people’s 

concern, 

virus, 

vigorous 

attack, 

illegal 

visit 

and 

so 

on 

can 

easily 

affect 

normal 

performance. 

Various 

kinds 

defending 

technology 

have 

been 

comprehensively 

applied 

into 

management 

system 

safety. 

Network 

traffic 

is 

one 

effective 

measures 

to 

analysis 

condition. 

From 

angle 

analyzing 

packet 

traffic, 

it 

examine 

violation 

abnormal 

performance 

by 

timely 

collecting 

monitoring 

packets 

information. 

By 

using 

way 

object-oriented, 

this 

design 

makes 

needs 

ability 

designing 

based 

study 

TCP/IP 

theory. 

Under 

environment 

Visual 

C++6.0, 

adopts 

VC 

program 

technologies 

Socket-Raw, 

Windows 

register 

IpHelper 

API. 

On 

basis 

analysis, 

deliberate 

test 

plans 

details 

implement 

collecting, 

statistics. 

So 

meets 

our 

reference 

for 

managers 

get 

know 

conditions. 

Keywordsnetworkmanagement;

datacollection;

trafficanalysis;

Winsock2

1引言

1.1背景

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

1.2网络流量监控的引入

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

流量检测主要目的是通过对网络数据进行实时连续的采集监测网络流量,对获得的流量数据进行统计计算,从而得到网络主要成分的性能指标。

网络管理员根据流量数据就可以对网络主要成分进行性能分析管理,发现性能变化趋势,并分析出影响网络性能的因素及问题所在。

此外,在网络流量异常的情况下,通过扩展的流量检测报警系统还可以向管理人员报警,及时发现故障加以处理。

在网络流量检测的基础上,管理员还可对感兴趣的网络管理对象设置审查值范围及配置网络性能对象,监控实时轮询网络获取定义对象的当前值,若超出审查值的正常预定值则报警,协助管理员发现网络瓶颈,这样就能实现一定程度上的故障管理。

而网络流量检测本身也涉及到安全管理方面的内容。

由此可见,对于一个有效的网络安全管理系统来说,功能的实现都或多或少的依赖于流量信息的获取。

因此网络流量信息的采集可以说是网络安全管理系统得以实现的核心基石。

它的应用可以在一定程度上检测到入侵攻击,可以有效地帮助管理人员进行网络性能管理,并利用报警机制协助网管人员采取对应的安全策略与防护措施,从而减少入侵攻击所造成的损失。

1.3论文结构安排

本论文围绕Winsock标准套接字网络编程的各项实践内容展开。

具体内容安排如下:

第一章是引言,简要介绍开发背景、论文结构安排;

第二章介绍数据包捕获与流量检测的技术原理;

第三章重点介绍网络流量监测工具的设计与实现过程,并且详细阐述了从系统功能总体设计、详细设计、具体实现的全部过程。

2.网络数据采集技术的分析

2.1OSI参考模型与TCP/IP体系结构

开放系统互联参考模型OSI是由国际标准化组织ISO制定的标准化开放式的计算机网络层次结构模型,其结构如图1所示。

可以看出,该结构共有七层,各层主要实现如下功能:

(1)物理层,利用传输介质实现相邻节点间的物理连接,主要对机械、电气、功能和规程四个方面及信号传输速率方面进行规定;

(2)数据链路层,完成管理数据的传输,提供差错检测和恢复,并且提供流量控制,最终实现向上一层提供无差错、高可靠性的传输链路;

(3)网络层,执行路由算法和流量控制算法,完成数据分组传输,它是通信子网的最高层;

(4)传输层,提供端到端的无差错传输,同时,它也提供属于局通信网络接口,比如SOCKET;

(5)会话层,完成用户之间会话的组织、协调、分配用户名等;

(6)表示层,解决数据格式问题,规定编码方式;

(7)应用层,OSI的最高层,利用应用进程提供网络访问手段。

如图2.1所示:

2.2TCP/IP体系结构

由于TCP/IP比其之前的OSI模型更具体实现,随着互联网的不断发展,遵循TCP/IP结构的网络不断普及,因此现在通常采用TCP/IP代表Internet体系结构。

TCP/IP的目的是在网络标准不同的情况下解决互联问题,可以说,网络互联是TCP/IP的核心。

TCP/IP的体系结构如图2.2所示:

图2.2OSI参考模型与TCP/IP结构

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

它的四个层次功能如下。

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

(2)传输层,提供端到端的应用程序之间的通信,可以使用传输控制协议TCP(TransmissionControlProtocol)或用户数据报协议UDP(UserDatagramProtocol)协议,前者提供可靠传输,传送单位是报文段,后者提供不可靠服务,传输单位是数据报,即分组。

此外,传输层另外一个功能就是区别应用程序;

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

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

2.3OSI模型与TCP/IP体系结构的区别

从前面的分析可以看出OSI模型和TCP/IP体系有许多不同之处,主要体现在问题的处理上面,例如:

(1)TCP/IP一开始就考虑的是异构网络的互联问题,并将IP看作是整个体系的重要组成部分,而ISO并没有认识到网际协议IP的重要性,导致最后只能单独划分一个子层来完成IP的作用;

(2)OSI最开始只注意到了面向连接的服务,而TCP/IP一开始就注意了面向连接和无连接的并重。

相比起来,TCP/IP更注重了数据传输的效率,而OSI则注重了传输的可靠性;

(4)TCP/IP虽然分层,但是调用关系并不像OSI那样严格,减少了不必要的开销,提高了传输效率。

2.4原始数据报捕获的实现

网络上的数据包捕获机制主要依赖于所使用的操作系统,不同的操作系统下有不同的实现途径。

在Windows环境下,可通过网络驱动程序接口规范(NDIS),WinSock的SOCK_RAW或虚拟设备驱动技术(VxD)等技术实现网络数据包的捕获功能。

前面已经介绍到了,使用原始套接字可以绕过Socket提供的功能,对底层的协议进行使用与开发,可以根据自己的需要生成想要的数据报文等,下面开始介绍使用原始套接字对数据包捕获进行开发的相关技术知识。

第一,使用套接字前,需要了解网卡接收数据的工作原理:

在正常情况下,网络接口只响应两种数据帧,一种是与自己的硬件相匹配的数据帧,另一种四向所有计算机广播的数据帧。

在系统中,数据帧的收发由网卡完成,网卡程序接收从网络发来的数据包,根据其硬件地址去判断是否与本机的硬件地址匹配,若匹配就通知CPU产生中断进行响应,然后调用驱动程序设置的网卡中断程序地址调用驱动程序接收数据,然后放入堆栈进行系统相关处理,若不匹配则直接丢弃该数据包。

对于网络接口,它一般具有4种数据接收模式:

广播、组播、直接和混杂模式,只有当把接口设置为混杂模式时,网络接口才能接收所有的数据,无论地址是否匹配,所以在做本设计的时候一定要设置为混杂模式才能实现数据的采集。

第二,需要了解套接字的工作程序和使用方法:

一般来说,采用套接字开发网络程序需要经历以下几个基本步骤:

启动、创建、绑定、监听(接受连接)、连接、发送/接收数据、关闭、卸载等。

第三,具体到Windows下利用原始套接字捕获网络数据可以这样设计:

(1)启动套接字;

(2)创建一个原始套接字;

(3)将套接字与本地地址绑定;

(4)设置操作参数;

(5)设置网络接口为混杂模式;

(6)启动监听线程,开始接收数据;

(7)退出关闭套接字。

2.5原始数据包捕获的关键函数

(1)启动函数

WSAStartupintPASCALFARWSAStartup(DWORDwVersionRequested,LPWSADATAlpWSAData);

每一个套接字应用程序都必须调用该函数进行一系列初始化工作,并且只有调用成功返回后,才能开始使用套接字,其中参数wVersionRequested是版本号,高字节是次版本号、低字节是主版本号,参数lpWSAData是指向WSADATA结构的指针。

(2)套接字创建函数

socketSOCKETsocket(intaf,inttype,intprotocol);

所有的通信在建立之前都必须创建一个套接字,socket函数的功能就是创建套接字,其中参数af指协议地址族(addressfamily),当建立的套接字是依赖于UDP或TCP的话,需要设置af为AF_INET,表示采用IP协议。

参数type是指协议的套接字类型,采用流式套接字时用SOCK_STREAM,采用数据报套接字时用SOCK_DGRAM,采用原始套接字时用SOCK_RAW。

参数protocol是协议字段,默认情况下可直接设置为0。

3.网络流量监控系统各模块的设计与实现

3.1开发环境介绍

本设计开发平台采用MicrosoftVisualstudio6.0,它是目前使用比较广泛的Winsock开发平台,因此具有较强的适应性,能够在很多的操作系统平台上运行,设计后具有直观的简洁的操作界面,稳定性也比较高。

3.2总体结构设计

通过收集与分析简单网络流量监控软件的用户需求,总结出以下特征:

(1)需要实现对网络接口数据包的尽可能多的捕获,将网卡设置为混杂模式,然后进行数据包的采集;

(2)数据包的内容要进行一定的解析,对数据包的协议类型、源目地址、数据包截获时间、数据包内容需要进行分析;

(3)根据用户不同的要求能够依照特定地址范围、特定协议类型相关包等条件进行自定义监视;

(4)监视结果输出有实时流量图、列表等显示;

(5)实现日志记录,便于日后分析;

(6)对某些常见的攻击进行发现分析。

总合以上系统要求与综合分析,本系统总体设计如下,采用VC++6.0编写,系统具有三个主要功能部分:

数据捕获与显示模块、流量信息统计模块、流量绘制模块,如图3.1所示。

图3.1系统总体设计结构图

数据采集模块:

完成网络接口数据的捕获、解析和显示,可以根据用户定义条件组合来进行捕获,如只监视采用TCP或UDP协议的数据包,也可以监视用户希望关注的相关IP地址的数据包,同时完成数据封包日志记录,提高了系统的灵活性。

同时,在对数据包的解析过程中对一些常见入侵攻击特征进行判断,发出预警。

该模块采用编写原始套接字开发。

信息统计模块:

完成统计功能,如统计IP要实现统计接收到的数据报数量、接收到的数据中协议出错的数量、正在请求传输的数量、路由表中可用路由数量、丢弃的数量、需要重组/成功重组的数量等,统计ICMP需要完成发送/接收的消息数量、满足超过TTL的数量、重定向数量、时间戳请求/应答数量等;

采用IP助手函数完成。

流量绘制模块:

完成总流量、输入流量、输出流量、瞬时流量值、最高流量值的显示;

采用访问注册表网络性能数据完成有关数据的获取,通过流量图显示。

3.3流程图设计

本系统总体设计如下,采用VC++6.0编写,系统具有三个主要功能部分:

数据捕获与显示模块、流量信息统计模块、流量绘制模块。

根据上面对各个功能模块的划分,进行更进一步的分析和设计,得到数据采集、注册表网络性能块访问大致的工作流程图,如图3.2所示:

图3.2数据捕获流程图

3.4代码分析

(1)功能实现说明该功能模块主要由封装的CSockSupport,CsockHelper,CpackInterDlg,CbinDataDlg四个类完成,下面将对这些类进行详细说明。

CsockSupport类:

主要负责检查Socket是否支持2.0版本,在该类中封装了WSAStartup完成Socket的启动;

CsockHelper类:

主要实现了从获取本机信息结构、Socket创建、绑定、设置、启动线程、数据接收到协议分析的全部方法。

GetLocalIP实现获取本机地址操作的方法,LPHOSTENTlphp是定义一个主机信息结构,获取过程由gethostname(szLocname,MAX_HOSTNAME_LAN)与gethostbyname(szLocname)完成;

第一个参数是用于放置本机名称的缓冲,第二个参数是缓冲区长度,最后利用inet_ntoa将IP地址转化为“.”式地址。

StartCapture方法完成套接字的创建、绑定、设置操作方式和启动线程;

具体完成如下:

m_sockCap=socket(AF_INET,SOCK_RAW,IPPROTO_IP);

//创建套接字bind(m_sockCap,(PSOCKADDR)&

sa,sizeof(sa));

//绑定

setsockopt(m_sockCap,SOL_SOCKET,SO_REUSEADDR,(char*)&

bopt,sizeof(bopt))//设置操作

setsockopt(m_sockCap,IPPROTO_IP,IP_HDRINCL,(char*)&

m_hCapThread=CreateThread(NULL,0,CaptureThread,this,0,NULL);

//启动线程

线程函数CaptureThread主要完成数据的接收。

数据接收后,将缓冲区数据转化为IP数据格式后即可以开始解析过程,协议名称获取如下:

for(inti=0;

i<

MAX_PROTO_NUM;

i++)if(ProtoMap[i].ProtoNum==iProtocol)returnProtoMap[i].ProtoText;

return“”;

ParseIPPack方法完成数据包的解析:

intiIphLen=sizeof(unsignedlong)*(pIpheader->

h_lenver&

0xf)//获取数据包长度

协议解析:

switch(iProtocol){caseIPPROTO_TCP:

„„caseIPPROTO_UDP:

„„caseIPPROTO_ICMP:

„„default:

„„}StopCapture完成关闭线程和套接字操作:

if(m_hCapThread){TerminateThread(m_hCapThread,0);

//中断进程CloseHandle(m_hCapThread);

//关闭句柄

m_hCapThread=NULL;

}if(m_sockCap)closesocket(m_sockCap);

//关闭套接字CbinDataDlg类主要完成对已捕获数据的存储和显示方法;

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

经过上面的分析与设计,得到该系统的总体功能结构、工作流程,也确定了从编写套接字到最后捕获数据,要经过创建、绑定、设置工作模式、启动线程、接收数据等一系列的处理操作。

为了实现处理中的每一步操作,设计了数据捕获的类关系,如图3.3所示。

图3.3数据包采集中各类的关系

在上图中CSockSupport,CSockHelper,CPackInterDlg,CBinDataDlg等是封装了各部分主要处理功能的类。

且这些类中封装了和这些类的操作相关的方法。

将在后面对这些类的功能和实现进行详细介绍。

3.5结果显示

初始界面如图3.4所示:

图3.4流量监控软件的界面

当单击鼠标右键时,会显示接口名称以及监控期间的总流量,如图3.5所示

图3.5接口选择以及总流量统计

4.结束语

互联网的迅猛发展,流量检测和统计分析成为整个网络安全管理系统的基础部分。

网络管理员可以根据数据流量的变化规律,发现网络故障与攻击行为,及时采取措施,减少损失。

网络流量分析系统是一个比较复杂的系统,由于时间关系,本设计只完成了大概框架,通过编写套接字、访问注册表等方法实现了部分主要功能,并没有完全完成详细指标,比如只提供了局域网内流量实时监测、数据包解析、简单统计等功能,这些都有待于进一步改进、深入与完善,下一步工作的重点将是提供更多监控功能,对网络行为进行更深入的分析。

在整个设计过程中,重点放在了数据捕获与流量实时监控两个功能上,进而描述了采用套接字开发流量监控系统中的思路和关键事项,阐述了开发过程中碰到的一些技术问题,对功能需求与细节实现进行了详细分析与设计。

参考文献

[1]陈伯成,范闽,李英杰.利用网络监听维护子网系统安全的一种方法[J].计算机工程与应用.2000,(10):

133-135。

[2]李凌.Winsock网络编程实用教程[M].北京:

清华大学出版社,2003.11:

9-35。

[3]曹衍龙,刘海英.VisualC++网络通信编程实用案例精选(第二版)[M].北京:

人民邮电出版社,2006.5:

425-437。

[4]孙贤淑.IP网络流量测量的研究与应用[D].北京:

北京邮电大学[硕士论文],2005。

[5]许勇,吴忠堂.网络流量采集与分析系统中数据采集的研究与实现[D].广州:

华南理工大学[硕士论文],2004。

附录:

#include"

stdafx.h"

NetTrafficButton.h"

NetTrafficButtonDlg.h"

#ifdef

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2