栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

webrtc 代码走读六

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

webrtc 代码走读六

        一、呼叫流程图

 webrtc的ICE符合rfc5245标准协议。该协议的链接为:https://tools.ietf.org/html/rfc5245

        每个终端都有一系列传输地址(包括传输协议、IP地址和端口)的候选,可以用来和其他端点进行通信。其中可能包括:

        1)直接和网络接口联系的传输地址(host address)

        2)经过NAT转换的传输地址,即反射地址(server reflective address)

         3)TURN服务器分配的中继地址(relay address)

        虽然潜在要求任意一个主叫Client的候选地址都能用来和被叫Client的候选地址进行通信。但是实际中发现有许多组合是无法工作的。举例来说,如果主叫Client和被叫Client都在NAT之后而且不处于同一内网,他们的直接地址就无法进行通信。ICE的目的就是为了发现哪一对候选地址的组合可以工作,并且通过系统的方法对所有组合进行测试(用一种精心挑选的顺序)。
        在rfc5245定义里面,实现ICE一共有六个步骤:收集候选地址、连通性测试、候选排序、冻结候选、检查的安全性、ICE结束。webrtc结合实际应用,优化这六步为如下五步:收集候选地址、在信令通道中交换候选选项、执行连接检查、选定并启动媒体。

        1)实现收集候选地址核心函数:BasicPortAllocatorSession::DoAllocate。

 

        2)在信令通道中交换候选选项:AddIceCandidate

 

        3)  P2PTransportChannel::SortConnectionsAndUpdateState

 

         4)选定并启动媒体核心函数:P2PTransportChannel::OnReadyToSend

        

        5) P2PTransportChannel::SwitchSelectedConnection

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/730106.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号