2

根据:

https://en.wikipedia.org/wiki/Network_address_translation

有 4 种类型的 NAT 配置:

全锥、地址受限、端口受限和对称。

现在,假设我们在不同的网络上有客户端 A 和客户端 B,并且隐藏在各自独立的 NAT 后面。

如果他们想要 p2p 通信,“客户端 A NAT 类型”+“客户端 B NAT 类型”的哪些组合需要涉及 TURN 服务器(即无法通过 STUN 协议解决)?

例如,我会怀疑:

“client A NAT = Symmetric + client B NAT = Symmetric”需要一个 TURN 服务器。

其余的组合是什么?

4

1 回答 1

5

对称到对称:TURN

与端口限制对称:TURN

对地址限制对称:STUN(但可能不可靠)

圆锥对称:STUN

其他一切都可以通过 STUN。

有一些已知的技术可以猜测对称 NAT 的端口分配算法(通常对称 NAT 只是继续使用下一个增量端口号)。因此,如果您通过 STUN 知道 NAT 是对称的,并通过 STUN 测试观察到两个不同地址的端口映射仅相差一个,则可以猜测下一个端口分配并用作地址候选。

即使对于上面列为 STUN 的 NAT 配对,STUN 也不是 100% 可靠的,而且对于 TCP 的可靠性不如对于 UDP 的可靠性。云中的中继使您更接近 100% 遍历。

于 2015-07-15T20:31:38.160 回答