我使用 Transmission 下载文件,但它说需要打开某个端口。然而,当这个端口关闭时,我注意到我仍然可以毫无问题地下载文件。但当我通过路由器打开端口时,我可以看到下载速度有显著差异。我知道“端口转发”的基本知识,它会将流量转发到某个端口上的某个设备。所以我以为我的下载不会继续,因为端口关闭了,但事实并非如此。所以我的问题是:
- 在这种情况下端口转发有何帮助?
- 为什么启用端口转发后我的下载速度会加快?
答案1
简而言之:为了使 BitTorrent(p2p)协议正常工作,至少一个对等点必须有一个公开开放的端口(成为一个活跃节点)。
您可以运行 Transmission 而无需端口转发(保持被动节点),并且您将毫无问题地连接、下载和播种文件。但是您的客户端只能与主动节点通信。
通过在您这边启用端口转发(成为主动节点),您可以增加可以与之通信的对等点的数量(然后您可以与被动节点交换数据)。
由于文件会从大量节点同时下载,因此会影响整体传输速率。
文件分析 BitTorrent 及其在混合 CDN 的 P2P 流媒体协议设计中的应用包含比较“防火墙”和“开放”对等体之间的传输速度的图表(参见第 8 页):
答案2
如果您的 torrent 客户端、路由器或两者上的 uPnP/NAT-PMP 已关闭,则入站连接将无法工作。然后,您需要在路由器的配置中将端口转发到您的计算机或打开 uPnP。由于转发/uPnP 映射用于入站连接,因此它可以允许更多之前无法连接到您的对等方通过。因此,如果您关闭了转发和 uPnP,然后启用其中之一,则可能会导致流量增加。
除此之外,据我所知,uPnP 和手动端口转发在速度方面没有太大区别。也许当时发生了其他事件,例如您连接到了更多对等点,您的 ISP 执行基于端口的流量整形,受到其他程序的干扰等。但假设情况并非如此,应该没有区别。
(我原来的回答不太清楚,很抱歉。希望这个答案会更好。)
答案3
如果您启用了端口转发,则传入连接可以找到您的 torrent 节点。否则,唯一的连接将是出站连接。
当然,您可以仅使用出站连接进行下载,但您可以连接的潜在节点池会更小(因为无法连接没有端口转发的其他节点)。因此,由于活跃对等节点较少,您的整体下载速度可能会变慢。您也不太可能通过 DHT 找到孤立的对等节点池。
如果您设置并强制加密,这会对您产生更大的影响,因为这进一步减少了您的潜在同行池。
如果您的路由器启用了 uPNP,那么大多数 torrent 客户端都会利用此功能自动设置端口转发。否则,您需要在路由器配置中手动设置 - 执行此操作的方法取决于您的路由器,而要转发的端口范围取决于您的客户端设置。