为什么在 bittorrent dht 查询响应中有这个 "ip" 字段?

Why there is this "ip" field in a bittorrent dht querying response?

我正在调试 this dht implementation when I came across this query response(KRPC 类型 r)。 BEP5 中没有关于“ip”字段的文档,那么为什么会这样呢?为什么有时响应有“ip”字段而其他时候没有“ip”字段而是有“v”字段(已记录)。以我的理解,不应该有这样的“ip”字段。我在哪里可以找到有关它的文档?

编辑:ip 字段有我的 public IP 和端口。

支持 BEP42 的节点添加该字段以允许其他节点了解自己的 public 地址,以防它们位于 NAT 后面。

此外,由于 bencoding 是一种 non-fixed 格式(与某些打包的二进制消息不同),因此不应期望只有核心规范指定的字段存在,这确保了 forward-compatibility .