像 Utorrent 这样的 torrent 客户端在幕后是如何工作的?

像 Utorrent 这样的 torrent 客户端在幕后是如何工作的?

我想编写自己的小型 torrent 客户端,类似于 Utorrent。但是我不确定如何开始与不同的种子建立连接。一旦我有一个包含所有数据的 torrent 文件,我该如何解码和解释它?

建立与跟踪器的连接的协议是什么?假设我的知识和术语正确,一旦我连接到 torrent 文件中找到的跟踪器,我就会收到一份包含种子 IP 和端口的列表。然后我就可以连接并开始从种子器下载文件片段。

我还知道 Utorrent 列出了当前种子 IP,我认为也列出了它们的端口。一旦我知道了种子 IP 和端口,是否可以手动建立连接并开始下载文件片段?或者是否有握手或安全层可以阻止这种情况发生?

答案1

Bittorrent协议详解这里。您还可以研究开源 Bittorrent 应用程序(例如 Transmission)的源代码。

与追踪器建立连接的协议是什么?

HTTP。

一旦我知道了种子 IP 和端口,是否可以手动建立连接并开始下载文件片段?或者是否有握手或安全层可以阻止这种情况发生?

如果对方没有因为你小气或不可靠而拒绝你。可能还有更多原因,我已经很久没有读过完整的规范了。读一下规范。

至于访问级别的安全性,除了阻塞机制之外没有其他措施,这实际上不是一种安全措施,而是一种公平执行措施。我不太清楚加密是如何工作的,但它只是为了保护传输,而不是为了识别对等方。至于确保对等方给出的片段是 torrent 的一部分,这就是 SHA-1 哈希的作用所在。

相关内容