2018-04-04,个人笔记
-
IPv4:
- Header's length,通常不带任何选项字段,值为20
- Datagram's length,数据包总长度(首部+数据)。
-
IPv6:
- 只有一个 有效载荷长度(payload length),其首部无选项字段,是40字节定长的。
-
TCP:
-
Header's length,通常不带任何选项字段,值为20
-
不包含数据报总长度:实际是使用 ip 包信息计算出来。(实际就是ip包的数据长度)
-
-
UDP:
-
只有一个长度字段:指UDP包的总长度(实际上该数据是冗余的,它也同 tcp 的第二点一样,可用 ip 包信息推算出来)因为这个字段为16bit,最大数值为65535,因此这也是 UDP 数据报的最大长度。
-
但是 udp 的首部长度是固定的,因此其数据长度=包总长度-8字节
-
-
UDP为何要携带一个冗余字段?
协议首部都是以 4 字节为单位对齐的,这是为了方便处理,就像计算机内部以 byte 为单位对齐一样。 这导致udp首部出现2byte的空白,那就随便带点有用的信息了。。(合理的解释之一)