首页 > 解决方案 > BitTorrent 协议 - DL/UL 统计数据的完整性(跟踪器)

问题描述

我有一个关于 bittorrent 协议的问题:假设我们有一个私人跟踪器,我们在其中注册和登录以下载 torrent 文件/访问磁体。我们知道客户端向跟踪器宣布获取对等点列表,然后客户端本身连接到不同的对等点以下载整个文件的单独部分。一旦客户端完成下载或中止,它会向跟踪器发送一条 AnnounceFinished 消息,以便统计/正常关闭客户端。

现在,假设跟踪器想要保持下载/上传速率(就像在真实跟踪器中通常所做的那样)以限制 leecher 在不上传的情况下下载过多。当实际下载/上传仅发生在对等点之间时,跟踪器如何获得有关对等点下载/上传量的真实/合法统计信息?他们是否需要诚实和合作并将正确的统计数据发送给跟踪器,或者跟踪器能否以某种方式强制执行正确的数据?

标签: protocolsbittorrent

解决方案


他们是否需要诚实和合作

或多或少,是的。

或者跟踪器可以以某种方式强制执行正确的数据?

不是在多个共谋同行的一般情况下。在单个/几个自私下载者的特殊情况下,可以通过交叉检查来自多个对等点的统计数据来检测它们,但这很脆弱,需要一些微调的启发式方法来最大限度地减少误报,同时仍然获得不错的真阳性。

它基本上是一个杂物,而不是协议设计的东西。

对于下载的统计数据,跟踪器也可以作为比特流对等方参与群,并根据have消息查看客户端的进度,但这不适用于上传,也不是那么可靠,因为不能保证它可以连接到群中的所有对等点以观察它们。


推荐阅读