




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 开发背景计算机网络是计算机技术与通信技术紧密结合的产物,网络技术队信息产业的发展产生深远的影响,而且将发挥越来越大的作用。本章在介绍网络形成于发展历史的基础上,对网络定义、分类与拓扑构型等问题进行了系统的讨论,并对网络的应用、网络技术的研究与发展进行了探讨,以帮助人们对网络技术与应用有一个全面和准确的认识。 IP数据包作为网络层的数据必然要通过帧来传输。一个数据包可能要通过多个不同的网络。每一个路由器都要讲接收到的帧进行拆包和处理,然后封装成另外一个帧。帧的格式与长度取决于网络所采用的协议。从网络层数据链路层来看,由于IP数据包的最大长度为65535B,那么它所使用的网络的数据链路层最大传输单元的长度为65535B,那么传输的效率一定会很高。但是实际上大量使用的网络的最大传输单元长度都比IP数据包的最大长度短。以太网的MTU长度为1500B,它远小于IP数据包的最大长度。因此,使用这些网络传输IP数据包时,要对IP数据包进行分成若干较小的片濑传输,这些片的长度小于或等于数据链路层MTU的长度。122. 需求分析在传输路径中,路由器通常连接多个网络。不同的网络的数据链路层最大传输单元的长度的可能不同的,因此路由器在接收到数据包,并准备要转发到目的主机时,它必须首先决定使用哪一个接口网络,要决定该网络的数据链路层最大传输单元是否允许该数据包通过。根据数据包长度来确定是否需要对数据包进行分片。 如果数据包来自一个能够通过较大数据包的局域网,又要通过另一个只能通过较小的数据包的局域网,那么就必须对IP数据包进行分片。IP数据包分片的方法如下图所示在IP数据包分片时,首先要确定片长度。然后将原始IP数据包包括报头分成第1个片。如果剩下的数据仍然超过长度,那么需要进行第2次分片。第2个分片数据加上原来的报头,构成第2个片。这样一直分割到剩下的数据小于片长度为止。 3. 可行性分析经济可行性适用本计算机安全系统可提高计算机通信流量分析和管理水平,把大量繁琐工作简单化,能够有效地节省人力物力,并能够准确地进行统计和计算,避免人工统计或计算所带来的差错,保证计算机通信管理高效而有序地进行。技术可行性本系统前台采用 Microsoft公司的 Visual C+6.0作为主要开发工具;该系统在安全、准确性和运行速度方面都占有一定优势。4. 系统分析本系统是针对于计算机通信流量分析的,通过对IP数据包的版本头部长度 服务类型总长度标示符标志位片位移生存周期协议头部校验和源地址目的IP地址。对所输入的IP数据包进行对应的分析可以得到一系列的对应的属性值。管理员通过对这些IP数据包属性值进行对应的解析可以得到该网络的通信具体情况。5. 系统设计5.1 系统目标利用C/C+语言,根据所学知识,设计程序,功能为捕获网络中的IP数据包,接续数据包的内容,将结果显示在比准输出上,并同时写入日志文件。具体:1. 以命令行形式运行,ipparse logfile,其中ipparse是程序命,而logfile则代表记录记过的日志文件。2. 在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。3. 当程序接收到键盘输入Ctrl+C时推出。5.2 系统功能结构通过对相应的IP数据包进行分析可以得出: IP数据包版本的信息 IP数据包头长度的信息 IP数据包服务类型的信息 IP数据包数据包总长度的信息 IP数据包数据包标识的信息 IP数据包分段标志的信息 IP数据包分段偏移值的信息 IP数据包生存时间的信息 IP数据包上层协议类型的信息 IP数据包头校验和的信息 IP数据包源IP地址的信息 IP数据包目的IP地址的信息通过对以上的IP数据报的分析可以得到具体的网络流量状况,并通过对其进行分析,得到当前网络的状况的流量分析结果,从而实现高效的管理。5.3 结构功能图及活动流程图5.3.1 结构功能图5.3.2 功能活动图5.4 具体功能实现5.4.1网卡设置 为了获取网络中的IP数据包,必须对网卡进行编程,在这里使用套接字(socket)进行编程。但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的数据包或是以广播形式发出的数据包。对于其他形式的数据包,如已到达网络接口,但却不是发送到此地址的数据包,网络接口在骓投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的数据包。我们要想获取网络设备的所有数据包,就是需要将网卡设置为混杂模式。5.4.2接收数据包 在程序中可使用recv()函数接收经过的IP包。该函数有四个参数,第一个参数接收操作所用的套接字描述符;第二个参数接收缓冲区的地址;第三个参数接收缓冲区的大小,也就是所要接收的字节数;第四个参数是一个附加标志,如果对所发送的数据没特殊要求,直接设为0。因为IP数据包的最大长度是65535B,因此缓冲区的大小不能小于65535B。设置缓冲区后,可利用循环来反复监听接收IP包,用recv()函数实现接收功能。5.4.3 定义IP头部的数据结构没有详细的进行IP数据包的定义,而是利用IP数据包的结构进行调用使得成为一个虚拟的IP数据报。例如:source.S_un.S_addr = pIPHeader-ipSource; 就是从IP头中取出IP数据源的。dest.S_un.S_addr = pIPHeader-ipDestination; 从IP头中取出目的IP地址的。后面的依次同理进行求解。5.4.4IP包的解析解析IP包的字段有两种策略。针对长度为8位、16位和32位的字段(或子字段)时,可以利用IP-HEADER的成员直接获取。要解析长度不是8位倍数的字段(或子字段)时,可以利用C语言中的移位以人、及与、或操作完成。5.5 具体的实现代码#include initsock.h#include protoinfo.h #include #include #include #include #include mstcpip.h/#pragma comment(lib, Advapi32.lib)CInitSock theSock;void IPHQZ(char*);int nc=0;void main()SOCKET sAYU=socket(AF_INET,SOCK_RAW,IPPROTO_IP); /创建原始套接字sHQZ.char szHostName56;SOCKADDR_IN addr_in;gethostname(szHostName,56); /获取主机名。struct hostent *pcHost;/创建一结构体对象用于存放获得的本机IP。if(pcHost=gethostbyname(char*)szHostName)=NULL) return ; addr_in.sin_family =AF_INET;addr_in.sin_port =htons(0);memcpy(&addr_in.sin_addr .S_un .S_addr ,pcHost-h_addr_list 0,pcHost-h_length );cout-欢迎使用IP网络数据包分析工具-endlendl;cout您的IP地址为::inet_ntoa(addr_in.sin_addr )0)IPHQZ(buff);closesocket(sAYU);void IPHQZ(char *pData)coutendl;cout-IP网络数据包分析-endlipSource; / 从IP头中取出源dest.S_un.S_addr = pIPHeader-ipDestination; / 从IP头中取出目的IP地址strcpy(szSourceIp, :inet_ntoa(source);strcpy(szDestIp, :inet_ntoa(dest);coutIP包 源 地址szSourceIpendl;coutIP包目的地址szDestIpiphVerLen4) & 0xf) * sizeof(UCHAR); /IP包版本号coutIP包版本为: IPviphveriphVerLen & 0xf) * sizeof(ULONG); / IP报头长度coutIP包报头长度为nHeaderLenendl;cout开销为:ipTOS1) & 0x1)endl;cout可靠性为:ipTOS2) & 0x1) endl;cout吞吐量为:ipTOS3) & 0x1)endl;cout延迟为:ipTOS4) & 0x1) endl;cout优先级为:ipTOS5) & 0x1) ipTOS6) & 0xf) * sizeof(UCHAR)ipTOS7) & 0xf) * sizeof(UCHAR)ipLength);coutIP包总长度为: countlenBendl;cout标识为:ipIDendl;cout标志位为:ipFlagsendl;cout生存时间为:ipTTL)ipProtocol)case IPPROTO_TCP: / TCP协议coutIP包使用的协议为: TCPendl;break;case IPPROTO_UDP:coutIP包使用的协议为: UDPendl;break;case IPPROTO_ICMP:coutIP包使用的协议为: ICMPendl;break; case IPPROTO_IGMP:coutIP包使用的协议为: IGMPendl;break; cout校验和:ipChecksumendl;cout部分数据为:endl;for(int i=1;i100;i+)printf( %02x ,buffnHeaderLen+i);coutendl;5.6 程序运行截图5.6.1 TCP的数据包5.6.2 UDP的数据包6. 实验心得通过这一个星期的课程设计,我基本掌握了用套接字编程来实现获取并解析IP数据包的方法。当然,过程要比想象艰辛得多。首先是一个设计思想的问题。众所周知,IP数据报的格式说明了IP协议都具有什么功能。但是由于在数据报环节知识的薄弱,我特地去图书馆查阅了相关资料,才大致了解了IP数据报的各种位与协议的概念和意义。进而在脑中才形成了解决问题的理念网卡可以接收流经其的各种数据报,所以毫无疑问的应当围绕它进行编程实现。但是这也正是我最迷惑的地方因为完全不知道如何使用套接字socket()函数毕竟是以前从未接触过的领域。后来通过在一些网络编程教材上的了解和与做同类题目同学的讨论,我编程的思路才逐渐清晰起来。这次课程设计教会我的不仅仅只是如何实践运用与其相关的知识,更重要的是让我懂得个人的实践比单纯的讨论重要,要单纯的讨论比单纯的空想有效。同时,本次课设也大大提高了我编程的自信,让我感受到了成功的喜悦。7. 参考书籍计算机网络(第四版)主编:谢希仁 出版社:电子工业出版社 出版时间:2004年7月计算机网络课程设计 主编:吴功宜 胡晓英 张仁 何云 王宁 出版社:机械工业出版社 出版或修订时间:2005年9月计算机网络设计主编:易建勋 出版社:人民邮电出版社 出版或修订时间:2007年10月计算机网络 主编:吴功宜 出版社:清华大学出版社XX大学XX学院 课程设计评分表学生姓名: 班级:信管班 学号课程设计题目:IP数据包分析项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年从入门到精通香席制作技艺全攻略含试题解析
- 2025年人力资源公司招聘专员模拟面试题及参考答案
- 2025年出版物发行零售项目发展计划
- 护理操作培训知识点课件
- 消毒供应中心医院感染管理
- 2025年科研合作协议书
- 抢救车及抢救药品课件
- 2025年吡虫啉项目发展计划
- 2025年智能小区(楼)系统项目建议书
- 2025年玉米新组合项目合作计划书
- 《汽车发动机检修》课程标准
- DBJ51T 196-2022 四川省智慧工地建设技术标准
- 审核检查表(ISO13485、GMP、体考指南、QSR820)
- 宿舍教室报修维修登记表
- GB308-2002滚动轴承钢球
- 夹芯彩钢复合板吊顶施工方案
- 剪映入门教程PPT
- 高二物理培优计划
- 高标准农田建设项目施工组织设计 (6)
- 初中英语阅读理解100篇
- 齿轮的设计计算PPT学习教案
评论
0/150
提交评论