计算机网络课程设计_IP数据包的捕获与分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CENTRAL SOUTH UNIVERSITY
计算机网络课程设计报告
目录
第一章课程设计的目的与要求 ........................... 错误!未定义书签。
1.1 课程设计的目的 .................................... 错误!未定义书签。
1.2 课程设计的要求 (1)
第二章课程设计的内容 (3)
2.1 课程设计的内容 (3)
2.2 内容的要求 (3)
第三章程序分析与设计 (4)
3.1 IP数据包 (4)
3.1.1 IP数据包的格式说明 (4)
3.1.2 IP数据包的格式 (4)
3.1.3 IP数据包的C++定义 (5)
3.1.4 IP数据包的解析 (6)
3.2 套接字 (7)
3.1.4 套接字的使用 (7)
3.1.4 使用原始套接字 (7)
3.3 接受数据包 (7)
第四章实验结果 (10)
4.1 程序截图 (10)
第五章总结 (11)
5.1 实验心得 (11)
第六章附录 (12)
6.1 源代码 (12)
第一章课程设计的目的与要求
1.1 课程设计的目的
计算机网络课程设计的目的,是为了让学生更深入地掌握计算机网络的核心内容,实现理论与实践相结合。让学生用具体的实践成果,体现对理论知识的掌握程度。有利于学生提高计算机网络的实践能力,加深对计算机网络理论知识的理解。
1.2 课程设计的要求
(1)编写程序,实现系统的基本功能,鼓励自行增加新功能;
(2)要有用户界面:要求至少采用文本菜单界面;鼓励采用图形菜单界面;
(3)写课程设计报告,内容包括:
●封面(参见附录I)
●需求分析:以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?给出
功能模块图和流程图。同时明确规定:输入的形式和输出值的范围;输出的形式;
程序所能够达到的功能;测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。
●概要设计:包括程序设计组成框图,程序中使用的存储结构设计说明(如果指定
存储结构请写出该存储结构的定义)。
●详细设计:包括模块功能说明(如函数功能、入口及出口参数说明,函数调用关
系描述等),每个模块的算法设计说明(可以是描述算法的流程图)。其中源程序要按照写程序的规则来编写,结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
●运行结果:包括典型的界面、输入和输出数据等;
●总结:包括课程设计中遇到的问题,解决问题的过程及体会、收获、对课程设计
的认识与思考等。
●附录:包括主要程序清单,要有适当的注释,使程序容易阅读。
(4)课程设计报告书写规范参见附录II,不按照规范书写的,成绩不能评为“优”或“良”。
(5)无论在校外、校内,都要严格遵守学校和所在单位的学习和劳动纪律、
1
规章制度,学生有事离校必须请假。课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。
2.1 课程设计的内容
本次实验的要求在网络环境,使用VC++编写程序实现捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。
2.2 内容的要求
(1)以命令行形式运行(应如程序名+参数名):ipparse logfile,其中ipparse 是程序名,而logfile为该程序所带参数,其代表记录结果的日志文件。
(2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。
(3)当程序接收到键盘输入Ctrl+C时退出。
3.1 IP数据包
3.1.1 IP数据包的格式说明
IP数据包格式包含了标头固定部分,标头可变部分和数据区三部分。IP数据报标头部分固定为20个字节,其中包含了12个参数域,各参数域隐含着网间协议的传输机制。IP具体的标头格式如图1所示。
各参数域的具体含义如下:
1)版本号:长度4位,表示所使用的IP协议的版本。IPv4版本号字段值为4;IPV6
版本号字段号的值为6.
2)标头长:长度4位,定义了一个以4B为一个单位的IP包的报头长度
3)服务类型:共8位,高3位组成优先级子域,随后4位组成服务类型子域。
4)数据报总长度:总长度为2B(即6位)。定义了以字节为单位的数据报的总长度。
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)源、宿主机地址:共32位,分别表示发送和接受数据报的源主机和宿主机的IP
地址。
选项数据域:0-40B,用于控制和测试
3.1.2 IP数据包的格式