BitTorrent 如何仅使用出站连接?

Pet*_*sen 27 bittorrent

允许BitTorrent仅使用出站连接的机制是什么?

也就是说,没有端口转发。

布赖恩的 BitTorrent 常见问题解答和指南说:

BitTorrent 通常可以在 NAT(网络地址转换)环境中正常工作,因为它只能在出站连接下运行。

在这种情况下,其他对等点是否用作集合点服务器?

Wil*_*sum 10

据我所知,它使用反向连接工作- 基本上,您的客户端执行一个传出连接,该连接由远程机器保持打开状态,并且它们通过相同的连接泵送数据。

如果每个人都使用它并且没有人设置端口,它很可能会失败。当我在禁用端口的情况下使用 Bittorent 时,我获得了可怕的速度,但它确实有效,这就是为什么我认为它是这样工作的。

  • 这是关于一般 NAT 遍历技术的部分答案。真正的问题是:**你怎么知道有人想从你那里下载一些文件块,因为你不接受任何未经请求的连接?** 所以只有有限的可能性:要么跟踪器警告你,要么你主动连接到多个跟踪器客户端启动对等会话(因此它们可以在某个时间点要求下载),或者您只接受来自您正在主动下载的对等点的请求,或者这些对等点充当 Rendez-Vous 点。那么,在 torrent 客户端中实现了什么建议? (9认同)

小智 9

BitTorrent 使用 P2P 连接工作。因此,必须有一种方法可以直接连接到对等方。如您所知,NAT 使 P2P 无法正常工作。但是有一些解决方案可以解决这个问题。大多数(据我所知)都是基于 STUN 协议的。

每个客户端使用 STUN 服务器获取其公共 IP 和临时端口号 (UDP)。STUN 服务器帮助客户端检测 NAT 的存在并检测公共 ip + 临时端口号(由 NAT 分配)。然后客户端尝试使用打孔技术建立与其他对等方的直接连接(请参阅维基百科)。

如果您启用了 UPnP,还有另一种解决方案。

有关详细信息,请参阅wikipedia 上的 NAT Traversal


Ahm*_*med 8

NAT 背后的对等点通过一种称为“打孔”的技术来工作。UDP和TCP的“打洞”有两种类型,但本质思想是相同的。但是还有第三个辅助器,有时也称为集合服务器,它可以帮助两个对等点建立连接。在 BitTorrent 的情况下,第三个对等点可以充当集合服务器,以促进其他两个对等点建立连接。从打算通信的对等方的角度来看,只有来自任何一方的传出连接。

需要注意的是,打洞可能适用于 60 - 70% 的 NAT,但不一定适用于所有 NAT,因为该技术取决于 NAT 服务器在本地和公共端点之间进行的 NAT 映射。如果 NAT 服务器采用稍微不同的方法来创建不易预测的映射,则打洞不起作用。


L29*_*9Ah 6

是的,其他对等点帮助各方建立连接。BEP 55 中对此进行了描述:http://bittorrent.org/beps/bep_0055.html

简而言之,它是https://en.wikipedia.org/wiki/UDP_hole_punching的实现,适合 BitTorrent 协议的分布式特性。