ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:457.44KB ,
资源ID:12990891      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12990891.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机网络课程设计报告IP数据包的捕获与分析Word下载.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机网络课程设计报告IP数据包的捕获与分析Word下载.docx

1、 随着计算机技术的发展,网络的应用迅速普及,网络已日益成为生活中不可或缺的工具。同 时,网络的安全性与可靠性日益受到人们的重视,安全性指的是网络上的信息不被泄露、更改和破坏,可靠性指的是网络系统能够连续、可靠地运行,网络服务不被 中断。网络数据包捕获、监听与分析技术是网络安全维护的一个基础技术同时也是网络入侵的核心手段。所以研究有关数据包捕获和分析技术对保证网络的健康、安 全运行是很有意义的。1.2课题研究的意义计算机之间进行通信时,交互的所有信息都封装在数据包中。因此,通过采集网络数据并对其进行相应的分析,可以清楚地了解到进行通信的计算机的通信目的。通过分析采集到的数据包可以确定网络是否受到

2、入侵;其次也可以通过采集到的数据包来分析应用程序可能出现的问题及原因;此外,通过网络数据的采集和统计可以清楚地了解整个网络在各个时段内的网络负载情况,从而判断网络使用得是否合理。除了以上谈到的几个方面外,网络数据包的采集和分析还有其它很多用途。第2章 课程设计的目的与要求2.1 课程设计的目的计算机网络课程设计的目的,是为了让学生更深入地掌握计算机网络的核心内容,实现理论与实践相结合。让学生用具体的实践成果,体现对理论知识的掌握程度。有利于学生提高计算机网络的实践能力,加深对计算机网络理论知识的理解。2.2 课程设计的要求(1)编写程序,实现系统的基本功能,鼓励自行增加新功能;(2)要有用户界

3、面:要求至少采用文本菜单界面;鼓励采用图形菜单界面;(3)写课程设计报告,内容包括: 封面(参见附录I) 需求分析:以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?给出功能模块图和流程图。同时明确规定:输入的形式和输出值的范围;输出的形式;程序所能够达到的功能;测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。 概要设计:包括程序设计组成框图,程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。 详细设计:包括模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等),每个模块的算法设计说明(可以是描述算法的流程图)。其中源程序要按照写程序的

4、规则来编写,结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 运行结果:包括典型的界面、输入和输出数据等; 总结:包括课程设计中遇到的问题,解决问题的过程及体会、收获、对课程设计的认识与思考等。 附录:包括主要程序清单,要有适当的注释,使程序容易阅读。(4)课程设计报告书写规范参见附录II,不按照规范书写的,成绩不能评为“优”或“良”。(5)无论在校外、校内,都要严格遵守学校和所在单位的学习和劳动纪律、规章制度,学生有事离校必须请假。课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。3.1 课程设计的内容本次实验的要求在网络环境,使用VC+编写程序

5、实现捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。3.2 内容的要求(1)了解IP数据包的组织结构,设计程序使其能够自动捕获流经本地网卡的一定数量的IP数据包并解析数据包头部信息。(2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。 (3)最好能用数据库等便于数据存储分析的媒介保存捕获IP数据包的头部信息,建议设计用户界面。第4章 程序设计与分析4.1 IP数据包4.1.1 IP数据包的格式说明IP数据包格式包含了标头固定部

6、分,标头可变部分和数据区三部分。IP数据包标头固定部分为20个字节,其中包含了12个参数域,各参数域隐含着网间协议的传输机制。IP包头部具体的标头格式下图所示:各参数域的具体含义如下:1) 版本号:长度4位,表示所使用的IP协议的版本。IPv4版本号字段值为4;IPV6版本号字段号的值为6,目前主要是Ipv4。2) 标头长:长度4位,定义了一个以4B为一个单位的IP包的首部长度,一般长度为20-40个字节。3) 服务类型:共8位,高3位组成优先级子域,随后4位组成服务类型子域,最后一位暂未使用。4) 数据报总长度:总长度为2B(即16位)。定义了以字节为单位的数据报的总长度,即一个数据报总长度

7、为65535。5) 重装标识:长度16位,用于识别IP数据报的编号,让目的主机判断新来的数据属于哪个分组。6) 分片标识:共3位,最高位为0;DF为禁止分片标识,DF=0表示可以分片;DF=1表示不能分片。MF为分片标识,MF=0表示接的是最后一个分片;MF=1表示不是最后一个分片。7) 片偏移值:共13位,说明分片在整个数据报中的相对位置。8) 生存周期:共8位,用来设置数据数据报在整个网络传输过程中的寿命。常以一个数据报可以经过的最多的路由器跳步数来控制。9) 协议类型:共8位,表示该IP数据报的高层协议类型。10) 标头校验和:共16位,用于存放检查报头错误的校验码。11) 源、宿主机地

8、址:各32位,分别表示发送和接受数据报的源主机和宿主机的IP地址。12) 选项数据域:0-20B,用于控制和测试。4.1.2 头部数据结构的定义IP数据包由IP头部与IP数据构成,需要自行构造的是IP数据包的头部。在解析IP头部的各个字段之前,首先需要构造IP头部的数据结构,包括1字节的版本与头部长度、1字节的服务类型、2字节的总长度、2字节的标识符、2字节的标志位与片偏移、1字节的生存周期、1字节的协议、2字节的头部校验、4字节的源地址与4字节的目的地址。这里,不需要构造选项与填充字段。struct IP_HEAD union unsigned char Version;/版本(字节前4位)

9、 unsigned char HeadLen;/首部长度(字节后4位) ; unsigned char ServiceType;/服务类型 unsigned short TotalLen;/总长度(16位) unsigned short Identifier;/标识符 unsigned short Flags;/标志位(字前位) unsigned short FragOffset;/片偏移(后位) unsigned char TimeToLive;/生存时间 unsigned char Protocol;/协议 unsigned short HeadChecksum;/头部校验和 unsign

10、ed int SourceAddr;/源IP地址 unsigned int DestinAddr;/目的IP地址;4.2 程序实现4.2.1 套接字的使用本程序使用套接字socket编程,将网卡设为能够接受流经网卡的所有类型的数据包。首先,初始化套接字,然后监听数据包,解析数据包。sock=socket(AF_INET,SOCK_RAW,IPPROTO_IP)用来创建套接字,其参数为通信发生的区字段和套接字的类型。bind(sock,(PSOCKADDR)&host_addr,sizeof(host_addr)用来把原始socket绑定到本地网卡。WSAIoctl(sock,_WSAIOW(I

11、OC_VENDOR,1),&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL)函数用来把网卡设置为混杂模式。4.2.2 数据库的使用本程序需要将捕获的数据包头部信息存入数据库以便以后统计和分析,在使用数据库执行相关数据库的操作之前必须先连接到数据库。具体实现如下:MYSQL* mysql=mysql_init(NULL);初始化一个并返回一个新的MySQL对象。 mysql_real_connect(mysql,con.host,con.user,con

12、.password,con.db,3306,NULL,0);根据传入的参数信息连接到数据库。数据库连接成功后就可以使用mysql_query(conn,sql_query)函数执行数据库的操作了,conn为数据库连接句柄,sql_query中保存数据库操作语句。执行数据库操作之前需生成数据库操作语句,实现如下:string version,len_h,priority,type,len_t,identi,df,mf,s_offset,life_t,protocol,checksum,s_ip,d_ip,s1,s2,s3,s;定义string类型变量。s1=insert into head_in

13、fos values(IPv;s2=)s3=,以上语句为字符串常量定义,用于连接生成数据库语句。在解析数据包头部信息时,返回值各不相同,为了便于使用字符串连接操作生成数据库执行语句,需将头部信息统一转换为字符串类型,自定义函数itos(int n)用于将int类型转换为string类型,具体实现如下:string itos(int n) stringstream ss; ssstr; return str;将int类型转换为string类型s=s1+version+s3+len_h+bits+s3+priority+s3+type+s3+len_t+s3+identi+s3+df+s3+mf+s3+s_offset+s3+life_t+s3+protocol+s3+checksum+s3+s_ip+s3+d_ip+s2;生成数据库要执行的插入语句。 sprintf(sql_query,s.c_str();将生成的数据库插入语句格式化。m

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1