
版本:version
长4位
Pv4头部为0100,IPv6头部为0110
首部长度:HeaderLength(IHL)
长4位
乘以4得出当前包大小,例如头部长度值为0101,将该值转换成十进制得到结果5,再乘以4后得出当前头部长度为20字节
Tos/DSCP
ToS:服务类型(Type ofService)
由RFC 791/RFC 1349定义
前3位为优先级,接着4位,分别为relay、throughout、reliability、cost,最后一位保留
DSCP:差分服务代码点(Different Service Code Point)
由RFC 2474定义
前6位为DSCP优先级,后2位保留定义了CS、AF、EF、BE等概念
总长度:Total Length
长16位
描述了IP数据包头部+后续数据的总长度
标识:ldentification
长16位
数据包分片和重组程序通过该字段将数据包分片重新组装,以确保不同数据包的片段不混在一起。
标志:Flags
长3位,依次分别为:保留位(未使用)、DF位、MF位
DF位:当该位置1时,表示禁止对本数据包进行分片操作
MF位:当该位置1时,表示该数据包片段并不是数据包末尾
段偏移:Fragment Offset
长13位
该字段告诉接收者,段在原始数据报中的位置
生存周期:Time To Live (TTL)
长8位
数据包每经过一个三层设备转发就将TTL减1,当TTL减至0时,该数据包将被销毁
不同操作系统的默认TTL值不同
协议:Protocol
长8位
提前预告上层数据使用了哪种协议
首部校验和:HeaderChecksum
长16位
对IPv4头部进行校验
如出现错误则丢弃数据包
如果一个IP数据包被分片了,那么被分片的几个报文中,哪几个字段是不同的?
MF标志不同,被分片的数据包最后一片MF为0,其余分片MF为1
偏移量不同,每个分片的偏移量表示自己处在整体包的哪一段位置,因此分片后的偏移量不同
校验和不同,每个分片由于内容不同,因此校验和不同