我有一个在公共IP地址上运行的WebRTC MCU(kurento) 为一些仅发送或仅接收音频的客户提供服务 因此,每个客户端都与具有公共IP地址的MCU(不是彼此)直接连接。
Q1:是否仍然需要使用STUN和TURN进行NAT遍历?如果是这样的话?
Q2:浏览器中的WebRTC中是否有任何hack可以消除对STUN和TURN的需求?
在我看来:大多数客户端 - 服务器架构对NAT后面的客户没有任何困难。这与webrtc有什么不同?
答案 0 :(得分:5)
是的,ICE绝对是WebRTC的必备条件。
Q1:是否仍然需要使用STUN和TURN进行NAT遍历 ??如果是这样的话为什么?
对于您的情况,您不需要来使用STUN或TURN。让我解释一下原因。
私有网络中的每个客户端都在某种具有公共IP地址的NAT下。外界并不知道该客户端的私有IP地址,即使他们知道在不知道公共IP地址的情况下他们也无法与客户端建立连接。 STUN服务器用于收集此公共IP地址。
因此,如果您的服务器想要启动连接,那么它需要客户端发送其NAT的公共IP。客户端将使用STUN服务器知道其公共IP并将其发送到服务器。但是,如果客户端启动连接,则无需知道NAT的公共IP。客户端可以将数据包发送到公共服务器以启动连接。服务器可以从客户端数据包中知道cilents public IP,然后就可以连接了。所以不需要STUN。
您的服务器在这种情况下正在扮演TURN的角色。所以你不需要TURN服务器。
Q2:浏览器中的WebRTC是否有任何黑客攻击可以消除对STUN和TURN的需求?
没有黑客攻击。根据场景使用TURN / STUN。对于您不需要的场景。如果您想进行客户端 - 客户端连接,那么您将需要STUN服务器。
答案 1 :(得分:1)