UDP/TCP 打洞 vs UPnP vs STUN vs?

问题描述 投票:0回答:1

我正在尝试制作一个 P2P 程序,需要帮助来穿越客户端的 NAT。我很好奇:

  1. 我列出的三种方法的缺点/优点以及还有哪些方法?
  2. 有多少路由器支持哪些方式?
  3. 大公司常用哪些方法? (BitTorrent、TeamViewer...)
nat upnp hole-punching stun
1个回答
17
投票

UPnP 需要路由器中的软件支持。即使路由器有它,有时也会出于安全考虑而将其关闭。

STUN 使用简单的公共服务器来检测 NAT 的存在和真实 IP 地址。这对于其他执行有用工作的更高级别协议很有用。

打孔是一种连接两台计算机的简单技术。它需要第三台公共计算机才能在 NAT 后面的 2 台计算机之间进行通信。您可以使用自定义协议运行自己的服务器,您可以使用 STUN 和现有的 STUN 服务器。 (仅需要几个数据包进行设置,其余的都是点对点的)。

当然,有些NAT防火墙与上述不兼容,因此您可能需要自定义协议。 Bittorrent 就是这样做的:他们根据哪些客户端位于防火墙后面等使用不同的技术。

© www.soinside.com 2019 - 2024. All rights reserved.