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