我读了一些关于WebRTC NAT穿越的文档。 我看到,如果其中一个对等体位于对称NAT之后,则必须使用TURN服务器。
我想知道为什么协议不允许穿越至less有一个客户端有公网IP或不对称的NAT?
从我正在阅读的问题是,build立一个对等体与对等NAT之间的连接。 然后不能客户端后面对称nat连接到另一个客户端? 如果不可能/允许共享相同的UDPstream,那么为什么对称NAT之后的对等体创build2个或更多的连接,就像所有媒体stream所需要的一样多?
WebRTC的问题不是数据包到达或不到达目的地,而是如果没有使用遍历方法,IP数据包的有效载荷中的数据是不正确的。 例如,SDP数据具有包括IP地址和端口的字段,这些IP地址和端口仅在本地环境中有效,也就是说在NAT后面的LAN中。 NAT设备能够改变IP头,但是一般来说,它们不能改变应用协议的有效载荷
这就是WebRTC通过标准协议(STUN,TURN和ICE)支持NAT穿越的原因。 你提到了对称的NAT。 当你使用这种types的NAT时,STUN不起作用,你应该有一个TURN服务器。