了解 Bittorrent Tracker 请求

Rat*_*lle 1 bittorrent

我正在阅读 Bittorrent 请求参数,需要发送该参数来在此处公布URL

问题一:

  • 左参数:

左:该客户端仍需要下载的字节数(以十进制 ASCII 表示)。说明:下载 100% 完成并获取 torrent 中包含的所有文件所需的字节数。

BEEP-3 也表示

该对等点仍需要下载的字节数,以十进制 ascii 编码。请注意,这不能根据下载的数据和文件长度来计算,因为它可能是简历,并且某些下载的数据有可能未通过完整性检查,必须重新下载。

现在,如果我开始下载种子或任何时候我应该给左边什么可能的值。

问题2:

在阅读规范时,我发现客户端应该多久查询一次公告才能获取对等点的更新列表。

对此有何评论

我在跟踪器响应中interval找到了这个答案。min interval

Enc*_*mbe 5

答案1:

您在公告中发送的 left= 值是需要下载以完全获取 torrent 中的所有部分所需的最小字节数,无论您是否打算下载其中的所有文件。


因此,如果您开始从头开始下载 torrent,其中所有文件的
总大小为:1 234 567 890 字节
您发送第一个公告left=1234567890downloaded=0uploaded=0

即使只想从该 torrent下载567 890 123 字节
: 您仍然发送第一个公告left=1234567890downloaded=0uploaded=0


然后,当第二次发布时,您已经成功下载了234 524 288 字节,没有任何哈希失败,并上传了87 654 400 字节给其他对等点;
您发送第二个公告
left=1000043602downloaded=234524288uploaded=87654400


第三次宣布,您成功下载了258 786 432 字节并通过了哈希检查,并上传了98 762 752 字节给其他节点,但这次哈希失败了3 次(块大小:262 144 字节);
您发送第三个公告
left=741257170downloaded=493310720uploaded=186417152损坏=786432 (不发送损坏
的客户端将发送download=494097152


第四个公告:[TODO]


保留:除了官方的 BEP3 之外,如何完成此操作主要是未记录的约定,上述答案基于使用 Wireshark 尽力检查常见客户端。