来自其他节点的主线 DHT 意外消息

Mainline DHT unexpected message from other nodes

它看起来像是某种防洪机制的一部分,但我不确定。

已发送查询:

d1:t2:021:y1:q1:q4:ping1:ad2:id20:ê¹L®<꽸.å»…°H$W5ee

十六进制查询:

64313A74323A3032313A79313A71313A71343A70696E67313A6164323A696432303AEAB9034C7FAE3C8DEABDB82EE5BB85B0482457356565

收到的消息:

A[=12=]\u0006Ÿ4\u001f’t[=12=][=12=][=12=][=12=][=12=]\u0010[=12=][=12=]j{[=12=][=12=]

收到的十六进制消息:

4100069F341F927400000000001000006A7B0000

谁能告诉我这条消息是什么?提前谢谢你。

目前所有定义的DHT消息都是bencoded字典,因此应该以d开头,所以这显然不是DHT消息。

但是只要协议可以消除歧义,多个服务就可以在一个 DHT 端口上运行。看起来它可能是 uTP SYN 并且远程对等方只是猜测您的节点也使用 bittorrent-over-uTP。 如果您不打算支持,那么您可以丢弃该数据包并将实际的 DHT 响应视为此时仍未决。

旁注,您的查询不是有效的编码。 BEP 3 指定 dictionary keys must be sorted.