gpt4 book ai didi

webrtc - 为什么使用两个以上的 STUN/TURN 服务器会减慢发现速度?

转载 作者:行者123 更新时间:2023-12-02 08:59:15 27 4
gpt4 key购买 nike

我正在为我的 WebRTC 应用程序(构建在 mediasoup 之上)传递一些 STUN 和 TURN 服务器。当我这样做时,我在控制台中收到一条消息,告诉我:“使用两个以上的 STUN/TURN 服务器会减慢发现速度”

我可以将服务器减少到 2 个...但是...为什么更多会造成伤害?难道我不想要最多的可用选项来建立连接吗?

最佳答案

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

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

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

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

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

关于webrtc - 为什么使用两个以上的 STUN/TURN 服务器会减慢发现速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58223805/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com