我正在尝试了解 WebRTC 的工作原理,并且无法理解 STUN 的作用。
根据我在各种网页上阅读 STUN 的理解,例如 rfc5389 ,或观看Google's 2013 presentation on WebRTC ,STUN 似乎唯一能做的就是告诉客户端它的公共(public) IP 地址/端口是什么。
然而,看看如何实现一个 STUN 服务器表明他们更多地参与其中,并且似乎包括对 UDP、TCP 和 TLS-TCP 的故障回复支持,以及客户端和服务器报告它们的握手。期望他们的 IP 地址是,并根据对方所说的 IP 地址进行验证。例如,有趣的是,jselbi's stunserver project有超过 50 个 C++ 文件。
此外,对我来说,为什么 WebRTC 客户端甚至需要知道自己的公共(public) IP 地址是没有意义的。在 Google's presentation video (at time 19:46)显示了两个想要从 NAT 后面相互交谈的对等点,并且每个对等点还与一个信令服务器进行通信。此图表明每个信令服务器不知道对等方的公共(public) IP 地址/端口。但是这个图肯定是错误的:它显示了对等方直接与信令服务器对话,但通过 NAT 与 STUN 服务器间接对话。实际上,对等方也将通过 NAT 与信令服务器通信,因此,信令服务器已经知道对等方的公共(public) IP 地址/端口。
由此,我遇到的问题是:
最佳答案
关于webrtc - STUN 服务器如何获取 IP 地址/端口,然后如何使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54839692/