前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WebRTC直播技术(二)-ICE/STUN/TURN

WebRTC直播技术(二)-ICE/STUN/TURN

作者头像
IMWeb前端团队
发布2019-12-03 15:58:19
2.1K0
发布2019-12-03 15:58:19
举报
文章被收录于专栏:IMWeb前端团队

本文作者:IMWeb jaychen 原文出处:IMWeb社区 未经同意,禁止转载 上一篇 WebRTC直播技术(一)-初探WebRTC(https://cloud.tencent.com/developer/article/1009489) 大概介绍了WebRTC的基础知识以及sdp交互的过程。这篇文章主要讲解WebRTC连接建立的过程。

首先要掌握WebRTC连接建立过程,需要掌握几个知识点: NAT, ICE, STUN, TURN, DTLS等。如果之前有接触过P2P相关技术的同学可能就会比较容易理解。WebRTC是一个基于浏览器与浏览器之间的实时音视频通话方案,那么有于公网ip地址有限的问题,用户的浏览器常常位于NAT后,那么建立连接就涉及到了打洞技术。

NAT

由于当前使用的IPV4地址的长度限制只有32位,大多数终端都没有一个可以在互联网上可见的唯一IPV4地址。NAT是作为一种解决IPv4地址短缺以避免保留IP地址困难的方案,在IP数据包通过路由器或防火墙时重写来源IP地址或目的IP地址。

STUN

为了进行P2P通信,会话参与双方都需要知道其对等端的IP地址和指定的UDP端口。因此,在WebRTC通信建立之前,需要进行一定数量的信息交换。

每个对等端需要使用一个STUN服务器来探测他们的公共IP地址,这个IP在连接建立的时候会被ICE框架所引用。STUN服务器是通常是可公开访问的,WebRTC应用可以自由访问。

TURN

TURN服务指的是中继型NAT遍历服务器,其地址是一个公共ip地址,用于转发数据包给对端浏览器。当2个对等端因为NAT类型而无法建立连接时(当遇到对称型NAT会导致打洞失败),才需要使用中继服务器。

ICE: 交互式连接建立(Interactive Connectivity Establishment)

ICE是一种标准穿透协议,利用STUN和TURN服务器来帮助端点建立连接。WebRTC当通过信令server交换完sdp, candidate后,之后依靠ICE框架在2端之间建立一个通道。

ICE的过程主要分为5步:

  • 1, 收集候选传输地址
  • 2, 在信令通道中交换候选选项
  • 3, 执行连接检查
  • 4, 选择选定的对并启动媒体
  • 5, 心跳检测

候选传输地址

候选地址是后续可用于接收媒体以建立对等连接对ip地址和端口。地址是ICE自动通过在主机网卡,STUN服务或中继服务,对端STUN请求包获取。 ICE候选地址类型:

交换候选项

各端将手机到对候选地址通过信令通道交换,一旦交换后就会对他们进行排序,优先级排序依次是:主机候选地址>反射地址>中继后选项。接着对本地对候选项跟接收到的候选进行匹配成对。

STUN连接检查

当某一端的ICE代理接收到了候选项并排序匹配成对后,就开始进行连通行检查。

连通性检查就说通过对端ip端口发送STUN binding quest包以及是否接收到返回对STUN binding response包来确认。

当其中一对候选地址检测通过后,即选定该地址对。 2个浏览器即用选定对候选对地址发送媒体。

当连通性检测完成后,WebRTC会开启DTLS握手,用于协商出SRTP中加密RTP包的对称秘钥。该过程称为DTLS-SRTP,保证了数据传输的安全性。至此,WebRTC的连接正在建立并可传输数据。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NAT
  • STUN
  • TURN
  • ICE: 交互式连接建立(Interactive Connectivity Establishment)
相关产品与服务
NAT 网关
NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档