根据:
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服务器。
其余的组合是什么?
对称到对称:TURN
对称于端口受限:TURN
对称到受限地址:STUN(但可能不可靠)
圆锥对称:STUN
其他一切都可以通过STUN。
有一些已知的技术可以据此猜测对称NAT的端口分配算法(通常对称NAT只会使用下一个递增的端口号)。因此,如果您通过STUN知道NAT是对称的,并且通过STUN测试观察到两个不同地址的端口映射仅相差一个,则可以猜测下一个端口分配并将其用作地址候选。
即使对于上面列为STUN的NAT配对,STUN也不是100%可靠,并且对TCP的可靠性不如对UDP的可靠性。云中的中继使您更接近100%遍历。
| 归档时间: | 
 | 
| 查看次数: | 639 次 | 
| 最近记录: |