版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
版本——占4位,指IP协议的版本,目前的IP协议版本号为4(即IPv4)
首部长度——占4位,可表示的最大数值,是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。
区分服务——占8位,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过。1998年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段。
总长度——占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU。
标识(identification)——占16位,它是一个计数器,用来产生数据报的标识。
标志(flag)——占3位,目前只有前两位有意义。标志字段的最低位是MF(More Fragment)。MF= 1表示后面“还有分片”。MF= 0表示最后一个分片。标志字段中间的一位是DF(Don't Fragment)。只有当DF= 0时才允许分片。
片偏移—— 占12位指出:较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位。
生存时间—— 占8位,记为TTL(Time To Live):数据报在网络中可通过的路由器数的最大值。
协议—— 占8位,该字段指出此数据报携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个处理过程。
首部检验和—— 占16位,该字段只检验数据报的首部,不检验数据部分。这里不采用CRC检验码而采用简单的计算方法。
源地址和目的地址都各占4字节。
IP数据报首部的可变部分:IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。