IP头中的32位边界

时间:2013-05-17 13:39:12

标签: networking network-programming

我正在阅读Richard Stevens所说的TCP中的IP头。如下所述

  

在IP标题选项字段中存在。选项字段始终以32位边界结束。如有必要,添加值为0的填充字节。这确保了IP报头始终是32位的倍数(如报头长度字段所需)。

我很难理解上述陈述。

作者对32位边界的意思是什么? 作者对IP头的含义总是32位的倍数?

请用简单的例子来解释。

由于

2 个答案:

答案 0 :(得分:3)

使用Picture from nmap.org作为参考。

TCP标头中的一个字段IHL (Header Length)告诉接收者有多少32位块构成标题。
由于末尾的可变长度选项字段,可能有一个未完全填充的32位块 为确保没有数据被意外读取为标题信息,标题必须以32位多重结束,这是使用填充完成的。

答案 1 :(得分:2)

请参阅diagram in the Wikipedia entry

IP标头以称为“选项”的东西结束,这是一个可变长度的实体。它由一系列选项组成,编码为选项列表。每个选项只需要至少16位,因此可以通过包含奇数个这样的选项来“取消对齐”标题。因此,需要语言来填充。