根据:
https://en.wikipedia.org/wiki/Network_address_translation
有4种类型的NAT配置:
全锥,地址受限,端口受限和对称。
现在,假设我们在不同的网络上有客户端A和客户端B,并隐藏在他们自己的独立NAT之后。
“客户端A NAT类型”+“客户端B NAT类型”的哪些组合需要使用TURN服务器(即STUN协议无法解决),如果他们想进行p2p通信?
例如, 我怀疑:
” 客户端A NAT =对称+客户端B NAT =对称 “ 需要TURN服务器。
其余的组合是什么?
答案 0 :(得分:4)
对称到对称:TURN
对称于受限制的端口:TURN
对称地址限制:STUN(但可能不可靠)
与锥形对称:STUN
其他一切都可以通过STUN。
有一些已知技术可以为对称NAT猜测端口分配算法(通常对称NAT只使用下一个增量端口号)。因此,如果您通过STUN知道NAT是对称的并且通过STUN测试观察到两个不同地址的端口映射仅仅是1,那么可以猜测下一个端口分配并将其用作地址候选。
即使对于上面列为STUN的NAT配对,STUN也不是100%可靠,并且TCP的可靠性低于UDP。云中的中继使您更接近100%遍历。