提问人:John Smith 提问时间:9/4/2023 更新时间:9/4/2023 访问量:101
DHCP 选项是否排序?
Are DHCP options ordered?
问:
我正在一个小型设备上实现 DHCP,如果我假设消息类型 DHCP 选项始终是第一个选项,并且响应参数列表与请求参数列表的顺序相同,我可以进行一些解析优化。我实际上找不到这是否是标准要求的。有谁知道这是否真的是必需的?
答:
3赞
Moshe Katz
9/4/2023
#1
RFC 2131 § 4.1 涉及 DHCP 消息的构造。关于期权顺序的唯一限制是:
...最后一个选项必须始终是“结束”选项。
...
...“sname”和“file”字段中的选项(如果按照“options 重载”选项的指示使用)必须以字段的第一个八位字节开头,必须以“end”选项结尾,并且必须后跟“pad”选项以填充字段的其余部分。...
不要求其他选项按任何特定顺序列出。
此外,RFC 3046 § 2.0 讨论了“子选项”的实现,并明确指出:
子选项不需要按子选项代码顺序显示。
但是,RFC 2132 § 9.8 描述了“参数请求列表”DHCP 选项,其中说:
客户可以按偏好顺序列出选项。DHCP 服务器不需要按请求的顺序返回选项,但必须尝试按客户端请求的顺序插入请求的选项。
“必须尝试”意味着有时它不会发生(例如,如果响应不适合可用空间而不重新排列),因此,如果您希望与可能发送大量(或大量)选项的 DHCP 服务器一起使用,则可能无法依赖它。
评论