概述
WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。
webRTC协议介绍
ice
交互式连接机构 (ICE)是一个框架,允许您的网络浏览器与同行连接。有许多原因,为什么从对等A到同行B的直升连接将不起作用。它需要绕过防火墙,防止打开连接,给您一个独特的地址,如果像大多数情况下,您的设备没有公共 IP 地址,并通过服务器中继数据,如果你的路由器不允许您直接与对等连接。ICE 使用 STUN 和/或 TURN 服务器来实现此目的,如下所述。
STUN
NAT 的会话横向公用设施 (STUN)是一个协议,以发现您的公共地址,并确定任何限制,在你的路由器,将阻止与同行的直接连接。
客户端将向 Internet 上的 STUN 服务器发送请求,该服务器将回复客户的公共地址,以及路由器 NAT 后面是否访问客户端。
NAT
网络地址翻译 (NAT)用于为您的设备提供公共 IP 地址。路由器将具有公共 IP 地址,连接到路由器的每个设备都将有一个私有 IP 地址。请求将从设备的私有 IP 转换为路由器的公共 IP,并具有独特的端口。这样,您不需要每个设备都有独特的公共 IP,但仍可以在互联网上发现。
某些路由器将限制谁可以连接到网络上的设备。这可能意味着,即使我们有 STUN 服务器找到的公共 IP 地址,也没有人能够创建连接。在这种情况下,我们需要转向转向。
TURN
一些使用 NAT 的路由器采用一种称为"对称 NAT"的限制。这意味着路由器将只接受您以前连接过的对等的连接。
使用 NAT 周围的中继进行横向(转)旨在通过打开与 TURN 服务器的连接并通过该服务器中继所有信息来绕过对称 NAT 限制。您将创建与 TURN 服务器的连接,并告诉所有对应方将数据包发送到服务器,然后转发给服务器。这显然伴随着一些开销,所以它只使用,如果没有其他选择。
SDP
会话描述协议 (SDP)是描述连接的多媒体内容的标准,如分辨率、格式、编解码器、加密等,以便在数据传输时两个对等可以相互理解。这在本质上是描述内容而不是媒体内容本身的元数据。
因此,从技术上讲,SDP 并不是真正的协议,而是用于描述设备之间共享介质连接的数据格式。
记录 SDP 远远超出了此文档的范围;然而,这里有一些值得注意的事情。
webRTC