2

为了让两个不同 NAT 后面的两个主机能够建立 P2P 连接,它们必须都具有彼此的公共端点(地址/端口)。为了让每个主机知道它自己的公共端点,它可以与一个已知的公共服务器通信,该服务器将它的公共端点返回给主机,如服务器所见。参见 STUN (RFC5389)。

为了使此机制起作用,NAT 必须始终将相同的私有端点转换为相同的公共端点,而不管目标端点如何。

实现一个依赖于这种特定 NAT 行为的 P2P 应用程序是否是一个好主意(即它是否足够普遍)?Skype 和/或其他流行的 P2P 应用程序是否有其他回退机制?

编辑:它看起来像一个 NAT,其中每个目标选择不同的端口被称为“对称 NAT”。此外,一些对称 NAT 会增加端口号,从而可以猜测正确的端口。

现在我想问题是:大约有多少百分比的 NAT 是对称 NAT,其中有多少百分比使用随机端口分配与递增之类的东西?

4

2 回答 2

1

您可以使用 IETF 的标准 STUN/TURN/ICE 协议: http ://rtcbits.blogspot.com/2012/10/what-is-ice-interactive-connectivity.html

根据 Google Gtalk 统计,这些机制在 92% 的情况下解决了 P2P 连接而无需中继流量。 https://developers.google.com/talk/libjingle/important_concepts

于 2013-07-20T06:55:11.743 回答
-1

STUN 只能处理 85% 的情况!TURN 可以处理 100%,但使用起来确实很昂贵。那么用什么呢?两者都不是

使用冰。它是STUN服务器和TURN服务器的直接组合!这样,您将拥有 100% 的可靠性,但您只能在服务器上中继 15% 的流量。

于 2015-08-18T02:53:35.963 回答