WebRTC[27]-WebRTC candidates

目录

前言

正文

四种candidate类型

整个ICE建立流程的五个步骤

一、网络嗅探,收集candidate地址

二、交换候选地址

三、执行连接检查

四、启动数据收发

五、动态检测IP地址变化


前言

ICE的全称是Interactive Connectivity Establishment(交互式连通建立方式),它是基于offer/answer模式解决NAT穿透的协议集合,它综合利用现有的STUN,TURN等协议获得更加有效的方式来建立会话连接。 其中,连接建立的依据就是本段和远端的candidates对儿,它们是ICE通讯的基础。

《WebRTC工作原理精讲》系列-总览

正文

WebRTC利用ICE的穿透能力,实现端到端的连接。但是连接的建立,就需要公网的IP地址,所以ICE建立过程中找到匹配本端和远端的IP地址对儿就显得非常关键。

一般情况下,WebRTC通过STUN遍历所有的会话session,就能够找到可用的连接地址。如果网络状态非常糟糕,STUN不能满足需要,就需要中继NAT服务器TURN寻找候选的备用地址,这种情况下,一般是可以成功的,媒体连接能够正常建立。

四种candidate类型

接下来,我们介绍一下ICE建立过程中的candidate候选备用地址。

WebRTC中定义了四种candidate类型,分别是host candidates(host)、server reflexive candidates(srflx)、peer reflexive candidates(prflx)、and relayed candidates(relay)。其中,srflx、prflx是通过STUN或者TURN获取的,relay是通过TURN获取的。

Candidate在列表中的位置越靠前越重要,接下来分别看一下四个candidate。

host:主候选项,表示一个真正的ip地址,可以直接用来和对端通讯。

srflx:一个服务器自反候选项,其中的ip表示由STUN服务器分配的一个中间地址,以匿名的方式与对端通讯。

prflx:一个peer自反候选项,其中的ip是一个由STUN服务器分配的中间地址,以匿名的方式与对端通讯。

relay:中继候选项,其中的ip是由TURN服务器获得的,可以用于在两个对等端之间转发媒体的地址。

也可以参考下图中的描述:

编辑

整个ICE建立流程的五个步骤

一、网络嗅探,收集candidate地址

candidate候选地址是用来建立媒体收发的对等的IP地址和端口

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

WebRTC工作原理精讲 文章被收录于专栏

WebRTC 作为当下最热门的实时音视频通讯框架,涉及非常多的过程,比如采集、编码、组包、发包、传输、收包、丢包重传、解封装、解码、音视频同步、渲染等,同时还包括很多功能特性,比如ANS、AGC、AEC,REMB、GCC、CNG、FEC、PLI、SVC等,需要一点点深入理解其中的奥秘。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务