计算机网络课设IP数据包的捕获

上传人:s9****2 文档编号:506395265 上传时间:2024-01-27 格式:DOCX 页数:13 大小:30.12KB
返回 下载 相关 举报
计算机网络课设IP数据包的捕获_第1页
第1页 / 共13页
计算机网络课设IP数据包的捕获_第2页
第2页 / 共13页
计算机网络课设IP数据包的捕获_第3页
第3页 / 共13页
计算机网络课设IP数据包的捕获_第4页
第4页 / 共13页
计算机网络课设IP数据包的捕获_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《计算机网络课设IP数据包的捕获》由会员分享,可在线阅读,更多相关《计算机网络课设IP数据包的捕获(13页珍藏版)》请在金锄头文库上搜索。

1、北京理工大学珠海学院网络编程实践报告20142015 学年第 1 学期题目:IP数据包捕获学院:计算机学院专业班级: 网络工程2 班学 号:1202050210152015年 1 月 4 日IP数据包捕获摘要摘要:IP数据报的内容体现了网际互联层的网间协议的协议机制。解析IP 数据报,对把握网络的运行情况以及协议机理都很有帮助。很多具体应用也与 此紧密相关。在VC+环境下用套接字进行编程,实现了对网络节点上的数据报 的捕获,并对其中各个参数域进行了解析。最后通过实例进行了演示。关键词:IP数据报;VC+目录第一章 相关背景知识与相关技术 错误!未定义书签1.1 背景知识 错误!未定义书签1.2

2、 开发环境的术介绍错误!未定义书签1.3 网络编程技术介绍错误!未定义书签第二章 总体设计 错误!未定义书签2.1 模块化设计总方案 错误!未定义书签2.2 模块功能设计 错误!未定义书签第三章 详细设计 错误!未定义书签3.1 数据结构设计 错误!未定义书签3.2 模块接口设计 错误!未定义书签3.3 模块实现设计 错误!未定义书签第四章 调试与测试 错误!未定义书签4.1 调试过程中的主要问题 错误!未定义书签4.2 测试过程与结果 错误!未定义书签参考文献 错误!未定义书签心得体会 错误!未定义书签。相关背景知识与相关技术1.2 背景知识计算机网络是计算机技术与通信技术紧密结合的产物,网

3、络技术队信息产业 的发展产生深远的影响,而且将发挥越来越大的作用。本章在介绍网络形成于发 展历史的基础上,对网络定义、分类与拓扑构型等问题进行了系统的讨论,并对 网络的应用、网络技术的研究与发展进行了探讨,以帮助人们对网络技术与应用 有一个全面和准确的认识。IP 数据包作为网络层的数据必然要通过帧来传输。一个数据包可能要通过多 个不同的网络。每一个路由器都要讲接收到的帧进行拆包和处理,然后封装成另 外一个帧。帧的格式与长度取决于网络所采用的协议。从网络层数据链路层来 看,由于IP数据包的最大长度为65535B,那么它所使用的网络的数据链路层最 大传输单元的长度为65535B,那么传输的效率一定

4、会很高。但是实际上大量使 用的网络的最大传输单元长度都比IP数据包的最大长度短。以太网的MTU长 度为1500B,它远小于IP数据包的最大长度。因此,使用这些网络传输IP数据 包时,要对 IP 数据包进行分成若干较小的片濑传输,这些片的长度小于或等于 数据链路层MTU的长度。1.2 开发环境技术介绍本系统前台采用Microsoft公司的Visual C+6. 0作为主要开发工具;该系 统在安全、准确性和运行速度方面都占有一定优势。1.3 网络编程技术介绍本次课程设计主要是通过用VC+编程实现对网络中IP数据包流量的统计, 实际上是编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据

5、 包的源地址统计出该源地址在该时间段内发出的IP包的个数,通过本次课程设 计可以将VC+在一段时间内对IP数据包的捕获。加深了对VC+的理解和运用 能力,同时也增长了知识,开阔了视野,对于以后的学习有很大的帮助。二、总体设计1. IP 数据包各个部分理解IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段 标志、分段偏移量、生存时间、上层协议类型、头校验合、源IP地址和目的IP 地址等内容。2. 基本要求根据IP数据包的标准格式,编写程序捕获IP数据包并进行解析,并将解析 后各IP包的头部与数据字段写入输出文件。三、系统设计1. 系统功能结构通过对相应的IP数据包进行分析可以得出:

6、IP数据包版本的信息 IP数据包头长度的信息 IP数据包服务类型的信息 IP数据包数据包总长度的信息 IP数据包数据包标识的信息 IP数据包分段标志的信息 IP数据包分段偏移值的信息 IP数据包源IP地址的信息 IP数据包目的IP地址的信息通过对以上的IP数据报的分析可以得到具体的网络流量状况,并通过对其进行分析,得到当前网络的状况的流量分析结果,从而实现高效的管理。2. 设计流程图生成输出文件创建原始套接字1*捕获 IP数据包1解析 IP数据包1F退出系统3. 具体功能实现1) 网卡设置为了获取网络中的 IP 数据包,必须对网卡进行编程,在这里使用套接 字(socke t)进行编程。但是,在

7、通常情况下,网络通信的套接字程序只能响 应与自己硬件地址相匹配的数据包或是以广播形式发出的数据包。对于其他 形式的数据包,如已到达网络接口,但却不是发送到此地址的数据包,网络 接口在骓投递地址并非自身地址之后将不引起响应,也就是说应用程序无法 收取与自己无关的数据包。我们要想获取网络设备的所有数据包,就是需要 将网卡设置为混杂模式。2) 接受数据包在程序中可使用recv()函数接收经过的IP包。该函数有四个参数,第 一个参数接收操作所用的套接字描述符;第二个参数接收缓冲区的地址;第 三个参数接收缓冲区的大小,也就是所要接收的字节数;第四个参数是一个 附加标志,如果对所发送的数据没特殊要求,直接

8、设为0。因为IP数据包的 最大长度是65535B,因此缓冲区的大小不能小于65535B。设置缓冲区后, 可利用循环来反复监听接收IP包,用recv()函数实现接收功能。3) 定义 IP 头数据结构没有详细的进行IP数据包的定义,而是利用IP数据包的结构进行调用 使得成为一个虚拟的IP数据报。例如:ip.Version就是从IP头中取出IP 数据源的。inet_ntoa(*(in_addr*)&ip.DstAddr)就是从IP头中取出目的 IP地址的。后面的依次同理进行求解。4) IP 包解析解析IP包的字段有两种策略。针对长度为8位、16位和32位的字段(或 子字段)时,可以利用IP-HEAD

9、ER的成员直接获取。要解析长度不是8位倍 数的字段(或子字段)时,可以利用C语言中的移位以人、及与、或操作完成。4. 实验结果PackCaptur| XC ap t nr e ITujtiE p r1E口t tonlC ap tiir h 工口furm at i on版本IFv4IPv4IPv4IPv4IFv4IFv4IFw4总长度146814S81468146S146814651468标志位片偏移 n- u 源地址目的地址10.0. 149. 10310.0. 149. 5410.0. 149. 2310.0. 149. 9010.0. 149. 6410. Q. 14日,7110.0. 1

10、49. 21255.255.255.255255.255.255.25555.255.255.25555.255.255.255255.255.255.255255.255.255.255J如上图所示,上半部分是 IP 数据包各个部分的解析,当 IP 数据包中协议类 型为UDP时在下方会相应显示UDP数据包的解析。四、实验心得通过这次的课程设计,我基本掌握了用套接字编程来实现获取并解析 IP 数据 包的方法。当然,过程要比想象艰辛得多。首先是一个设计思想的问题。众所周 知,IP数据报的格式说明了 IP协议都具有什么功能。但是由于在数据报环节知 识的薄弱,我查阅了相关资料,才大致了解了 IP数据

11、报的各种位与协议的概念 和意义。进而在脑中才形成了解决问题的理念网卡可以接收流经其的各种数 据报,所以毫无疑问的应当围绕它进行编程实现。但是这也正是我最迷惑的地方 因为完全不知道如何使用套接字socket()函数毕竟是以前从未接触过 的领域。后来通过在一些网络编程教材上的了解和与做同类题目同学的讨论,我 编程的思路才逐渐清晰起来。这次课程设计教会我的不仅仅只是如何实践运用与 其相关的知识,更重要的是让我懂得个人的实践比单纯的讨论重要,要单纯的讨 论比单纯的空想有效。同时,本次课设也大大提高了我编程的自信,让我感受到 了成功的喜悦。五、附录1. 参考文献计算机网络(第四版) 主编:谢希仁 出版社

12、:电子工业出版社出 版时间:2004年7月计算机网络课程设计主编:吴功宜 胡晓英 张仁 何云 王宁出版社: 机械工业出版社出版或修订时间:2005年9月计算机网络设计主编:易建勋 出版社:人民邮电出版社 出版或修 订时间:2007年10月计算机网络主编:吴功宜出版社:清华大学出版社2. 实验代码#include winsock2.h#include ws2tcpip.h#include iostream.h#include stdio.h#pragma comment(lib,ws2_32.lib)typedef struct _IP_HEADER unionBYTE Version;BYTE

13、 Headlen;BYTE ServiceType;WORD TotalLen;WORD ID; union WORD Flags; /标志(前3位)WORD FragOff; /报头标长(后4位),IP头的长度 ;BYTE TTL;BYTE Protocol;WORD HdrChksum; /头校验和DWORD SrcAddr; /源地址DWORD Dst Addr;/ 目的地址BYTE Options;IP_HEADER;typedef struct _UDP_HEADERunsigned short sourport; unsigned short destport; unsigned

14、short uslength; unsigned short checksum;UDP_HEADER,*PUDP_HEADER;void getVersion(BYTE b,BYTE &version) version=b4;void getIHL(BYTE b,BYTE &total_len) total_len=(b&0x0f)*4;char * parseServiceType_getProcedence(BYTE b) switch(b5)case 7:return Network Control;break; case 6: return Internet work Control; break;case 5:return CRITIC/ECP;break; case 4: return Flash Override;break; case 3: return Flsah;break; case 2: return Immediate;break; case 1: return Priority;break;case 0:return Routine;break; default:return Unknow;break;char * parseServiceType_getT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号