IP数据报格式

一个IP数据报有两部分组成,而首部由20字节的固定长度组成和0~40字节的可变部分组成,也就是说所有的IP数据报都必须有20字节的固定部分,固定部分后面的一些可选字段其长度是可变的,包含选项的可选长度和填充一共是60字节

IP数据报格式

首部各个字段的含义:
版本:4bits,定义IP协议的版本号,4是IPV4,6是IPV6,通信双方进行通信时,使用IP协议的版本号必须一致
首部长:4bits,定义了IP分组首部长度,以4字节为单位,取值范围是5~15,对应首部长度的最大值是60字节
区分服务:8bits,用来获得更好的服务,只有在使用区分服务时,这个字段才起作用,一般不使用此字段
总长度:16bits,给出了包括首部和数据区在内的IP数据报的总长度,最大长度为2^16=65535字节
标识:16bits,用来产生数据报的标识,当数据报大小超过网络的MTU(最大传输单元1500B)时,分组被分片时,该标识字段的值被复制到所有的分片中,具有相同的标识字段的值,使得分组后的各数据报分片最后能正确的重新组装成原来的数据
标志:3bits,目前只有后两个bit有意义,中间标志位DF(don’t fragment),是否可以对数据报进行分片,1表示不可以;最低标志位MF(more fragment),表示本分片是否是最后一片,1表示是最后一片.
分片偏移:13bits,指出数据报片在原始数据中的相对位置,单位为8个字节,分片的第一个字节的偏移量能够被8整除,即每个分片的长度一定是8个字节的整数倍,和标识标志一起控制数据报的分片和重组

IP数据报格式

IP数据报格式

生存时间:8bits,计数值,定义改分组允许在网络中存在的时间,由发出数据报的源点设置这个字段,分组每经过一个路由器时,路由器就将该字段减一,当该字段为9时,路由器就将该数据包丢弃
协议:8bits,指出此数据报携带的数据是使用何种高层协议.如果封装的是ICMP则值为1,IGMP则值为2,TCP为6,UDP为17,这个字段使目的主机IP层知道,应将数据部分交付给那个上层协议来进行处理

IP数据报格式

首部校验和:16bits,用于保证首部数据的完整性,防止传输过程中发生错误,只检验IP的首部,而不检验数据部分,数据报每经过一个路由器.路由器都要重新计算一下首部校验和字段,为了减少工作量,只对首部进行检验

IP数据报格式
IP数据报格式

源,目的IP地址:各4B,指明数据报发送方和接收方的IP地址,数据报可能经过许多中间路由器,但是这两个字段始终不变
IP分组首部中,除固定部分20B外,还包含最大长度为40B的选项部分,用来支持排错,测量以及安全措施,内容很丰富
全0的"填充"字段将数据报总长度补齐为4字节的整数倍