WEBRTC源码阅读 1

流程

 相关的流程在许多博客和官网上都能找到。简单来说,要通信的两端,每端有各自的媒体流、媒体轨和网络信息,它们通过WebRtc提供API,解决两个主要问题:

  1. 两端的IP可能隐藏在NAT后面,所以需要做NAT穿透,用到的协议有STUN或TURN。
  2. 两端需要进行媒体流信息协议的匹配,具体来说,可能一个媒体流对应一个媒体轨,也可能一个媒体流融合了多个媒体轨等复杂情况,所以两端应当需要“协商”决定。
     所以,WebRtc引入了SDP作为信令,其中包含了网络信息和媒体信息,每端先根据自身情况,设定自身信息(SetLocal),再通过信令服务器,获得对端信息,并设置对端信息(SetRemote),最后建立p2p连接。
    在这里插入图片描述

重要的定义

1. SDP(Session Description Protocol)

 根据名字,可以直接将SDP翻译成“描述会话的协议”。那么什么是会话呢——一次电话、一次视频传输等都是一次会话,而要想完成上述功能,需要下面的信息:

  1. 两个通信媒介的网络传输地址
  2. 多媒体数据的传输格式
  3. 其他辅助信息

  这些信息都需要第三方(服务器)帮助协商,协商完毕后就可以完成P2P的连接。图中的Answer和Offer都属于SDP,它们的具体分析会在后面的文章阐述(也不知道什么时候能看到)。

2. ICE(Interactive Connectivity Establishment)

 英文定义:ICE is a technique used in computer networking to find ways for two computers to talk to each other as directly as possible in peer-to-peer networking.在WebRtc中使用STUN、TURN协议进行传输,它包含传输的地址和SDP协议(这儿的传输地址是指候选地址,见下面的ICE Candidate)。

3. ICE Candidate

 一共有4种:

  1. 本机上的地址(host),若没有NAT,理论上该地址可以直接作为P2P的一端。
  2. STUN 看到的客户端地址——srlx
  3. TURN 看到的客户端地址——relayed
  4. 对端地址 prflx
     不断匹配两端的候选地址,直到他们能够直接互通。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值