2022年2022年计算机网络课程设计报告_IP数据包的捕获与分析 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年2022年计算机网络课程设计报告_IP数据包的捕获与分析 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机网络课程设计报告_IP数据包的捕获与分析 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、CENTRAL SOUTH UNIVERSITY 计算机网络课程设计报告题目 IP数据包的捕获与分析学生姓名廖成班级学号 0902130408 指导教师穆帅设计时间 2015年 11 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 目录第一章 绪论.3 1.1 课题研究背景 .3 1.2 课题研究的意义 .3 第二章 课程设计的目的与要求 .3 2.1 课程设计的目的 .3 2.2 课程设计的要求 .4 第三章 课程设计的内
2、容 .4 3.1 课程设计的内容 .5 3.2 内容的要求 .5 第四章 程序设计与分析 .5 4.1 IP 数据包 .5 4.1.1 数据包的格式说明 .5 4.1.2 头部数据结构的定义 .7 4.2 部分程序实现 .7 4.2.1 套接字的使用 .7 4.2.2 数据库的使用 .8 4.2.3 各部分详细实现 .9 4.4 程序流程图 .12 4.4.1 主程序流程图 .12 4.4.2 捕获并分析数据包头部模块流程图.13 4.4.3 头部信息存数据库模块 .13 第五章 实验结果 .14 5.1 程序截图 .14 第六章 总结.16 6.1 实验心得 .16 第七章 附录.17 参考
3、文献 .17 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 第一章 绪论1.1 课题研究背景随着计算机技术的发展,网络的应用迅速普及,网络已日益成为生活中不可或缺的工具。同时,网络的安全性与可靠性日益受到人们的重视,安全性指的是网络上的信息不被泄露、更改和破坏,可靠性指的是网络系统能够连续、可靠地运行,网络服务不被中断。网络数据包捕获、监听与分析技术是网络安全维护的一个基础技术同时也是网络入侵的核心手段。所以研究有关数据包捕
4、获和分析技术对保证网络的健康、安全运行是很有意义的。1.2 课题研究的意义计算机之间进行通信时,交互的所有信息都封装在数据包中。因此,通过采集网络数据并对其进行相应的分析, 可以清楚地了解到进行通信的计算机的通信目的。通过分析采集到的数据包可以确定网络是否受到入侵;其次也可以通过采集到的数据包来分析应用程序可能出现的问题及原因;此外,通过网络数据的采集和统计可以清楚地了解整个网络在各个时段内的网络负载情况,从而判断网络使用得是否合理。 除了以上谈到的几个方面外, 网络数据包的采集和分析还有其它很多用途。第二章 课程设计的目的与要求2.1 课程设计的目的计算机网络课程设计的目的, 是为了让学生更
5、深入地掌握计算机网络的核心内容,实现理论与实践相结合。 让学生用具体的实践成果, 体现对理论知识的掌握程度。有利于学生提高计算机网络的实践能力,加深对计算机网络理论知识的理解。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 2.2 课程设计的要求(1)编写程序,实现系统的基本功能,鼓励自行增加新功能;(2)要有用户界面:要求至少采用文本菜单界面;鼓励采用图形菜单界面;(3)写课程设计报告,内容包括:封面(参见附录 I )需求分
6、析:以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?给出功能模块图和流程图。同时明确规定:输入的形式和输出值的范围;输出的形式;程序所能够达到的功能;测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。概要设计:包括程序设计组成框图,程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。详细设计:包括模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等),每个模块的算法设计说明(可以是描述算法的流程图)。其中源程序要按照写程序的规则来编写,结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。运行结果:包括典型的界面、输入和输出数据
7、等;总结:包括课程设计中遇到的问题,解决问题的过程及体会、收获、对课程设计的认识与思考等。附录:包括主要程序清单,要有适当的注释,使程序容易阅读。(4) 课程设计报告书写规范参见附录II , 不按照规范书写的, 成绩不能评为“优”或“良”。(5)无论在校外、校内,都要严格遵守学校和所在单位的学习和劳动纪律、规章制度,学生有事离校必须请假。课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。第三章课程设计的内容名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
8、4 页,共 17 页 - - - - - - - - - 3.1 课程设计的内容本次实验的要求在网络环境, 使用 VC+ 编写程序实现捕获网络中的IP 数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。3.2 内容的要求(1)了解 IP 数据包的组织结构, 设计程序使其能够自动捕获流经本地网卡的一定数量的 IP 数据包并解析数据包头部信息。(2)在标准输出和日志文件中写入捕获的IP 包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源 IP 地址和目的 IP 地址等内容。(3)最好能用数据库等便于数据存储分析的媒介
9、保存捕获IP 数据包的头部信息,建议设计用户界面。第四章 程序设计与分析4.1 IP数据包4.1.1 IP数据包的格式说明IP 数据包格式包含了标头固定部分,标头可变部分和数据区三部分。IP 数据包标头固定部分为20 个字节,其中包含了 12 个参数域,各参数域隐含着网间协议的传输机制。 IP 包头部具体的标头格式下图所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - 4位版本4位首部长度8位服务类型 (TOS)16位总长度
10、 (字节为单位 )16位标识3位标志13位片偏移8位生存时间 (TTL)8位协议16位首部检验和32位源 IP地址32位目的 IP地址各参数域的具体含义如下:1)版本号:长度 4 位,表示所使用的 IP 协议的版本。 IPv4 版本号字段值为 4;IPV6 版本号字段号的值为6,目前主要是 Ipv4 。2)标头长:长度 4 位,定义了一个以 4B为一个单位的 IP 包的首部长度,一般长度为 20-40 个字节。3)服务类型:共 8 位,高 3 位组成优先级子域,随后4 位组成服务类型子域,最后一位暂未使用。4)数据报总长度:总长度为2B(即 16 位)。定义了以字节为单位的数据报的总长度,即一
11、个数据报总长度为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 位,用于存放
12、检查报头错误的校验码。11) 源、宿主机地址:各32位,分别表示发送和接受数据报的源主机和宿主机的 IP 地址。12) 选项数据域: 0-20B,用于控制和测试。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - 4.1.2 头部数据结构的定义IP 数据包由 IP 头部与 IP 数据构成,需要自行构造的是IP 数据包的头部。在解析 IP 头部的各个字段之前, 首先需要构造 IP 头部的数据结构, 包括 1 字节的版本与头部长度、
13、1 字节的服务类型、 2 字节的总长度、 2 字节的标识符、 2字节的标志位与片偏移、 1 字节的生存周期、 1 字节的协议、 2 字节的头部校验、4 字节的源地址与4 字节的目的地址。这里,不需要构造选项与填充字段。struct IP_HEAD union unsigned char Version;/版本(字节前 4 位)unsigned char HeadLen;/首部长度(字节后4 位); unsigned char ServiceType;/服务类型unsigned short TotalLen;/总长度( 16 位)unsigned short Identifier;/标识符uni
14、on unsigned short Flags;/标志位(字前位)unsigned short FragOffset;/片偏移(后位); unsigned char TimeToLive;/生存时间unsigned char Protocol;/协议unsigned short HeadChecksum;/头部校验和unsigned int SourceAddr;/源 IP 地址unsigned int DestinAddr;/目的 IP 地址; 4.2 程序实现4.2.1 套接字的使用本程序使用套接字socket 编程,将网卡设为能够接受流经网卡的所有类型的数据包。首先,初始化套接字,然后监
15、听数据包,解析数据包。sock=socket(AF_INET,SOCK_RAW,IPPROTO_IP)用来创建套接字,其参数为通信发生的区字段和套接字的类型。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - bind(sock,(PSOCKADDR)&host_addr,sizeof(host_addr)用来把原始socket 绑定到本地网卡。WSAIoctl(sock,_WSAIOW(IOC_VENDOR,1),&dwBuff
16、erInLen,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.password,con.db,33
17、06,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_infos values(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机网络课程设计报告_IP数据包的捕获与分析 2022 计算机网络 课程设计 报告 _IP 数据包 捕获 分析
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内