【发布时间】:2014-01-23 05:20:40
【问题描述】:
我尝试制作 P2P 程序,需要帮助以通过客户端的 NAT。 我在这里阅读了很多关于 stackoverflow 的问题,但我从未了解所有通过 NAT 的方法的缺点和优点。 有多少路由器支持哪些方法? 大公司常用哪些方法? (BitTorrent、TeamViewer、...) 我列出的三种方法的缺点/优点是什么?还有哪些?
【问题讨论】:
标签: nat upnp hole-punching stun
我尝试制作 P2P 程序,需要帮助以通过客户端的 NAT。 我在这里阅读了很多关于 stackoverflow 的问题,但我从未了解所有通过 NAT 的方法的缺点和优点。 有多少路由器支持哪些方法? 大公司常用哪些方法? (BitTorrent、TeamViewer、...) 我列出的三种方法的缺点/优点是什么?还有哪些?
【问题讨论】:
标签: nat upnp hole-punching stun
UPnP 需要在您的路由器中提供软件支持。即使路由器有它,有时也会出于安全考虑将其关闭。
STUN 使用一个简单的公共服务器来检测 NAT 和真实 IP 地址的存在。这对于执行有用工作的其他更高级别的协议很有用。
打孔是一种连接两台计算机的简单技术。它需要第三台公共计算机在 NAT 后面的两台计算机之间进行通信。您可以使用自定义协议运行您自己的服务器,我们可以使用 STUN 和现有的 STUN 服务器。 (设置只需要几个数据包,其余的都是点对点的)。
当然,有些 NAT 防火墙与上述不兼容,因此您可能需要自定义协议。 Bittorrent 这样做:他们使用不同的技术,具体取决于哪些客户端位于防火墙后面等等。
【讨论】: