我已经使用 torrent 多年了,我计划编写一个简单的 golang 程序来管理 p2p 连接......
但是,因为我到处都看到,要使 p2p 程序运行,必须指定一个开放端口,所以我想到了一个问题... utorrent 如何在不需要打开路由器端口的情况下运行?(是的,我知道人们说仅为 utorrent 打开一个端口可能会提高速度,但对我来说,即使没有这个技巧它也总是有效的)
谢谢,我现在真的很困惑......
答案1
它通过使用反向连接来工作,您的客户端连接到外部服务器,然后此连接用于传入和传出流量。如果每个使用 P2P 的人都在被阻止的端口后面,它就无法工作,因此它假设某些客户端/服务器的端口是开放的。
对于游戏和其他需要向任何方向发送数据的客户端来说,这是一种常见的解决方案,并且还有 uPNP 等解决方案,以便客户端可以在必要时要求路由器打开端口并进行端口映射。