WebRTC 中的 ICE 和 SDP

随着远程工作、视频会议和实时流媒体的兴起,对实时通信技术的需求呈指数级增长。WebRTC,即 Web 实时通信,是一种非常强大的技术,可促进 Internet 上设备之间的实时通信。多年来,它一直是实时通信应用程序的首选。

然而,在设备之间建立可靠的网络连接可能是一项重大挑战,尤其是当防火墙和其他网络障碍将它们分隔开时。

在这里,我们将深入研究 WebRTC 技术的两个基本组成部分——ICE和SDP协议,它们可以在 Internet 上实现高效无缝的实时通信。

ICE 协议

ICE 协议,或交互式连接建立协议,是 WebRTC 中用于通过 Internet 在设备之间建立连接的技术。它有助于克服 NAT(网络地址转换器)和防火墙等可能阻碍直接点对点通信的障碍。 

通过一个称为“ICE gathering”的过程,设备交换称为 ICE 候选者的网络地址,以确定建立可靠连接的最有效网络路径。即使面对网络障碍,这也能实现无缝的实时通信。

ICE是如何帮助WebRTC穿越NAT和防火墙的呢?

NAT 是 Network Address Translator 的缩写,是路由器部署的一种技术,用于保存、隐藏和增加其网络中设备的内部 IP 地址的额外安全层。路由器通过允许其本地网络中的多个设备共享一个公共IP地址来实现这一目的,它们可以用这个地址与其他设备进行通信,这可能是 DNS 服务器或其他设备。

虽然 NAT 使网络更安全,但它们也对在设备之间建立对等通信构成了重大障碍。

这就是 ICE 发挥作用的地方。

ICE 通过允许设备查找和使用它们之间最有效的网络路径来帮助 WebRTC 穿越 NAT 和防火墙,而不管网络是如何配置的。

ICE 通过称为“ICE gathering”的过程实现这一点。在这个过程中,设备交换 ICE 候选者,也就是潜在的网络地址。这些候选者描述了一个设备可以采取的不同路径来建立连接。然后,ICE 协议评估这些候选者,并选择最合适的路径建立连接,即使在 NAT 和防火墙阻碍点对点通信的情况下。

ICE 候选者

在 WebRTC 中,ICE 候选者充当设备用于通过互联网相互连接的地址。一个设备可以有多个 ICE 候选者,每个都包含 IP 地址、端口号和传输协议等信息。这些候选者有助于在设备之间建立最佳连接,而不管它们的网络设置如何。

建立 WebRTC 连接时,每个设备都会与其他设备共享其 ICE 候选者列表。此信息用于确定会话的最佳可用网络路径,确保连接成功。

ICE 候选者如何确定网络路径?

ICE 候选设备使用一个称为连接性检查的过程来决定使用哪条网络路径。这个过程包括在两个设备之间发送和接收信息,以测试连接质量和延迟。

一旦确定了最佳网络路径,设备就会通过 Internet 建立直接的对等连接。我们稍后将讨论的 STUN 和 TURN 服务器通常用于促进 ICE 候选者的交换,并在无法进行直接对等通信时建立连接。

通过使用 ICE 候选者找到最佳可用网络路径,WebRTC 能够穿越 NAT 和防火墙并连接用户,即使他们处于复杂的网络配置之后。

WebRTC 中的 ICE 和 SDP

ICE 服务器 WebRTC

ICE 服务器是 WebRTC 技术的重要组成部分,它与 ICE 协议一起工作以提供允许利用 WebRTC 的设备通过 Internet 相互建立连接的基础设施。

当设备被 NAT 或防火墙分隔时,ICE 服务器尤为重要。

ICE 服务器的类型

ICE 服务器有两种主要类型:

  1.  STUN 服务器,全会话遍历实用程序 NAT
  2. TURN 服务器,使用中继 NAT 完全遍历

STUN 服务器 

Internet 上的设备使用 IP 地址和端口号进行通信。为了使这种通信更快、更高效,每个设备都需要知道它们要连接的设备的 IP 地址和端口号。

在 WebRTC 中,设备利用 STUN 服务器来帮助它们找到它们自己的 IP 地址和端口号,它们可以用来进行通信。他们通过向 STUN 服务器发送和接收数据包来实现这一点,STUN 服务器返回包含其公共地址和端口号的数据包。

在某些情况下,设备位于隐藏其真实 IP 地址的防火墙和 NAT 后面,从而阻止了互联网上的点对点通信。这就是 STUN 服务器发挥作用的地方。因此,当一台设备试图通过互联网连接到另一台设备时,STUN 服务器会帮助它确定设备的公共 IP 地址和端口号,即使它位于防火墙或 NAT 之后。它还确定它是一个完整的克隆 NAT 还是一个地址受限的网络。

然后 STUN 服务器返回客户端可以用来建立对等连接的 IP 地址和端口号。这样,STUN 减少了延迟和带宽消耗,因为数据包现在直接在设备之间发送。此信息还有助于 ICE 协议确定用于通信的最佳通道。

然而,STUN 服务器不能用于更严格的 NAT 类型,称为对称 NAT。这就是 TURN 服务器派上用场的地方。充当第 4 层代理的反向代理服务器通常用于在 WebRTC 客户端和 TURN 服务器之间转发原始数据包,从而减少对额外硬件的需求。

TURN 服务器 

TURN 服务器充当 WebRTC 设备之间的中继,这些设备由于网络限制而无法建立直接的对等连接。例如,当两个设备都位于 NAT 或防火墙后面时,或者当一个设备位于不允许直接通信的对称 NAT 后面时。 

与 STUN 服务器相比,TURN 服务器会产生更高的成本,因为它们需要更多的资源并且需要更多的带宽来中继数据包。

为了降低 TURN 服务器的成本,可以使用地址限制的克隆 NAT 来代替完整的克隆 NAT。地址限制克隆 NAT 允许多个设备共享相同的公共 IP 地址和端口号,减少 TURN 服务器处理所需的连接数。 

但是,这可能会增加延迟并降低整体性能。硬件加速也是可用于提高 TURN 服务器性能和减少延迟的另一种选择,但实施起来也可能很昂贵。

ICE 服务器在 WebRTC 连接过程中的作用

ICE 服务器通过帮助设备发现并相互连接,在建立 WebRTC 连接方面发挥着关键作用。当两个设备尝试建立 WebRTC 连接时,每个设备都会将其 ICE 候选列表发送给另一个设备。如果两个设备之间无法建立直接连接,它们将使用 ICE 服务器中继媒体流并建立连接。

SDP协议

会话描述协议 (SDP) 是一种基于文本的协议,用于在互联网上的设备之间建立多媒体会话。它包括媒体流的详细信息,例如编解码器的类型、传输协议和其他相关信息。

SDP在WebRTC中的作用

SDP 通过使设备能够协商成功连接所需的媒体格式、传输协议和其他细节,在 WebRTC 中发挥着关键作用。当两个设备尝试建立 WebRTC 连接时,它们会交换 SDP 消息以协商它们要发送和接收的媒体流的详细信息。

SDP 的工作原理

当设备通过互联网建立连接时,它们需要让彼此知道它们想要发送和接收的媒体流类型、应该使用的传输协议、编解码器类型以及建立连接所需的任何其他信息. 所有这些信息都作为 SDP 发送和接收。

如果设备就连接要求达成一致,则建立点对点连接,并且设备可以以直接和标准化的方式发送和接收媒体流。此外,这确保了来自不同制造商的设备之间的兼容性。 

利益 ICE 和 SDP 技术释放实时通信的力量

ICE 和 SDP 是 WebRTC 中使用的两个重要协议。如上所述,ICE 负责促进设备之间通过 Internet 的连接,而 SDP 负责协商设备之间多媒体会话的参数。

对用户的好处

  1. 它使用户能够无缝地相互连接,而不必担心 NAT 或防火墙干扰连接。这意味着用户可以实时通信,无论他们身在何处或使用何种网络。
  2. 确保连接稳定可靠。提供高质量的通信体验,即使在具有挑战性的网络条件下也是如此。
  3. 使用户能够使用广泛的媒体格式和传输协议进行通信,使用户能够灵活地以最适合其业务需求的方式进行通信,无论是视频、音频还是通过消息传递。 

总体而言,ICE 和 SDP 在 WebRTC 中发挥着至关重要的作用。通过利用这些技术,能够为用户提供无缝且可靠的实时通信,而不受用户地理位置或通信渠道的影响。

结论

当谈到通过互联网在设备之间进行实时通信时,WebRTC 是最强大的技术之一。它利用 ICE 和 SDP 协议的组合,不仅可以建立安全连接,还可以确保整个会话中的通信稳定可靠。ICE 帮助设备穿越 NAT 和防火墙,而 SDP 帮助设备协商并商定多媒体会话的参数。

本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/webrtc/26198.html

(1)

相关推荐

发表回复

登录后才能评论