bittorrent - 未知的 BitTorrent 消息

标签 bittorrent

我在尝试与某些 BitTorrent 对等方通信时收到一条奇怪/未知的消息。在这种特殊情况下,我正在下载片段,突然在片段响应前面弹出这条新的/奇怪的消息。该消息很奇怪,因为它似乎不遵循协议(protocol),所有消息都应该是这样的看起来像这样

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

长度前缀为 4 个字节,消息 ID 为 1 个字节,有效负载。我添加了一个捕获来展示我的意思,在捕获的第 509 行,您将 看到一个片段请求,在第 510 行您将看到响应的开头。

响应的前 4 个字节是 00 00 00 00,即 0 长度消息(这导致了我的问题),接下来的 4 个字节是消息的实际长度,即 30。对片段请求的实际响应从第 513 行开始,所以我得到了我所要求的部分,但这个新的/奇怪的消息让我感到困惑。我确信我可以找到解决方法,但我真的很想了解这意味着什么。

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

这是 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字节保持事件消息

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消息数据(bencoded)

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

ut_pex消息数据(添加空格进行编码)

关于bittorrent - 未知的 BitTorrent 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44555498/

相关文章:

protocols - 种子是如何工作的?

c# - 检查 URL 是否为 C# .NET 中的 torrent

bittorrent - 如何从 DHT 中提取 torrent 文件?

sockets - 在我有兴趣接受之前,我可以将套接字留在 SYN_RECV 中吗?

c - 这个 BitTorrent 客户端的片段验证过程中的错误在哪里?

bittorrent - DHT中announce_peer的token

python - 没有从 bittorrent 对等握手中接收到任何数据

p2p - 现有 DHT 的 Hello World

bittorrent - 解析来自 Tracker 服务器的 Annouce 响应中的 Peers IP 地址(bitTorrent)

python - 从 torrent 文件中提取 SHA1 哈希