哪种类型的NAT组合需要TURN服务器?

Hen*_*ang 2 p2p nat stun turn

根据:

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

NAT配置有4种类型:

全锥,地址限制,端口限制和对称。

现在,假设我们的客户端A和客户端B位于单独的网络中,并隐藏在它们自己的单独NAT之后。

如果要进行p2p通讯,“客户端A NAT类型” +“客户端B NAT类型”的哪些组合将要求TURN服务器参与(即不能由STUN协议解决)?

例如,我会怀疑:

“客户端A NAT =对称+客户端B NAT =对称”将需要TURN服务器。

其余的组合是什么?

sel*_*bie 5

对称到对称:TURN

对称于端口受限:TURN

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

圆锥对称:STUN

其他一切都可以通过STUN。

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

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