Webrtc 为什么使用两个以上的昏迷/翻转服务器会降低发现速度?

Webrtc 为什么使用两个以上的昏迷/翻转服务器会降低发现速度?,webrtc,mediasoup,Webrtc,Mediasoup,我正在为我的WebRTC应用程序(构建在mediasoup之上)传递一些STUN和TURN服务器。当我执行此操作时,控制台中会显示一条消息,告诉我:“使用两个以上的昏迷/转身服务器会减慢发现速度” 我可以把服务器减少到2台。。。但是为什么更痛?难道我不想使用最多的选项来建立连接吗?因为ICE的工作原理是,最初浏览器会查看它可以在您的机器上找到哪些基于IP的网络接口 然后,它计算网络接口的数量,并将其与该服务提供的每台STUN服务器和每台TURN服务器相结合。接下来,它需要向这些组合中的每一个发送

我正在为我的WebRTC应用程序(构建在mediasoup之上)传递一些STUN和TURN服务器。当我执行此操作时,控制台中会显示一条消息,告诉我:“使用两个以上的昏迷/转身服务器会减慢发现速度”


我可以把服务器减少到2台。。。但是为什么更痛?难道我不想使用最多的选项来建立连接吗?

因为ICE的工作原理是,最初浏览器会查看它可以在您的机器上找到哪些基于IP的网络接口

然后,它计算网络接口的数量,并将其与该服务提供的每台STUN服务器和每台TURN服务器相结合。接下来,它需要向这些组合中的每一个发送请求,并跟踪响应。在晕眩的情况下,这只是一个单一的反应,在轮换的情况下,通常是多次往返。因此,您拥有的服务器越多,从所有服务器获得答案的时间就越长

现在,如果STUN server#1将您的外部IP地址报告为A,端口为1,那么STUN server#2很可能也会告诉您它将A视为您的外部IP地址,唯一的区别是它报告的端口为2。几乎在所有情况下,所有STUN服务器都将报告完全相同的外部IP A。但是,反复向另一端的ICE代理报告相同的外部IP地址并不会增加建立连接的机会,因为其请求都将命中相同的路由器/NAT/防火墙

对于TURN服务器,可以说更多的TURN服务器可以提供更多帮助,因为每个TURN服务器应该为浏览器提供不同的IP地址进行中继。但是,如果一个给定的浏览器能够访问一个回合服务器而不是另一个回合服务器,这将是非常不寻常的

最后,所有这些服务器都会导致浏览器发出更多候选ICE。因此,更多的ICE候选人需要发送到其他浏览器或ICE代理。因此,尝试本地和远程ICE候选的所有可能排列的ICE检查表随着每个ICE候选越来越大。因此,它会产生更多的网络流量,但不会大大增加建立连接的机会