WebRTC协议简介

一、ICE

交互式连接建立(ICE)是允许您的Web浏览器与对等方连接的框架。 从对等A到对等B的直接连接根本无法工作有很多原因。 它需要绕过防火墙,以防止打开连接;如果在大多数情况下,您的设备没有公用IP地址,则为您提供一个唯一的地址;如果您的路由器不允许您直接与对等方连接,则需要通过服务器中继数据 。 ICE使用STUN和/或TURN服务器来完成此操作,如下所述。

 

 

二、STUN

NAT的会话遍历实用程序(STUN)(首字母缩写词为缩写)是一种协议,用于发现您的公共地址并确定路由器中可能阻止与对等方直接连接的任何限制。

客户端会将请求发送到Internet上的STUN服务器,服务器将使用客户端的公共地址以及客户端是否可以通过路由器NAT进行访问进行回复。

WebRTC协议简介_第1张图片

 

 

三、NAT

网络地址转换(NAT)用于为您的设备提供公共IP地址。 路由器将具有公用IP地址,并且连接到路由器的每个设备都将具有专用IP地址。 请求将通过唯一端口从设备的专用IP转换为路由器的公共IP。 这样,您无需为每个设备都使用唯一的公用IP,但仍可以在Internet上找到它。

某些路由器将限制谁可以连接到网络上的设备。 这可能意味着即使我们拥有STUN服务器找到的公共IP地址,也没有任何人可以创建连接。 在这种情况下,我们需要转向TURN。

 

 

四、TURN

一些使用NAT的路由器采用了称为“对称NAT”的限制。 这意味着路由器将只接受来自先前连接的对等方的连接。

使用围绕NAT(TURN)的中继进行遍历旨在通过打开与TURN服务器的连接并通过该服务器中继所有信息来绕过对称NAT限制。 您将与TURN服务器建立连接,并告诉所有对等方将数据包发送到服务器,然后将其转发给您。 显然这会带来一些开销,因此仅在没有其他选择时才使用。

WebRTC协议简介_第2张图片

 

 

五、SDP

会话描述协议(SDP)是用于描述连接的多媒体内容(例如分辨率,格式,编解码器,加密等)的标准,以便一旦数据传输,两个对等方就可以相互理解。 从本质上讲,这是描述内容的元数据,而不是媒体内容本身。

从技术上讲,SDP并不是真正的协议,而是一种用于描述在设备之间共享媒体的连接的数据格式。

记录SDP远远超出了本文档的范围。 但是,这里有几件事值得注意。

1、结构

SDP由一行或多行UTF-8文本组成,每行以一个字符的类型开头,后跟等号(“ =”),然后是包含值或描述的结构化文本,其格式取决于类型。 以给定字母开头的文本行通常称为“字母行”。 例如,提供媒体描述的行的类型为“ m”,因此这些行称为“ m行”。

2、更多关于SDP

要了解有关SDP的更多信息,请参见以下有用的资源:

  • 规范: RFC 4566: SDP: Session Description Protocol
  • IANA registry of SDP parameters

 

你可能感兴趣的:(WebRTC,webrtc)