TURN 是 Traversal Using Relays Around NAT 的缩写。TURN 是一种协议,用于促进点对点连接和在不同 NAT 后面的设备间通信。NAT 是路由器用来发送通信的一种方法。
TURN 服务器工作原理说明
当 WebRTC 无法使用 STUN 建立连接时,TURN 服务器就会发挥作用。
这是因为设备之间存在防火墙或 NAT 限制。以下是 TURN 服务器的工作原理:
1. 会话初始化
- 互联网上的设备要建立点对点连接,首先要知道自己的公共 IP 和端口号,然后直接与另一个对等设备建立连接。
- 客户端可以通过 STUN 服务器知道其公共 IP 和端口号。
- 如果设备无法直接使用从 STUN 服务器获得的 IP 地址和端口号建立连接,就会切换到 TURN 服务器
2. 分配
- TURN 服务器会为客户端分配一个公共 IP 地址和端口号。该分配作为一个中继端点,所有通信都将通过它发送和接收。
- 基本上,TURN 服务器会转发数据并充当中间人,它们基本上会从一个端点获取数据并转发到另一个端点。
3. 通信
- 客户端使用 TURN 服务器分配的 IP 地址和端口号发送和接收数据。
- 所有数据首先发送到 TURN 服务器,然后由 TURN 服务器充当中间人,将所有流量转发到目的地。
4. 会话终止
- 会话结束后,客户端向 TURN 服务器发送请求,关闭分配,从而释放资源。
TURN 和 STUN 之间的区别
TURN 和 STUN 都参与促进 NAT 穿越,但它们的方法和用例有很大不同,注意区别如下:
- 质量:与 STUN 服务器相比,TURN 服务器可提供更高质量的视频和数据传输,这是因为连接是在 TURN 服务器中转的,因此质量更高
- 资源强度:与 STUN 服务器相比,TURN 需要大量资源。这是因为 TURN 通过服务器转发数据,而 STUN 只回复 IP 地址和端口号,所有繁重的工作都必须由设备自己完成。
- 使用案例:STUN 用于发现设备的 IP 地址和端口号,仅此而已。
- 可靠性:与 STUN 服务器相比,TURN 是一种更可靠的通信方式
TURN 服务器的作用:对实时通信至关重要的原因
1. 保证连接性
有了 TURN 服务器,您就可以获得有保障的连接性,尽管有一些 NAT 和防火墙限制,包括阻挡大部分流量的深度数据包检测防火墙,您仍可以通过 TURN 服务器获得连接性。
2. 兼容性更强
TURN 服务器与各种 NAT 和防火墙安全机制兼容。
3. 安全和控制
通过 TURN 服务器,您可以获得更强的安全性和控制,因为所有通过 TURN 服务器的流量都经过端到端加密。
TURN 服务器非常重要的实际应用场景
- 企业网络:许多企业都有严格的企业防火墙网络和复杂的 NAT,可能会阻止通信。TURN 服务器为视频会议等实时通信提供便利。
- 医疗保健电信:远程医疗需要安全可靠的实时视频和数据通信。TURN 服务器可帮助医疗服务提供商与病人建立联系。
- 在线游戏
- 电信和 VoIP 服务:VoIP 服务 TURN 服务器是实现通话和视频聊天的必要条件
- 视频会议:需要使用 TURN 服务器才能进行视频会议,尤其是大量参与者之间的视频会议。
- 物联网设备:如果需要在 NAT 后面的物联网设备之间进行通信,则需要 TURN 服务器在设备之间进行通信
- 流媒体服务:视频流媒体服务也需要 TURN 服务器,以便将流媒体传输到数百万个位于不同 NAT 和防火墙规则后的设备上
- 远程工作和协作工具:许多远程工作和协作工具(如聊天软件和其他通信设备和软件)都需要 TURN 服务器在 NAT 后面相互通信。

原创文章,作者:ZEGO即构科技,如若转载,请注明出处:https://market-blogs.zego.im/reports-baike/1297/