dns 请求 header 中是否允许值“0”作为请求 ID?

Is the value "0" allowed in dns request header as request id?

我看过 rfc 1035 的 "header format" 部分,但它只说 id 可以是一个随机值。现在这个随机值能不能是0,这就是我想知道的。

RFC1035 对事务ID 没有任何限制,只是它是16 位长,所以0 完全可以。无论您发送到那里什么都会被复制到响应中。

为了进一步验证这一点,我检查了下面解析器的源代码,它们似乎都同意 ID 的所有 16 位都是你的。

  • 未绑定:ID 是 0 - 0xffff 之间的任意随机值。
  • ARSoft.Tools.Net: ID 是 0 - 0xffff 之间的任意随机值。
  • Synapse(Delphi 网络库):ID 是 0 - 0xffff 之间的任意随机值。