TCP4位首部长度
1.解析
这个首部长度其实是由固定字段和可选字段所构成的,固定字段指的是包含源端口、目的端口、序位号等。就等于是这个长度已经是不能发生改变的了,20个字节。而可选择字段则长度不固定,可选字段最多 40 字节。因此综上所述,整个 TCP 首部的总长度是 “20 字节 + 可选字段长度”,范围是 20~60 字节
2.可选字段
这就好像一把尺子,尺子上的刻度只能标 0 到 15(因为只有 4 个刻度位,类似 4bit 的范围)。每个刻度代表的实际长度不是 1 毫米,而是 “4 毫米”(这就是 “单位是 4 字节” 的意思)。
为什么是4,而不是其他数字,TCP在选择字节的时候,要顾及它固定字段的长度(20字节),换句话说,其实是固定长度决定了单位的大小。那是因为如果是1的话,那么15*1 = 15,不满足固定长度;2的话,2*15 = 30,虽然满足,但是不够量最大长度60;8的话,8*15 = 120,虽然都包含了,但如果要精确到20,那么就麻烦了 20/8 = 2.5。所以,4是最符合的。
