2 baidu 27330673 baidu_27330673 于 2016.05.02 13:24 提问

关于tcp首部数据偏移的问题

书上说“由于4位二进制数能够表示的最大十进制数是15,因此数据偏移的最大值是60字节,这也是TCP首部的最大长度(即选项长度不超过40字节)”,请问60是怎么来的?有人说15x(32/8)=60,为什么要乘以4呢?那个因此到底是什么意思?

1个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.05.02 13:35
已采纳

占4比特,表示数据开始的地方离TCP段的起始处有多远。实际上就是TCP段首部的长度。由于首部长度不固定,因此数据偏移字段是必要的。
数据偏移以32位为长度单位,也就是4个字节,因此TCP首部的最大长度是60个字节。即偏移最大为15个长度单位=15*32位=15*4字节。
参考文章:http://www.cnblogs.com/zhuyf87/archive/2012/12/29/2838937.html

wojiushiwo945you
wojiushiwo945you 回复baidu_27330673: 是啊。偏移只是个数值,它是有单位的。TCP协议是以32比特为单位的。
一年多之前 回复
baidu_27330673
baidu_27330673 所以才要乘以32,谢了!
一年多之前 回复
baidu_27330673
baidu_27330673 哦哦哦,我明白了,因为它的单位就是4个字节是吧?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!