【问题标题】:WebRTC STUN server purposeWebRTC STUN 服务器用途
【发布时间】:2019-02-18 15:25:16
【问题描述】:

我了解 STUN 和 TURN 服务器的用途以及它们在 WebRTC 中的用途,但我不完全明白:

如果我作为 WebRTC 客户端已经登录使用 WebRTC 服务,该服务不是已经有我的公共 IP 地址了吗?为什么 STUN 服务器需要第二次找到它?

【问题讨论】:

    标签: webrtc stun


    【解决方案1】:

    简答:因为代理和 NAT。

    原因很多:

    1. Web 服务器知道您已建立 TCP 连接的公共 IP 地址,但对于随后通过 UDP 进行的 P2P 通信,它不知道您的本地 NAT 将如何映射端口(或它使用的端口)。

    2. 您可能位于所有 HTTP/HTTPS 流量都通过代理的网络上。因此,WebRTC 服务只知道您代理的地址。

    3. WebRTC 服务本身可以有一个前端负载平衡器。因此,它只知道负载均衡器的 IP 地址。

    4. 尝试进行 WebRTC 会话的两个端点实际上可能位于同一个 NAT 后面。因此,公共 IP 地址没有那么有用。

    但主要原因是上面#1 中讨论的端口预测。通过 ICE 或 WebRTC 进行地址交换不仅涉及交换 IP 地址,还涉及 UDP 端口。即使 Web 服务器知道客户端的实际 IP 地址,Web 服务器也无法推断它将用于媒体流量的 UDP 端口。

    【讨论】:

    • 这是否意味着在上述任何一种情况下,除了使用 STUN 之外,绝对没有其他方法可以获取客户端的地址和端口信息?
    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 2013-11-09
    • 1970-01-01
    相关资源
    最近更新 更多