未知的 Bittorrent 消息

Unknown Bittorrent Message

我在尝试与一些 bittorrent 对等点通信时收到 odd/unknown 消息。在这种特殊情况下,我正在下载片段,突然这条 new/odd 消息弹出在片段前面 response.The 消息很奇怪,因为它似乎没有遵循协议,所有消息都应该看起来像这样

'<length prefix><message ID><payload>'

长度前缀为 4 个字节,消息 ID 为 1 个字节和有效负载。我包括一个捕获以显示我的意思,在捕获的第 509 行你会 看到对一块的请求,在第 510 行,您将看到响应的开头。

响应的前 4 个字节是 00 00 00 00,即 0 长度的消息(这是我的问题),接下来的 4 个字节是消息的实际长度,即 30。实际响应piece 请求从第 513 行开始,所以我得到了我请求的 piece,但是这个 new/odd 消息让我很困惑。我确定我可以找到解决方法,但我真的很想了解这意味着什么。

此外,我不知道消息的实际含义,也无法在任何地方找到任何相关信息。

这里是 Wireshark 抓包。

https://1drv.ms/u/s!Agj06pa-wu0tnFqsYn_KnHmVz3x2

来自数据包 510 的数据:

0000   00 00 00 00 00 00 00 1e 14 01 64 35 3a 61 64 64  ..........d5:add
0010   65 64 36 3a 63 f2 7a 48 17 f4 37 3a 64 72 6f 70  ed6:c.zH..7:drop
0020   70 65 64 30 3a 65                                ped0:e

00 00 00 00 4 字节 keep-alive 消息

00 00 00 1e 消息长度 30 字节
14 消息类型 扩展 消息 (BEP10)
01 扩展消息 ID = 1 由先前的扩展握手指定:ut_pex

64 35 3a 61 64 64 65 64 36 3a 63 f2 7a 48 17 f4 37 3a 64 72 6f 70 70 65 64 30 3a 65 d5:added6:c.zH..7:dropped0:e
ut_pex 消息数据(编码)

d
 5:added
  6:c.zH..
 7:dropped
  0:
e

ut_pex 消息数据(加白 space 编码)

The first 4 bytes of the response are 00 00 00 00, ie 0 length message (Which is causing me issues)

bittorrent spec

Messages of length zero are keepalives, and ignored.