IPv4报文格式
IPv4报文格式如图1-3所示。
一个IPv4数据报文由首部和数据两部分组成。首部的前一部分是固定长度,共20个字节,是所有IPv4数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
主要字段的解释如表1-4所示。
字段 |
长度 |
含义 |
---|---|---|
版本 |
4比特 |
IP协议的版本号,分为IPv4和IPv6协议。 |
首部长度 |
4比特 |
IPv4的首部长度。 |
区分服务 |
8比特 |
用来获得更好的服务。只有在使用区分服务时,这个字段才起作用。 |
总长度 |
16比特 |
指首部和数据之和的长度。 |
标识 |
16比特 |
IPv4软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。 |
标志 |
3比特 |
目前只有两位有意义。最低位为1表示后面“还有分片”的数据报,为0表示这已经是最后一个数据片;中间一位为1表示“不能分片”,为0才允许分片。 |
片位移 |
13比特 |
指出较长的分组在分片后,该片在原分组中的相对位置。 |
生存时间TTL(Time To Live) |
8比特 |
表示数据报在网络中的寿命,功能是“跳数限制”。 |
协议 |
8比特 |
指出此数据报携带的数据是使用何种协议。 |
首部检验和 |
16比特 |
数据报每经过一个设备,设备都要重新计算一下首部检验和,若首部未发生变化,则此结果必为0,于是就保留这个数据报。这个字段只检验数据报的首部,但不包括数据部分。 |
源地址 |
32比特 |
报文发送方的IPv4地址。 |
目的地址 |
32比特 |
报文接收方的IPv4地址。 |
选项字段 |
0~40字节(长度可变) |
用来支持排错、测量以及安全等措施。在必要的时候插入值为0的填充字节。 |
数据部分 |
可变 |
用来填充报文。 |