NAT穿透 - 使用STUN的成功概率

5
我正在开发一个P2P应用程序,并且需要使用STUN和/或TURN进行NAT穿透。我已经研究过仅使用STUN时可能出现的问题(基本上它并不总是有效,因为它是基于UDP的,一些防火墙会拦截 - 这个原因与我的问题不太相关),我一直看到有人建议使用STUN和TURN作为备用方案(ICE方案)。但无论我去哪里,都只看到人们将STUN描述为“不太可能总是有效”。我想要的是一些具体的数字/统计数据。我可能会尝试自己生成数据,但我没有足够的客户来形成显著的样本。所以我想知道是否有人能够提供有关使用STUN进行NAT穿透的成功率的数据。如果我未能使用TURN作为回退,有多少对等方将无法连接?
1个回答

8

根据客户身份、位置和使用的设备类型(PC与移动设备),结果会有所不同。

根据我的经验,在桌面电脑和笔记本电脑上,仅使用 STUN 进行 ICE 连接成功率约为 85%。但如果对于特定对端点它能够成功连接一次,那么在这些相同的主机上进行后续连接时就更容易成功(假设网络拓扑没有改变)。对于移动设备,情况有所不同。

以下是影响点对点成功“连接”(基于UDP或TCP)的因素:

  1. NAT 类型。如果两个端点都在表现良好的“端口限制”NAT或更高级别的NAT之后,则使用 STUN 成功的几率很高。这是美国家庭NAT及其良好的ISP的通常情况。但移动运营商和企业防火墙通常由于具有多个NAT和网络配置而实现“对称NAT”,这基本上意味着端口映射不一致,对像ICE这样的P2P算法来建立连接更加困难。

  2. 防火墙或企业配置。即使防火墙允许出站UDP数据包并接受返回的数据包,它也经常是对称NAT配置。

  3. 移动运营商。通常(但不总是)为对称NAT类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接