毕业设计(论文)-网络流量监控及分析工具的设计与实现.doc_第1页
毕业设计(论文)-网络流量监控及分析工具的设计与实现.doc_第2页
毕业设计(论文)-网络流量监控及分析工具的设计与实现.doc_第3页
毕业设计(论文)-网络流量监控及分析工具的设计与实现.doc_第4页
毕业设计(论文)-网络流量监控及分析工具的设计与实现.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络流量监控及分析工具的设计与实现网络流量监控及分析工具的设计与实现 摘摘 要要 互联网迅速发展的同时,网络安全问题日益成为人们关注的焦点,病毒、 恶意攻击、非法访问等都容易影响网络的正常运行,多种网络防御技术被综合 应用到网络安全管理体系中,流量监控系统便是其中一种分析网络状况的有效 方法,它从数据包流量分析角度,通过实时地收集和监视网络数据包信息,来 检查是否有违反安全策略的行为和网络工作异常的迹象。 在研究网络数据包捕获、 TCP/IP 原理的基础上,采用面向对象的方法进 行了需求分析与功能设计。该系统在 VisualC+6.0 环境下进行开发,综合采用 了 Socket-Raw、注册表编程和 IP 助手 API 等 VC 编程技术,在系统需求分析的 基础上,对主要功能的实现方案和技术细节进行了详细分析与设计,并通过测 试,最终实现了数据包捕获、流量监视与统计主要功能,达到了预定要求,为 网络管理员了解网络运行状态提供了参考。 关键词关键词:网络管理;数据采集;流量统计;Winsock2 The Design and Implementation of Monitoring and Analyzing Tool for Network Traffic Abstract With the rapid development of Internet, network safety has become peoples concern, virus, vigorous attack, illegal visit and so on can easily affect the normal network performance. Various kinds of network defending technology have been comprehensively applied into the management system of network safety. Network traffic system is one of the effective measures to analysis network condition. From the angle of analyzing packet traffic, it can examine the safety violation and the abnormal performance of network by timely collecting and monitoring packets information. By using the way of object-oriented, this design makes a needs analysis and ability designing based on the study of network packet collecting and TCP/IP theory. Under the environment of Visual C+6.0, this system adopts VC program technologies of Socket-Raw, Windows register and IpHelper API. On the basis of system analysis, it makes a deliberate analysis and test of plans and details to implement packets collecting, traffic monitoring and statistics. So this meets our needs and makes a reference for managers to get to know the network conditions. Key words: network management; data collection; traffic analysis; Winsock2 目目 录录 论文总页数:22 页 1引言.1 1.1课题背景.1 1.2网络安全管理的现状与需求.1 1.3网络流量监控的引入.1 1.4本文的目的与任务.2 1.5论文结构安排.2 2相关的概念与技术.2 2.1OSI 参考模型与 TCP/IP 体系结构.2 2.1.1OSI 参考模型.2 2.1.2TCP/IP 体系结构.3 2.1.3OSI 模型与 TCP/IP 体系结构的区别.4 2.2传输层的编程接口Windows 套接字编程技术 .4 2.2.1Windows 套接字的概念 .4 2.2.2套接字类型.5 2.2.3涉及的几个基本概念.5 2.3原始套接字.5 3网络数据的采集技术分析.6 3.1Windows 下原始数据包捕获的实现 .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 页 共 22 页 1 1 引言引言 1.11.1 课题背景课题背景 随着构建网络基础技术和网络应用的迅速发展以及用户对网络性能要求的 提高,使得网络管理成为迫切需要解决的问题,有效的网络管理能够保证网络 的稳定运行和持续发展,更重要的是,随着网络规模的扩大和黑客技术的发展, 入侵和攻击的案例日益增多,对稳定的网络服务、信息安全、互联网秩序都提 出了严峻的挑战,网络安全管理在整个网络管理系统里扮演起更为重要的角色。 1.21.2 网络安全管理的现状与需求网络安全管理的现状与需求 目前,在网络应用不断深入和技术频繁升级的同时,非法访问、恶意攻击 等安全威胁也在不断推陈出新,愈演愈烈。防火墙、VPN、IDS、防病毒、身份 认证、数据加密、安全审计等安全防护和管理系统在网络中得到了广泛应用。 从网络安全专业管理人员的角度来说,最直接的需求就是根据分类在统一的界 面中监视网络中各种运行性能状态,获取相关数据信息、日志信息和报警信息 等,并进行分类汇总、分析和审计;同时完成攻击事件报警、响应等功能。因 此,用户的网络管理需要不断健全整体网络安全管理解决方案,从统一安全管 理平台总体调控配置到多层面、分布式的安全系统,实现对各种网络安全资源 的集中监控、策略管理、审计及多种安全功能模块之间的互动,从而有效简化 网络安全管理工作,提升网络的安全水平和可用性、可控制性、可管理性。 1.31.3 网络流量监控的引入网络流量监控的引入 网络安全管理体系中,流量监控和统计分析是整个管理的基础。 流量检测主要目的是通过对网络数据进行实时连续的采集监测网络流量, 对获得的流量数据进行统计计算,从而得到网络主要成分的性能指标。网络管 理员根据流量数据就可以对网络主要成分进行性能分析管理,发现性能变化趋 势,并分析出影响网络性能的因素及问题所在。此外,在网络流量异常的情况 下,通过扩展的流量检测报警系统还可以向管理人员报警,及时发现故障加以 处理。在网络流量检测的基础上,管理员还可对感兴趣的网络管理对象设置审 查值范围及配置网络性能对象,监控实时轮询网络获取定义对象的当前值,若 超出审查值的正常预定值则报警,协助管理员发现网络瓶颈,这样就能实现一 定程度上的故障管理。而网络流量检测本身也涉及到安全管理方面的内容。 由此可见,对于一个有效的网络安全管理系统来说,功能的实现都或多或 少的依赖于流量信息的获取。因此网络流量信息的采集可以说是网络安全管理 系统得以实现的核心基石。它的应用可以在一定程度上检测到入侵攻击,可以 第 2 页 共 22 页 有效地帮助管理人员进行网络性能管理,并利用报警机制协助网管人员采取对 应的安全策略与防护措施,从而减少入侵攻击所造成的损失。 1.41.4 本本文的目的与任务文的目的与任务 该网络流量监控及分析工具主要用途是通过实时连续地采集网络数据并对 其进行统计,得到主要成分性能指标,结合网络流量的理论,通过统计出的性 能指数观察网络状态,分析出网络变化趋势,找出影响网络性能的因素。 本设计题目是教师自拟项目,前期任务主要是设计并完成系统的初步框架, 实现网络数据的捕获,并解决相应问题,后期主要是通过一些 API 函数完成对 各类数据信息的统计。 本系统实现以下功能:本系统实现以下功能:56 入库入库 入库与出库相反,其操作基本相同。代码如下所示: ObjectNameTitleIndex = 510) /偏移变量 DWORD processIdOffset = ULONG_MAX; /找到第一个计数器 PERF_COUNTER_DEFINITION *counterPtr = FirstCounter(objectPtr); /遍历链表 for(int b=0 ; bNumCounters ; b+) /判断接收的数据类型是否是我们需要的 if(int)counterPtr-CounterNameTitleIndex = CurrentTrafficType) processIdOffset = counterPtr-CounterOffset; /下一个计数器 counterPtr = NextCounter(counterPtr); /数据类型不是我们需要的 if(processIdOffset = ULONG_MAX) delete data; return 1; /找到第一个实例(instance) PERF_INSTANCE_DEFINITION *instancePtr = FirstInstance(objectPtr); /遍历整个实例 for(b=0 ; bNumInstances ; b+) wchar_t *namePtr = (wchar_t *) (BYTE *)instancePtr + instancePtr-NameOffset); /得到这个实例的 PERF_COUNTER_BLOCK PERF_COUNTER_BLOCK *counterBlockPtr = GetCounterBlock(instancePtr); /现在得到了接口的名字 char *pName = WideToMulti(namePtr, nameBuffer, 第 19 页 共 22 页 sizeof(nameBuffer); POSITION pos = TotalTraffics.FindIndex(b); if(pos!=NULL) fullTraffic = *(DWORD *) (BYTE *)counterBlockPtr + processIdOffset); TotalTraffics.SetAt(pos,fullTraffic); /如果当前的接口就是我们选择的接口 if(InterfaceName = iName) traffic = *(DWORD *) (BYTE *)counterBlockPtr + processIdOffset); /判断处理的接口是否是新的 if(CurrentInterface != interfaceNumber) lasttraffic = acttraffic; trafficdelta = 0.0; CurrentInterface = interfaceNumber; else trafficdelta = acttraffic - lasttraffic; lasttraffic = acttraffic; delete data; return(trafficdelta); /下一个实例 instancePtr = NextInstance(instancePtr); /下一个对象 objectPtr = NextObject(objectPtr); delete data; return 0; catch(.) 第 20 页 共 22 页 return 0; (2)界面设计(见图 12) 4.4.44.4.4 数据统计模块数据统计模块 (1)可以利用微软的 IP 助手中的 API 函数实现 IP 的统计,网络管理员通 过统计的数据可以在一定程度上发现网络性能瓶颈。涉及到的函数有 GetUdpStatistic,GetTcpStatistic,GetIcmpStatistic,GetIStatistic,需要 注意的是工程中要加载 IPHelpapi.lib 库。函数调用结果通过列表可以直观显 示出来,网络管理人员可以通过其中统计数量的变化监视网络性能。 (2)界面设计(见图 13) 图 12 流量监视模块界面 第 21 页 共 22 页 4.4.54.4.5 常见攻击分析功能常见攻击分析功能 本设计中对部分常见的攻击行为进行了分析,在类 CsockHelper 中包解析 过程中加入了常见攻击行为数据包的判断和报警,比如 Land、Ping of Death 等攻击,部分实现代码如下: if(pIpheader-sourceIP=pIpheader-destIP) pd=1; else if(pIpheader-total_len65535) pd=2; switch(pd) case 1:AfxMessageBox(数据包源目的地址相同,疑是 Land 攻击); sprintf(sLandErrIP,请注意监控该 IP 的数据:%s,szSourceIP); AfxMessageBox(sLandErrIP);break; case 2: AfxMessageBox(受到疑似 ping 拒绝服务攻击); sprintf(sLandErrIP,注意监控源 IP 的数据:%s,szSourceIP); AfxMessageBox(sLandErrIP);break; default:pd=0;break; 根据以后的开发需要,可设计更加丰富的规则对比库进行更多报警分析。 实现更为完善的攻击分析服务。 5 5 系统测试系统测试 5.15.1 测试环境测试环境 5.1.15.1.1 硬件环境硬件环境 图 13 统计模块界面 第 22 页 共 22 页 (1) 处理器 P4 2.0 G Mhz 以上; (2) 内存 512M 以上; (3) 多台普通搭载网卡的 PC、经过路由器或交换机互联。 5.1.25.1.2 操作系统及软件运行环境操作系统及软件运行环境 (1) 操作系统 Win2000/NT 等; (2) VC+6.0。 5.25.2 测试步骤测试步骤 (1) 首先,用多台 PC 搭建局域网络。 (2) 其次,选定一台 PC 进行测试:数据包捕获(含设定条件) 、封包日志保 存、流量峰值、数据统计。 (3) 确定每个功能模块的测试要求。 (4) 对每个功能模块进行数据合法性检查、数据一致性检查。 (5) 进行各模块的功能测试后,对关键模块进行回归测试。 5.35.3 测试结果评价测试结果评价 本设计在 Win2000/NT 环境试运行下,编码后经过多次测试并将发现的错误 及时修改,系统运行正常,基本达到设计目标,运行结果比较良好。 结结 论论 互联网的迅猛发展,流量检测和统计分析成为整个网络安全管理系统的基 础部分。网络管理员可以根据数据流量的变化规律,发现网络故障与攻击行为, 及时采取措施,减少损失。 网络流量分析系统是一个比较复杂的系统,由于时间关系,本设计只完成 了大概框架,通过编写套接字、访问注册表等方法实现了部分主要功能,并没 有完全完成详细指标,比如只提供了局域网内流量实时监测、数据包解析、简 单统计等功能,这些都有待于进一步改进、深入与完善,下一步工作的重点将 是提供更多监控功能,对网络行为进行更深入的分析。 在整个设计过程中,重点放在了数据捕获与流量实时监控两个功能上,进 而描述了采用套接字开发流量监控系统中的思路和关键事项,阐述了开发过程 中碰到的一些技术问题,对功能需求与细节实现进行了详细分析与设计。 通过这次开发过程,提高了我独立地分析、解决问题的能力,而且掌握了 从需求分析、整体设计、详细设计到代码实现的软件开发流程,使我对软件工 程中的理论有了更深入的认识。 第 23 页 共 22 页 参考文献参考文献 1 陈伯成,范闽,李英杰. 利用网络监听维护子网系统安全的一种方法J.计算机工程 与应用.2000,(10):133-135。 2 李凌. Winsock 网络编程实用教程M. 北京:清华大学出版社,2003.11:9-35。 3 曹衍龙,刘海英. Visual C+网络通信编程实用案例精选(第二版)M. 北京:人民 邮电出版社,2006.5:425-437。 4 孙贤淑. IP 网络流量测量的研究与应用D. 北京:北京邮电大学硕士论文, 2005。 5 刘欣然. 支持高精度告警的网络入侵检测系统的设计与实现D. 北京:北京邮电大学 硕士论文, 200

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论