为什么 IPv4 头中有一个总长度字段?

qdi*_*dii 0 networking ip ipv4

IPv4 数据报的报头具有一个称为总长度编码的 16 位字段。因为已经有关于数据报头长度的信息,所以总长度似乎是多余的:它可以通过从链路层传递的数据的总长度中减去头长度来计算。

这个领域真的有必要吗?

Cia*_*ian 5

简短的回答是肯定的 - IPv4 规范说它是必要的,至少出于兼容性目的,它确实如此。

长的答案是,如果数据报小于特定大小,某些第 2 层传输将填充数据报。发生这种情况时,IP 长度标头很重要,因此可以丢弃第二层填充。