理论上分析IP报文的结构各字段的意义-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

理论上分析IP报文的结构各字段的意义

简介:

如下图4.17所示为IP报文的结构,表示IP报文的组成部分。包含20字节IP报头、选项(根据实际应用而定)字段、传递数据(用户数据)组成。其中理解20字节的IP报头部分各个字段的具体意义是理解IP报文的关键。其中包括版本、报头长度、服务类型、总长度、标识符、标志、片偏移(传输时是否发生数据分段)、生存时间、协议、首部校验和、源IP地址、目标IP地址,通过上述字段可以保证数据能够正确的从信源传递到信宿。下面将开始对IP报文的每个字段作述描:

010504704.png

n版本(Version):该字段的长度为4比特,表示正在使用IP协议的版本。该字段的值一般为4或者6,如果该值为4表示正在使用IP的4号版本,如果该值为6表示正在使用下一代的IP地址(IP的6号版本,简称IPv6)。

n报头长度(Header Length):长度为4比特,描述IP报头的长度。如果不携带“选项”字段,那么值为20字节。如果包含了“选项”字段,那么报头长度最大可为60字节(“选项”字段最大值为40字节)。换而言之,IP报头长度的值的变化范围为20~60字节。

spacer.gif注意:IP报头长度(Header Length)并不包括任何数据负载的大小。


n服务类型(Typeof Service):长度为8比特,用于对特殊报文的处理。该字段可以配置IP报文的优先级(Precedence),其意义在于当网络发生拥塞时,可让具备高优先级的IP报文优先被转发,类似于在拥塞的道路上,保证如救护车一类车辆优先通行的实例。TOS字段用于配置传输服务类型,如吞吐量、时延、可靠性、费用等类型。


注意:一般面向IP流量工程、服务质量保证(QOS)项目的工程师将大量配置和使用该字段,这将在思科CCNP认证的ONT网络优化课程中进行重点学习。


n总长度(Total Length):该字段为16比特,指示整个IP报文所能携带的最大字节数,包括“IP报头”和“传递数据(负载)”长度的总和。而“总长度(Total Length)”字段,占16比特位,它所对应的二进制最大数为16个“1”,对应的十进制数就为65536,而计算机计数都是从0开始,所以一个IP报文的最大长度为65535个字节。

spacer.gif注意:IP报文通常也叫IP数据包,工作在“网络层”,由IP报头和传递数据组成,而一个IP数据包最大不能超过65535字节。


n标识符(Identifier:该字段的长度为16比特,表示为某一种IP数据包分配一个唯一的数字标识,该标识符的作用就是保证数据被分段后,区别于网络中其它的IP数据分段,然后可以被正确的重新组合,因为在某一个IP数据被分段的同时,可能存在多个不同IP数据的分段。

spacer.gif注意:标识符(Identifier)类似于将标记为红色的物品混入其他不同颜色的物品中,而此时将红色的物品分离出来就是一件很容易的事情。标识符就有这样的作用。


n标志(Flags):该字段的长度为3比特,该字段的作用主要是配合IP报文中的“标识符(Identifier)”字段和“片偏移(Fragment Offset)”字段来管理IP报文的分段。它由三个控制标志组成,三个标志中,第一位(也是第一个标志)一般不使用,作为预留。第二位(也是第二个标志)为DF位,如果DF值为1,表示不能对该IP数据包执行分段处理。第三位(也是第三个标志)为MF位,表示对于被分段的IP数据包,除了最后一个数据分段的MF值为0之外,其它的所有数据分段的MF值都为1,换而言之,MF=1表示该IP数据分段的后面还有紧跟的数据分段,直到MF值为0为止。

n片偏移(Fragment Offset):该字段长度为13比特,表示分段数据起始点相对于报头起始点的偏移位置,其目的在于让目标接受方可按照分段顺序重新组织报文,因为被分段的数据可能因为网络环境等客观因素不能按分段时的顺序到达目标接受方。

spacer.gif注意:片偏移(Fragment Offset)字段类似于两个物体之间规定相隔距离为30米,那么不管把这两个物体移动到什么位置,两个物体之间的距离始终为30米。同理,偏移位置就是两个分段之间的相对位置。


n生存时间(Time to Live):该字段长度为8比特,表明当前报文能在网络上的最大存活时间。意思就是指数据包每经过一个路由器(网关),TTL值自动减1,当为0时,丢弃该报文。如下图4.18所示,表示主机A发送数据的TTL值为64,当数据经过路由器达到主机B后,TTL值减少1,其值为63。



010805482.png

n协议(Protocol):该字段长度为8比特,用于标识OSI上层所携带的具体协议,通常是一个传输层协议或者网络层协议,如:UDP、TCP、ICMP等。通常该协议值使用十六进制表示,UDP、TCP、ICMP分别对应的十六进制值为:11、06、01。

n首部校验和(Header Checksum):该字段长度为16比特,该字段只在IP报文的首部上进行计算,提供一种基于传输的基本差错控制。具体做法是把IP报文的首部字节分为两个字,一个字为两个字节,然后进行相加而得到,转发IP报文的所有中间设备都要进行该值的计算,如果计算出来的两个校验和不同,就认为数据在传输的过程中被损坏。

n源IP地址(Source  Addresses):该字段长度为32比特,用于记录发送数据源主机的IP地址。

n目标IP地址(Destination Addresses):该字段长度为32比特,用于记录目标主机的IP地址。




本文转自 kingsir827 51CTO博客,原文链接:http://blog.51cto.com/7658423/1264817,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: