使用 Deluge BitTorrent 客户端并两个 NAT 之后(家庭路由器 + ISP 路由器),我已经关掉两个都即插即用和NAT-PMP并让它播种一个完整的 torrent,观察其行为。令我惊讶的是,客户端开始上传将 torrent 共享给多个对等体(几秒钟内)。
我认为上传文件不符合我的客户的利益,至少不会达到积极联系其他人并尝试发送。相反,我认为它只是被动倾听对于请求文件的传入连接,因此只在直接请求时上传。因此,上传正在播种的种子意味着有人向我请求了它。但是,这些请求是如何从 NAT 之外到达我的客户端的呢?
我当然可以想象使用一个共同的NAT 遍历技术,例如UDP 打洞但这仍然需要我的客户端的积极配合(客户端应该不知道远程对等方需要该文件,因此无法配合)。那么,这怎么可能呢?
答案1
您必须检查 Bittorrent 客户端的源代码才能确定,但由于对等方通过与跟踪器的传出 HTTP 连接发现群上的 IP,因此它可以通过传出连接询问对等方是否需要文件的片段。
我认为上传该文件不符合我的客户的利益
如果您要播种一个完整的文件,您实际上是在说您希望此文件在网络上传播(即发布者的情况),因此开发人员不惜一切代价确保这一点并不牵强。此外,许多跟踪器都坚持要求您保持良好的种子/盗取比率,因此实际上这通常是人们想要的。