使用 Traversal Using Relays around NAT (TURN) 服务器,可以在高度限制的网络中建立可靠的 WebRTC 连接。
阅读本文后,您将能够:
复制文章链接
Traversal Using Relays around NAT (TURN) 服务器是一种 Web 服务器,当防火墙或私有 IP 地址的使用中断实时通信连接(例如视频或音频通话)时,它可以在计算设备之间实现 WebRTC 连接。顾名思义,TURN 服务可以绕过网络地址转换 (NAT),以确保客户端之间的连接不会在会话中途中断。
简而言之,即使网络未配置为支持视频和音频通话,TURN 服务器也能帮助确保视频和音频通话正常运行。
当 WebRTC 连接中的某个设备使用私有 IP 地址时,TURN 服务器就变得必不可少。具有私有 IP 地址的设备使用 NAT 连接到其他设备。NAT 重新打包数据包并将其发送到私有 IP 地址,但它不能很好地与许多协议配合使用,包括 WebRTC。
假设 Alice 想开车去 Bob 家,但他们之间的高速公路上设置了路障。Alice 没有走高速公路撞上路障,而是绕道而行,通过另一条路线到达 Bob 家。当 NAT 可能成为无法逾越的障碍时,TURN 服务器可以为 WebRTC 连接提供替代路由。
STUN(NAT 会话穿越应用程序)服务器是另一种支持 WebRTC 连接的服务器。它让两个设备能够发现彼此的公共 IP 地址并发起直接连接。但 STUN 服务器往往无法绕过严格的安全措施,在这种情况下,可以改为使用 TURN 服务器。
Web 实时通信 (WebRTC) 是一种开源技术,允许通过 API 建立直接的点对点 (P2P) 实时通信。它允许客户端设备彼此之间传输文件,而不必依赖中央服务器(与 HLS 或 HDS 等假定客户端-服务器模型的协议相反)。WebRTC 也已用于多种通信协议,例如支持互联网电话和视频通话的 VoIP 协议。
NAT(网络地址转换)是一种将私有 IP 地址映射到公共 IP 地址的技术,或者最常见的是将多个私有 IP 地址映射到一个公共 IP 地址。(IP 地址对于在设备之间建立连接至关重要。)
NAT 就像在邮政系统中使用转寄地址。通讯员可以在不知道收件人真实邮寄地址的情况下寄送邮件,因为转寄地址会将邮件寄送到真实地址。类似地,NAT 将公共 IP 地址与私有 IP 地址进行匹配,并将数据包转发到正确的位置。
NAT 最流行的应用之一是在局域网 (LAN) 内分配 IP 地址,例如家庭 WiFi 网络。由于 IPv4 地址不够用,因此路由器会为网络连接设备分配动态的私有 IP 地址。这些 IP 地址很可能也被互联网上的其他设备使用,因此为了避免混淆,路由器使用 NAT 将它们更改为一个不会在其他任何地方重复的面向公众的 IP 地址。(ISP 也可能动态分配这些面向公众的 IP 地址。)
NAT 还可用作一种安全措施,以保持 IP 地址的私密性。设备可以避免在网络外部(甚至在网络内部)泄露其真实 IP 地址,并使用 NAT 广播公共 IP 地址并连接到其他设备。
问题在于某些应用程序层协议不能很好地与 NAT 配合使用,就像人们的转寄地址可能无法转寄所有类型的邮件(例如大包裹)。
即使在使用 NAT 和防火墙隐藏 IP 地址的高度受限的网络环境中,TURN 服务器也有助于确保连接性。在无法正常连接且 STUN 服务器无法支持实时通信的情况下,TURN 服务器能够实现实时通信。TURN 服务器可提高互联网电话服务或聊天服务的可靠性。
开发人员可以利用 Cloudflare Calls 服务构建实时音频、视频和数据应用程序。Cloudflare Calls 确实包含一个全球 TURN 服务器,从而让开发人员能够更轻松地构建快速可靠的实时应用程序。要深入了解 Cloudflare 的 TURN 服务,请参阅开发人员文档。
入门
关于流
流协议
编码
词汇