WebRTC 媒体中继服务器

媒体中继服务器是 WebRTC 中一种常用的 NAT 穿越方法,用于建立点对点通信和交换媒体。为了了解媒体中继服务器的使用,让我们来看看什么是 NAT 以及我们在创建点对点连接时面临的问题。

WebRTC 媒体中继服务器
媒体中继服务器的示意框图

NAT 和 NAT穿越

网络地址转换器(NAT) 允许多个设备通过单个公共 IP 地址访问互联网。

  • 要访问互联网,需要一个公共 IP 地址,但我们可以在外部网络中使用私有 IP 地址。
  • 当数据包穿过本地(内部)网络外部时,NAT 会将该本地(专用)IP 地址转换为全局(公共)IP 地址。当数据包进入本地网络时,全局(公共)IP 地址将转换为本地(私有)IP 地址。

NAT/防火墙问题

防火墙:防火墙只允许来自互联网的某些数据包通过,但前提是来自 LAN(局域网)的主机必须先通过防火墙发送数据包。

网络上的每个数据包都有五个关键的 TCP/IP 信息元组:

(源 IP)、(源端口)、(目标 IP)、(目标端口)、(传输协议(TCP/UDP/SCTP))。

一般来说,当互联网上的任何数据包试图到达 LAN 内的主机时,NAT/防火墙设备就会阻止数据包通过,这就是防火墙。

这就产生了一个问题,因为如果没有数据包能从互联网到达 LAN 上的主机,WebRTC 和其他任何基于 IP 的通信都将无法运行。

问题

  • 虽然客户端-服务器通信通过 NAT/防火墙运行良好,但它会对点对点通信造成严重破坏。
  • 点对点通常通过打开端点应用程序或侦听主机操作系统上的特定 IP:端口来工作。
  • 在这种情况下,NAT/防火墙设备的参与会导致点对点通信的严重失败。这是相当常见的 NAT/Firewall 行为,它不会给大多数客户端/服务器通信带来麻烦。

NAT穿越

  • NAT 穿越是一种为 NAT 后面的设备创建网络连接的方法。流行的NAT技术:打洞,UDP打洞,TCP打洞,ICE,使用媒体真实服务器,如STUN服务器和TURN服务器。

在 WebRTC 中,我们使用第三方 ICE、STUN 和 TURN 服务器进行 NAT 穿越,以建立 p2p 连接。交互式连接建立(ICE)是一种用于网络地址转换器(NAT)穿越的协议。

WebRTC 媒体中继服务器
媒体中继服务器的功能模块

媒体中继服务器包括网络接口。网络接口有一个分配的服务器网络地址,即服务器的 IP 地址,以及一个或多个与服务器网络地址相关联的物理端口。

服务器包括以下功能模块,每个功能模块代表通过在处理器上执行控制代码的各自部分而实现的各自功能 资源分配器,包括重新分配模块;媒体中继模块;会话标识符分配器;以及验证模块,显示为包括消息完整性验证模块。

服务器的存储器被配置为实施端口复用数据库 DB,资源分配器和媒体中继模块可访问该数据库。

资源分配模块可访问数据库 DB 以对其进行更新,媒体中继模块可访问数据库 DB 以至少读取其中存储的数据。数据库DB保存由资源分配模块创建和维护的多个会话数据块(会话)。

媒体中继模块在网络端点之间中继媒体流。数据库 DB 与端口相关联,因为数据库 DB 中的会话决定了媒体中继模块应如何中继通过任一端口接收的媒体流,尤其是这些媒体流应转发到哪里。

资源分配器与验证器和完整性验证器通信耦合。资源分配器和会话 ID 生成器可通过网络接口(例如通过其中一个端口或通过网络接口的另一个端口)向网络发送和接收数据。会话的创建以及在某些情况下的后续处理至少在一定程度上取决于验证器的操作,特别是完整性验证器的操作。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论