允许的机制是什么比特流仅适用于出站连接?
也就是说,无需端口转发。
Brian 的 BitTorrent 常见问题解答和指南说:
BitTorrent 通常可以在 NAT(网络地址转换)环境中正常工作,因为它只需出站连接即可运行。
在这种情况下,其他对等点是否可以充当会合服务器?
答案1
据我所知,它的工作原理是使用反向连接- 基本上,您的客户端会建立一个传出连接,该连接由远程机器保持打开状态,并通过同一个连接传输数据。
如果每个人都使用这个,而没有人设置端口,它很可能会失败。当我使用 Bittorent 并禁用端口时,我的速度非常糟糕,但它确实有效,这就是我认为它如此工作的原因。
答案2
BitTorrent 使用 P2P 连接工作。因此必须有一种方式来直接连接到对等方。如您所知,NAT 会破坏 P2P 的工作。但有一些解决方案可以使其工作。大多数(据我所知)都基于 STUN 协议。
每个客户端使用 STUN 服务器获取其公共 IP 和临时端口号 (UDP)。STUN 服务器帮助客户端检测 NAT 的存在并检测公共 IP + 临时端口号(由 NAT 分配)。然后,客户端尝试使用打孔技术与其他对等端建立直接连接(参见维基百科)。
如果您启用了 UPnP,那么还有另一种解决方案。
有关详细信息,请参阅维基百科上的 NAT 遍历。
答案3
NAT 后面的对等端通过一种称为“打洞”的技术工作。UDP 和 TCP 有两种类型的“打洞”,但基本思想是相同的。但有第三个协助者,有时也称为会合服务器,可帮助两个对等端建立连接。在 BitTorrent 的情况下,第三个对等端可以充当会合服务器,以协助其他两个对等端建立连接。从打算通信的对等端的角度来看,双方都只有一个传出连接。
值得注意的是,打洞技术可能对 60% - 70% 的 NAT 有效,但不一定对全部有效,因为该技术依赖于 NAT 服务器在本地和公共端点之间建立的 NAT 映射。如果 NAT 服务器采用略微不同的方法来建立那些不易预测的映射,那么打洞技术就无法发挥作用。
答案4
最近有一个播客IT 对话标题你的 ISP 计划如何“帮助”你并破坏互联网Cullen Jennings 博士在其中讨论了 NAT 穿越的各种机制。该讲座只有 15 分钟,值得一听。