版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.计算机网络课程设计报告课题:监控 IP 包的流量专 业 班 级:计科 10101 班姓名(学号):张鸣宇( 201017010103):李 玮( 201017010143)指 导 教 师:梅晓勇评阅意见:评定成绩:目录指导老师签名:年月日;.一 目的和意义从社会角度来说,随着人们对 Internet 的依赖性越来越高,网络传输的业务类型变得缤纷多彩, 在此背景下, 需要对网络状况, 网络性能进行准确的检测和评估,而这次课程设计正是对流量工程内容研究。从学习的角度来说,此次课程设计将我们带入网络编程领域,进一步网络知识的应用,监控 IP 包的流量课程设计让我们进一步了解 IP 协议的基本内容,
2、 对于掌握 TCP/IP 协议的主要内容和学习网络课程是十分重要的,此外,也加深了对 Winpcap 的理解和运用能力, 同时也增长了知识, 开阔了视野, 对于以后的学习有很大的帮助。二基本原理2.1 概述1. IP 协议IP 是 TCP/IP 模型中的网络层协议,又称为互联网协议,是支持网间互连的数据报协议,它与TCP 协议一起构成了 TCP/IP 协议族的核心。它提供网间连接的完善功能,包括IP 数据报规定互联网范围内的IP 地址格式 2 。在因特网中IP 协议是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,
3、 只要遵守 IP 协议就可以与因特网互连互通。IP 地址具有唯一性,根据用户性质的不同,可以分为不同的类别。IP 协议的特点如下:( 1) IP 协议是一种不可靠、无连接的数据报传送协议。( 2) IP 协议是点对点的网络层通信协议。( 3) IP 协议向通信层隐藏了物理网络的差异。( 4) IP 协议以一种数据报的形式传输数据,每个数据报独立传输,可能通过不同路径传输,因此可能不按顺序到达目的地,或者出现重复。2.关于 Winpcap 库Winpcap(windows packet capture)是 windows 平台下一个买费的、公共的基于 windows 的网络接口 API 库。主要
4、为 win32 应用程序提供访问网络底层的;.能力。Winpcap 的主要功能在于独立于主机协议 (如 TCP/IP)发送和接收原始数据报。也就是说, Winpcap 不能阻塞、过滤或控制其他应用程序数据报的收发,它只是监听共享网络上传送的数据报。因此,它不能用于 QoS 调度程序或个人防火墙。其功能有:(1) 捕获原始数据包,包括在共享网络上各主机发送接收的以及相互之间交换的数据包;(2) 捕获原始数据包,包括在共享网络上各主机发送接收的以及相互之间(3) 在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉;(4) 在网络上发送原始数据包;(5) 收集网络通信过程中的统计信息
5、。2.2 作用对 IP 包流量的控制主要是通过用VC+ 编程实现对网络中IP 数据包流量的统计,实际上是编制程序,监控网络,捕获一段时间内网络上的IP 数据包,按IP 数据包的源地址统计出该源地址在该时间段内发出的IP 包的个数。程序中会用到 Winpcap,它主要功能在于独立于主机协议发送和接收原始数据报。本次课程设计中用 VC+ 实现基于 Winpcap 的网络数据包的捕获和统计,基于 Winpcap 的应用程序将根据获取网络设备列表; 选择网卡并打开; 设置过滤器; 捕获数据包或者发送数据包;列出网卡列表,让用户选择可用的网卡的步骤进行编写三 需求分析3.1 系统功能需求分析近年来,网络
6、病毒的出现和传播更加剧了网络状况的复杂和不稳定性. 在此背景下,需要对网络状况, 网络性能进行准确的检测和评估,而这些正是流量工程的研究内容 . 而流量工程的主要任务是测量和评估网络的运行状况,性能。并能够容易地使网络的最终用户看到和理解评估结果,能够对网络中的突发时间能够做出积极有效的反应, 以及研究和改进网络协议, 网络工作模式的机制, 以促进网络服务的可靠性,保证网络的正常运行。而我们在在这个课程设计里将编制一个程序,监控网络,捕获一段时间内网;.络上的 IP 数据包,按 IP 数据包的源地址统计出该源地址在该时间段内发出的IP 包的个数,将其写入日志文件中或用图形表示出来。3.2 功能
7、函数部分本次课程设计主要运用了以下功能函数:1 系统函数1)pcap_findalldevs(&alldevs,errbuf)说明:用来获得网卡的列表, alldevs 为网络适配器的列表的指针 ; char 型指针 ,当打开列表错误时返回错误信息2)pcap_open_live(head-name,1000,1,1000,errbuf)说明:以混杂模式方式打开网卡, name为要抓取的网络设备的字符串,最大可抓取的字节长度为 1000 字节,超时时间为 1000ms,当在超时内上没有数据到来时对网卡的读操作将返回错误信息3)pcap_compile(fp,&fcode,packet_filt
8、er,1,netmask)说明:编译过滤器, fp 是对网卡描述符,型号、名字, fcode 是一个 bpf_program 结构的指针,在 pcap_compile()函数中被赋值。 1 表示对结果代码进行优化。 netmask参数指定本地网络的网络掩码4)pcap_setfilter(fp,&fcode)5)说明:设置过滤器, 用来联系一个在内核驱动上过滤的过滤器,一旦调用,这时所有网络数据包都将流经相关的过滤器,并拷贝到应用程序中,把 pcap_compile() 构造的 filter 设置到 fp 上 ,6)pcap_freealldevs(alldevs)7)说明:释放网络适配器列表
9、空间8)pcap_next_ex(fp,&header,&pkt_data)说明:该函数从网络设备中读取一个数据包, fp- 设备指针, header-数据包头, pkt_data-数据包内容2. 自定义函数1)main(int argc,char *argv)说明:主函数通过调用主函数和其他自定义函数, 实现 IP 包流量监控的功能, argv是 argc 第 0 个参数,其中第 0 个参数是程序的全名,以后的参数,命令行后面跟的用户输入的参数。2)addNode(long sourceIP)说明:将 IP 结点加入链表;.四 概要设计4.1 编程环境Microsoft Visual C+
10、6.04.2 模块分析课 程设 计的 主要 目 的是 接收 统计 IP 包 ,所以 主 要任务 就 是设置网卡以 及相 关的 一系 列 操作 ,以 下为 一些 主要 功能 模块 :(1)取得当前网络设备列表(在标准输出上显示,以让用户进行选择)。(2)将用户选择的 Ethernet卡以混杂模式打开,以接收到所有的数据包。(3)编译并设置过滤器,此处的过滤器为“IP ”。(4)捕获 IP 包并按包的源地址进行统计(用链表结构进行实现)其程序流程图如下:;.开始获取网卡列表选取 Ethernet网卡打开网卡编译并设置过滤器捕获包将包源地址加入列表否是否超时是显示链表内容结束;.五 详细设计5.1
11、具体实现过程首先获取网卡列表是为了得到网卡的相关信息,以便于用户进行选择,选取 Ethermet 网卡是用户所选择的网卡类型,编译设置过滤器是为了编译并设置过滤器是为了只捕获网络数据流的某些数据, 打开网卡既将网卡设置为混杂 (统计)模式是为了接受所有经过网卡的数据包, 包括不是发给本机的数据包, 开始主循环以是否超时为判断条件, 循环体内主要有捕获 IP 数据包、将 IP 包的源地址加入链表、条件判断,循环结束后输出链表内容,程序至此结束。具体的实现如下:1 取得网络适配器列表并找到要监听的网络适配器,alldevs 是 pcap_if_it指针,指向链表头, errbuf 是 char 类
12、型数组,存储错误信息 3 。 for(d=alldevs;d;d=d-next) /列出网卡列表 ,让用户进行选择cout+j:name;if(d-description)cout descriptionendl;/描述网络适配器接口for(d=alldevs,i=1;inext,i+);/ 找到选择的网络适配器head=d;/2 采用混杂模式打开网络适配器if(fp=pcap_open_live(head-name,1000,1,1000,errbuf)=NULL)coutnUnable to open the adapter.endl;pcap_freealldevs(alldevs);r
13、eturn;3 编译并设置过滤器if(pcap_compile(fp,&fcode,packet_filter,1,netmask)0) /编译并设置过滤器;.coutnUnable to compile the packet filter.Check the syntax.n;pcap_freealldevs(alldevs);return;if(pcap_setfilter(fp,&fcode)0) / 设置滤波器cout=0)time(&end);/ 获得系统时间if(end-beg=min*60)/ 计算系统时间break;if(res=0)continue;/超时ip_header
14、*ih;/找到 I 头得位置ih=(ip_header*)(pkt_data+14);/14 为以太头的长度link.addNode(ih-saddr);/将源 IP 地址加入链表;.5.2 主要数据结构1) 此次课程设计主要采用了链表数据结构,具体的实现如下:class NodeListIPNode *pHead;IPNode *pTail;public:NodeList()pHead=pTail=NULL;NodeList()if(pHead!=NULL)IPNode *pTemp=pHead;pHead=pHead-pNext;delete pTemp;2)IP 包头部结构/struct
15、 ip_headerunsigned char ver_ihl; unsigned char tos; unsigned short tlen; unsigned short identification; unsigned short flags_fo; unsigned char tll; unsigned char proto; unsigned short crc; DWORD saddr;DWORD daddr;unsigned int op_pad;/ 版本号 (4 位 )+头部长度 (4 位 )/服务类型/总长度/标识/标志 +片偏移/生存时间/协议/校验码/ 源地址/ 目的地址
16、/选项 +填充;.六 实现与测试6.1 实现与测试1)取得网络适配器列表并找到要监听的网络适配器号.2)正在监听 IP 数据包,时间为一分钟;.3)最后的监听的结果;.七 心得结论在这一周的课程设计里,在老师同学帮助自己以及自己的努力下,我学到了很多的东西。在此期间老师给了我们很大的帮助, 老师的认真负责让我们不再马马乎乎对待自己的学业,在课堂上老师也以同样的责任心来督促我们认真学习, 对于不懂的问题都会一一解答, 现在也如此, 这对于我们以后步入社会之后有很大的帮助, 无论做任何事情都要认真负责,对自己负责同时也对别人负责。在老师的指导之余,我还学到了一定的课外知识,以前从未听过 Winpc
17、ap,现在我知道了它对于捕获网络上的一些数据信息很有帮助,从而丰富了我的知识,同时也知道了如何去利用它来为自己服务,这是一个很大的进步。做这个题目我从网上找了很多的资料。但也不能盲目相信找来的资料,要通过自己的验证没错误后才能用。 不但是于此, 别的任何学习方面也一样。 在自己查找资料的同时也锻炼了我及时捕获有用知识的能力, 我想这是我现在乃至以后最大的一个财富, 一个人最重要的就是要懂得如何去学, 学习不是被动的, 而是主动的,只有这样我们才能学得到对于我们自己有帮助的东西,用VC+ 编程实现 IP 数据报流量统计,开始这对于我来说是是一个很模糊的概念,但是当我在查找了很多资料之后我不再迷茫, 而是慢慢跟着我所要找的资料来靠近我所要达到的目标。这是我们每个人所要学会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中职安全管理方案
- 虚拟化技术应用项目教程 课件 第七章 Kubernetes容器云平台部署
- 内科儿科护理学练习题+参考答案
- 学校学生营养餐食堂供餐工作方案
- 苏教版小学一年级语文下册《练习3》阅读训练教案
- 二级人力资源管理师试题及答案
- 麻醉科安全管理
- 大班健康我爱运动
- 教育学与心理学2016备考题库及参考答案
- 国家开放大学电大统计学原理试题题库及答案
- 2026年全国新高考1卷语文试卷(含答案及解析)
- 2026春苏教版四年级下册数学期末综合练习卷附答案(三套)
- 食品进货查验制度全流程培训
- 癌症患者乏力症状干预调理临床指南 (2026 版)
- 2026年安徽芜湖中小学教师招聘考试真题及答案
- 心脏外科术后疼痛管理
- 2026中国建筑工程监理行业市场深度调研及发展趋势和投资前景预测研究报告
- 简单建筑工程监理合同模板2025
- 管道树脂固化修复合同
- 精神科应急预案及处理
- 中国能源建设集团广东火电工程有限公司2026届春季校园招聘考试参考试题及答案解析
评论
0/150
提交评论