概要
教材中TCP数据偏移
数据偏移 占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。这个字段实际上是指出TCP报文段的首部长度。由于首部中还有长度不确定的选项字段,因此数据偏移字段是必要的。但应注意,数据偏移的单位是32位字(即以4字节长的字为计算单位)。由于4位二进制数能够表示的最大十进制数字是15,因此数据偏移的最大值是60字节,这也是TCP首部的最大长度(即选项长度不能超过40字节)
我的理解
之所计算最大值为60字节,是因为文中提到“数据偏移的单位为32位”,即是说每一个可选项的长度为32位。即4个字节,不足这个长度的要做填充。前文也提到过填充的长度为4n(n为整数)。
加个图片方便理解下: 就是选项部分必须整行(看图理解哈)加,这个行的长度就是4n,要加选项只能一行一行的加就是还能往下加10行 4*10 = 40,加上固定的20,因此数据偏移的最大值是60字
小结
这里说的32位(我说的图片中的一行)为一个单位,所以数据偏移4位(4位二进制数能够表示的最大十进制数字是15)能表示的最大字节数就是 15 * 4 = 60 (如图中所示15行)