【问题标题】:ICE vs STUN vs TURNICE vs STUN vs TURN
【发布时间】:2020-04-16 11:34:58
【问题描述】:

我读到ICE是WebRTC服务器上的一个代理,它将用户的SDP信息发送到STUN或TURN服务器。
STUN 和 TURN 服务器提供此 SDP 信息并为用户建立 P2P 连接。

这是真的吗?
那么,STUN 和 TURN 服务器的确切区别是什么?
如果 ICE 代理配置了 TURN 服务器,数据流会发生什么?在这种情况下,TURN 只是充当数据报转发器?

【问题讨论】:

  • 请注意,STUN 和 TURN 服务器都不处理 SDP。这就是信令服务器的工作。
  • @PhilippHancke “这是信号服务器的工作”是什么意思?信令服务器的哪一部分?
  • 您的问题听起来像是在混淆 STUN 和信令服务器(这是很常见的混淆)。 STUN 服务器帮助发现公共 ip,信令服务器交换 SDP 和 ice 候选者(后者是从 STUN 和/或 TURN 服务器收集的)

标签: webrtc stun turn


【解决方案1】:

TURN 是一个中继 - 两个客户端都将数据发送到 TURN 服务器,然后再将其转发给另一个客户端。

STUN 不是中继——STUN 服务器帮助客户端之间“建立连接”(通过发现和交换它们的外部主机:端口对),然后它们直接相互发送数据。但是,STUN 不适用于所有 NAT/防火墙设置,因此当 STUN 失败时使用 TURN。

【讨论】:

  • 如何“直接相互发送数据”?我的意思是,他们如何理解 P2P 连接的目的端口?
  • 我知道了,但我需要更多详细信息。
  • STUN 绝对会协助 NAT。这就是它的意图。只是它不能解决所有的遍历。
  • html5rocks.com/en/tutorials/webrtc/infrastructure 仍然是对此的最佳介绍之一
  • @nerkn STUN 就提供商的带宽成本而言要便宜得多,而且通常对用户而言端到端延迟较低,因此通常是首选。
【解决方案2】:

此答案适用于 Webrtc 新手

在我们深入探讨STUNSession Traversal Utilities for NAT之间的区别之前em>) 和 TURN(Traversal Using relays 围绕 NAT),我们需要了解两个欺骗/对等方如何通过 NAT网络地址转换)及其不同方法进行通信:

  • 全锥形 NAT,也称为一对一 NAT,在任何人都可以连接到您并发送数据的情况下,安全性较低。
  • (地址)-restricted-cone NAT,发件人 IP 地址必须与您的 NAT 表访问者地址之一匹配。
  • 端口限制锥形 NAT,类似于地址限制锥形 NAT,但限制包括端口号。
  • 对称 NAT,仅允许全对匹配,最安全但不推荐。

眩晕

  • 适用于全锥形 NAT
  • 适用于(地址)-restricted-cone NAT
  • 适用于端口受限的锥形 NAT
  • 不适用于 对称 NAT
  • 使用和维护成本低。

转身

  • 适用于 对称 NAT
  • 扩展性维护
  • 是在设备/对等体之间转发/中继数据包的服务器/通道,就像第 4 层的反向代理一样
  • 广泛使用和维护

ICE(交互式连接建立) 是一种协议,即使两个设备被 NAT 隔开,它也允许两个设备使用中介来交换报价和​​答案。它是一种收集描述对等点之间的最佳连接路径的信息的方法,并将这些信息放入一个名为ICE Candidate的对象中。

ICE 候选对象是由本地 IP 地址、安全和路由协议组成的对象,例如反射地址 (STUN) 和中继地址 (TURN) >)、支持的格式等...以及所有 ICE 候选/收集的信息都通过 SDP 发送给对等方。

SDP(Session Description Protocol)是WebRTC的重要组成部分。它是大多数人认为的一种协议或格式,用于描述 ICE 候选者、各种音频和视频编解码器、网络拓扑、带宽和其他设备信息的对等方之间的协商。剩下的唯一问题是我们如何将此 SDP 发送给其他对等方?好吧,正确答案取决于您,我们称之为 SDP SIGNALING

SIGNALLING:指中间的信令服务或通道,可以是任何(email, WhatsApp, postman, WebSockets, HTTP, pizza delivery guy).,以某种方式设法获得SDP 信息给其他对等方。

简而言之,STUN服务器用于获取外网地址,TURN服务器用于在直接(点对点)连接失败时中继流量,TURN 服务器是 STUN em> 服务器具有额外的内置中继功能。而 Signaling 服务器用于让对等方共享服务信息以启动对等流的传输

其他可帮助您了解 webRTC、NAT 和网络的资源:

【讨论】:

    猜你喜欢
    • 2017-10-17
    • 2011-01-03
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多