深度分析IP报文格式字段含义

今天数据中心农场分享一下IP报文格式字段具体含义的分析,在TCP/IP网络中,IP报文是最基础的报文,几乎所有协议报文都是承载在IP报文之上。所以学习网络之前必须掌握IP报文格式中各个字段的具体含义,只有基础扎实了,学习起来才不费劲。下面就开始分析IP报文格式。
下图是整个IP报文的完整格式,每个字段的长度都定义得很清楚。
第一部分:IHL:长度为4 BIT
IHL是IP头部长度字段,4个字节为单位。最小的头部长度为5.所以最小头部长度为20
第二部分:TYPE OF SERVICE 长度为 8 BIT
服务类型提供了QOS的一些参数。当数据在一些特殊的网络上传输时,这些参数被用来引导选择报务类型。网络为一些高优先的队列提供优先级服务。主要的选择是在低延时,高可靠性,高吞吐率三种方式之间权衡。
第三部分:TOTALENG长度为 16 BIT
总长度是指整个数据的长度,以字节为单位。包括头和数据。允许达到的最大长度可以达到65535字节。所以PC必须准备接收的数据等于576字节。
这个576是这样被选择出来的:数据本身再加上头部信息所需的长度,在这样的长度下被传输,并且不会出现拥塞。最大不倒致拥塞的数据大小是512再加上头长度64就等于576.
第四部分:IDENTIFICATION长度为 16BIT
不同数据断需组合在一起就需要用到这个标识。
字段长度为16位,通常与标记字段和分片偏移字段一起用于IP报文的分片。当原始报文大小超过了MTU,那么就必须将原始数据进行分片。每个被分片的报文大小不得超过MTU,而这个字段还将在同一原始文件被分片的报文上打上相同的标记,以便接收设备可以识别出属于同一个报文的分片。
第五部分:FLAGS 长度为3BIT
此字段为分片标志位,定义是需要分片还是不需要分片,从上图可知DF位为0时表示分片,为1时表示不分片。MF位为0时表示最后一片,为1时表示还有更多片。
第六部分:FRAGMENT OFFSET 长度为 13BIT
这个标识是数据在哪开始分片。分片偏移量是以8个字节为一个单位。第一个分片偏移量为0.
第七部分:TIME TO LIVE 长度为 8BIT
这个字段指出了数据允许在网络存活的最长时间。如果这个字段值为0,那么这个数据必须被丢弃。这个时间计算的单位是秒,数据在一跳之间的传输时间大概为1秒,所以这个TTL一跳就用1秒来计算,多少跳就多少秒。
第八部分:Protocal长度为 8BIT
这个字段指出了下一级协议。这些已经被分配好的值用来标识不同的协议。
第九部分:HEADE CHECKSUM长度为 16BIT
效验和只有头部中用到,当头部的其他一些字段有变化,这个效验和字段就需要重新计算。
这个效验和计算方法是:
IP检验和的计算方法:将IP数据报首部看成为16bit字的序列。先将检验和字段置零。将所有的16bit字相加后,将和的二进制反码写入检验和字段。收到数据报后,将首部的16bit字的序列再相加一次,若首部未发生任何变化,则和必为全1。否则即认为出差错,并将此数据报丢弃。
第十部分:OPTIONS 长度变化
这个字段是一个变长字段,并且可选,可选项被添加到报头中,包括圆点长生的信息和其他路由器假如的信息,这个字段主要用于测试。常用的可选项如下:
Loose Srouce Routing ――它给出了一连串路由器接口的IP地址序列。报文必须沿IP地址序列传送,但是允许在相继的两个的只见跳过多个路由器。
Sttict Source Routing――它给出了一系列路由器接口的IP地址的序列,不同于loose Source Routing ,报文必须按照序列转发,否则就会出错。
Record Route――给离开路由器的报文记录出口地址,以便保留报文经过的所有的路由器的记录。
Timestamp―― 除了每个路由器还会记录一个时间戳之外,时间戳现象十分类似于记录路由选项。
填充:
该字段通过在选择字段后面添加0来补足32位,保证报文长度是32比特的倍数。
以上内容由数据中心农场分享,如有转载请说明出处。

weinxin
DC Farm小程序二维码
扫一扫添加博客小程序
Jim

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: