首先说明一下,这里并不解释整个IPv4数据报各个字段的含义,仅仅针对IHL字段作解释。
我们先看下IPv4数据报格式
对于IHL字段,
《TCP/IP详解 卷一:协议》这么解释:
IPv4数据报。头部大小可变,4位的IHL字段被限制为15个32位字(60)字节。
这种翻译让人一头雾水。我们看下英文原文:
The IPv4 datagram. The header is of variable size, limited to fifteen 32-bit words (60 bytes) by the 4-bit IHL field.
同样也一头雾水,但能看出来,中文翻译有问题,有点词不达意。
我们再看下RFC0791文档(RFC 791 - Internet Protocol)的说法:
Internet Header Length is the length of the internet header in 32 bit words, and thus points to the beginning of the data. Note that the minimum value for a correct header is 5.
好了,现在该明白了。
IHL:Internet Header Length,互联网标头长度。
IHL字段占4位,取值是可变的,范围是[5, 15],这个字段表示IPv4数据报头部长度。
最小值为十进制的5,最大值为十进制15。
取值为5,表示5*32位=160位=20字节;
取值为15,表示15*32位=480位=60字节;