日期:2014-05-17  浏览次数:20782 次

IP_datagram 的头的长度
本帖最后由 TomodaMaki 于 2013-01-07 16:04:34 编辑
TCP/IP Illustrated 第一卷第三章第二小节

The header length is the number of 32-bit words in the header, including any options. Since this is a 4-bit field, it limits the header to 60 bytes

有这样一段话。按照这段话我计算下来,应该是 (2^4 * 32 )/8 = 64 bytes.

为什么作者说是 60 bytes?

还有一个问题:接下来作者说:

The normal value of this field (when no options are present) is 5.

正常值是5? 那个上方的图片那个域不是只有4位么?比较无法理解,整个的一段原文在这里:

The header length is the number of 32-bit words in the header, including any options. Since this is a 4-bit field, it limits the header to 60 bytes. In Chapter 8 we'll see that this limitation makes some of the options, such as the record route option, useless today. The normal value of this field (when no options are present) is 5.



图片在楼下补



谢谢大家

------解决方案--------------------
图不是很清楚了么,从上到下7行,通常只用前5行,也就是The normal value of this field (when no options are present) is 5.的意思。
一行32bit,也就是4个字节,4X5 = 20 byte.
他说的header length是指第一行的第二个区域。4个字节代表整个ip头长,最大是1111,就是10进制的15,因为一行是4个字节,所以最多只能有15 * 4 = 60 个字节。
------解决方案--------------------
请注意 bit 和 bytes 的区别
bit 二进制位
bytes 字节
1 bytes =  8 bit