go 关于使用0.0.0.0/8、::/128和::ffff:0.0.0.0/128作为目标的澄清说明

kx5bkwkv  于 4个月前  发布在  Go
关注(0)|答案(1)|浏览(96)

修复#6290#18806的问题后发现,使用特殊IP地址0.0.0.0/8或::/128作为目标地址尤其在处理数据报传输协议时会让人困惑,如#22811所述。为了避免不必要的困惑,最好澄清并实现一致的API语义(因为一些特殊地址是禁止用作目标IP地址的,所以现有的行为是Go特定的扩展解释)。
仅供参考:

  • 0.0.0.0/8在RFC 1122的第3.2.1.3节中定义为“此网络上的此主机”。出于历史原因,某些IP堆栈实现允许将0.0.0.0/32用作IP数据包的目标地址,但通常不允许将其用作目标地址,
  • ::/128在RFC 4291的第2.5.2节中定义为“未指定的地址”。明确指出未指定的地址不得用作目标地址,我从未见过允许使用未指定地址作为目标地址的IP堆栈实现(我想IPv6协议兼容性工具做得很好)。
e0uiprwp

e0uiprwp1#

https://golang.org/cl/301850提到了这个问题:net: fix BenchmarkWriteToReadFromUDP on Windows

相关问题