WebRTC stun turn ice简介

Webrtc在完成sdp交换后,理论上就可以进行p2p视频通讯了,然而实际上大部分客户端都位于一个或多个NAT之后,或者一些杀毒软件和防火墙还阻止了某些端口和协议,或者一些公司的代理等等,这样就会导致客户端无法知道自己的外网IP及端口,进而无法进行媒体数据传输,如下图:

                              (本图来自网络)

STUN:Session Traversal Utilities for NAT,NAT会话穿越应用程序,是一种网络协议,允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器之后的主机之间创建UDP通信。该协议由RFC 5389定义。客户端会向STUN服务器发送请求,之后,服务器就会向STUN客户端报告NAT路由器的公网IP地址以及NAT为允许传入流量传回内网而开通的端口。如下图:

                                   (本图来自网络)

TURN:Traversal Using Relays around NAT,是STUN/RFC5389的一个拓展,主要添加了Relay功能,在某些特定的环境下,NAT穿透可能会失败,这样就需要一种弥补方案,turn就是一种通过中继服务转发媒体数据,如下图:

                                          (本图来自网络)

ICE:Interactive Connectivity Establishment,它利用STUN和TURN服务器来帮助端点建立连接,使之在最适合的情况下工作,以弥补单独使用其中任何一种所带来的固有缺陷。

webrtc的ICE符合rfc5245标准协议。该协议的链接为:https://tools.ietf.org/html/rfc5245,每个终端都有一系列传输地址(包括传输协议、IP地址和端口)的候选,可以用来和其他端点进行通信。其中可能包括:直接和网络接口联系的传输地址,经过NAT转换的传输地址,即反射地址,TURN服务器分配的中继地址。

在rfc5245定义里面,实现ICE一共有六个步骤:收集候选地址、连通性测试、候选排序、冻结候选、检查安全性、ICE结束。webrtc结合实际应用,优化这六步为如下五步:收集候选地址、在信令通道中交换候选选项、执行连接检查、选定并启动媒体。

                                                                              (本图来自网络)

 

欢迎关注本人公众号:

或者微信搜索公众号:webrtc home

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值