计算机网络课程设计_P数据包解析实验报告
计算机网络工程课程设计报告
题 目: 解析IP数据包
学生姓名: 李明
学 号: 201017010218
专业班级: 计科10102班
同组姓名: 张禄、陈子英、李迅
指导教师: 李若兰
设计时间: 2013年下学期第16周
指导老师意见:
评定成绩: 签名:
日期: 年 月 日 目录
目录2
1、课程设计目的2
2、课程设计要求2
3、相关知识2
4、课程设计分析6
4.1 网卡设置6
4.2 使用套接字7
4.2.2 接收数据包7
4.3 定义IP头部的数据结构8
4.4 IP包的解析9
4.5 协议的定义9
4.6捕获处理9
5、运行结果10
6、总结11
7、课程设计参考资料11
8、源程序代码11
1、课程设计目的
本课程设计的目的就是设计一个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和认识。
2、课程设计要求
本设计的目标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。程序的具体要求如下: 1)以命令行形式运行:ipparse logfile,其中ipparse是程序名, 而logfile则代表记录结果的日志文件。 2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。 3)当程序接收到键盘输入Ctrl+C时退出。
3、相关知识
互联网络层是TCP/IP协议参考模型中的关键部分.IP协议把传输层送来的消息组装成IP数据包,并把IP数据包传送给数据链层.IP协议在TCP/IP协议族中处于核心地位,IP协议制定了统一的IP数据包格式,以消除个通信子网中的差异,从而为信息发送方和接收方提供了透明的传输通道.编制本程序前,首先要对IP包的格式有一定了解,图1给出了IP协议的数据包格式.
IP数据包的第一个字段是版本字段,其度是4位,表示所使用的IP协议的版本.目前的版本是IPV4,版本字段的值是4,下一代版本是IPV6,版本字段值是6.本程序主要针对版本是IPV4的数据包的解析.
报头标长字段为4位,它定义了以4B为一个单位的IP包的报文长度.报头中除了选项字段和填充域字段外,其他各字段是定长的.因此,IP数据包的头长度在20—40B之间,是可变的.
0 4 8 16 19 24 31
版本报头标长服务类型总长度标识标志片偏移生存时间协议头校验和源IP地址目的IP地址选项填充域数据部分图1 IP数据包的格式
服务类型字段共8位,用于指示路由器如何处理该数据包.该字段长度由4位服务类型(TOS)子域和3位优先级子域组成,1位为保留位,该字段结构如图2所示.
B7 b6 b5 b4 b3 b2 b1 b0
优先级DTRC0图2 服务类型字段结构
优先级共有8种,优先级越高表明数据包越重要.表1中列出了各种优先级所代表的意义.
表一 优先子域的说明
位数(b7b6b5) 意义111 网络控制
110 网络间控制
重要(CRITIC/ECP)
100 即时,优先
011 即时
010