- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
优先级DTRC
优先级
D
T
R
C
0
解析IP数据包
任务目的:
设计一个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从 而IP层的工作原理有更好的理解和认识。
任务要求:
本实验的目标是捕获网络中的IP数据包,解析数据包的内容,见个结果显示在 标准输出上,并同时写入日志文件。
程序的具体要求如下:
以命令行形式运行:ipparselogfile,其中ipparse是程序名,而logfile则代 表记录结果的日志文件。
在标准输出、和日志文件中写入捕获的IP包的版本、头长度、服务类型 、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上 层协议类型、头校验和、源IP地址和目的IP地址等内容。
?
当程序接收到键盘输入Ctrl+C时退出。
设计相关知识:
互联网络层是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
位数(b7b6b5)意义
位数(b7b6b5)
意义
1111
1000
0100
0001
0000
安全级最高 延迟最小 吞吐量最大 金钱成本最小 普通服务
图2 服务类型字段结构
优先级共有8种,优先级越高表明数据包越重要.表1中列出了各种优先级所代表的意义.
表一 优先子域的说明
111
110
101
100
网络控制
网络间控制 重要(CRITIC/ECP) 即时,优先
011
010
001
000
即时
立刻
优先
普通
在4位服务类型子域中b4,b3,b2,b1分别表示D(延迟),T(吞吐量),R(可靠性)与C(成本).表2 列出了服务器类型自域的构成.
位数( b4b3b2b1)
意义
总长度字段为2B,它定义了以字节为单位的数据包的总长度.IP数据包的最大长度为655 35B.
标识字段的长度为16位,用于识别IP数据包的编号.每批数据都要有一个标识值,用于让 目的主机判断新来的数据属于哪个分组.
报头中的标志字段如图7-3所示.标志字段共3位,最高位是0.禁止分片标志DF(do not fragment)字段的值若为1,表示不能对数据包分片;若DF值为0,则表明可以分片.分片标志MF(
more
fragment)的值为1,表示接收到的不是最后一个分片;若MF值为0,表示接收到的是最后一个分 片.
片偏移字段共13位,说明分片在整个数据包中的相对位置.片偏移值是以8B为单位来记 数的,因此选择的分片长度应该是8B的整数倍.
生存时间(TTL)字段为8位,用来设置数据包在互联网络的传输过程的寿命,通常是用一 个数据包可以经过的最多的路由器跳步数来限定的.
协议字段为8位,表示使用此IP数据包的高层协议类型,常用的协议号如表二所示.
序号
协议名称
序号
协议名称
1
2
4
6
8
ICMP
IGMP
IP inIP
TCP
EGP
17
41
46
89
UDP
IPV6
RSVP
OSPFA
表二 典型的协议号
构造程序运行环
构造程序运行环境,生成输出文件
N
Ctrl+C
头校验和字段为16位,用于存放检查报头错误的校验码。检验的范围是整个IP包的报头 。校验和按如下方法计算:
将头校验和的字段置为0。
将报头部分的所有数据以16位为单位进行累加,累加方式是求异或。
将累加的结果取反码,就是头校验和。
当收到一个IP包时,要检查报头是否出错,就把报头中的所有数据以16位为单位进行累加 ,若累加的结果为0,则报文没有出错。
地址字段包括源地址和目的地址。源地址和目的地址的长度
文档评论(0)