webrtc系列专题之trickle ice

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处。

WebRTC p2p 部分采用ICE框架,ICE框架包括stun,turn,实际使用webrtc开发音视频应用时遇到的一个问题是呼叫建立很慢,原因是ice过程耗费过多时间,客户端在发起呼叫时先与stun服务器通信获取 server reflexive 地址和relay 地址,加上local host地址和端口 构造三类ice candidate ,把这三类candidate 放到sdp 属性 (a=) ,完成这个动作后才实际发起sdp offer请求,接收者采用同样的过程,两边都完整收完对方的sdp后才开始p2p探测,
这中间时间浪费在所有candidate都获取后才发送,所以为了加速通话建立时间,把连通性检测的时间提前,方案叫trickle ice, 其思想是客户端一边收集candidate一边发送给对方,比如local candidate 不需要通过stun获取直接就可以发起,这降低了了连通性检测完成的时间,为了提高呼叫接通速度,webrtc 也引入了不同类型媒体(音频,视频)的多路复用功能,即共用一个udp端口,在sdp里面体现为 a=group:BUNDLE audio video

表明客户端支持audio和video rtp的多路复用。

时间: 2024-10-13 03:18:34

webrtc系列专题之trickle ice的相关文章

webrtc系列专题之移动平台 in-app 音视频通信

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. webrtc提供基于web的实时音视频数据互操作,但是webrtc同样可以以原生app的方式运行于移动平台,  webrtc底层是一套媒体框架,以c++实现,官方已经移植到移动平台,包括android,ios, 以平台对应的开发语言可直接开发,如ios平台又object c对应的api接口,但webrtc并没有定义客户端互通的信令部分,可以用sip, xmpp, websocket (socket io)

webrtc 之 sip trickle ice

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. webrtc 客户端建立通话的过程中通过交互 candidate实现nat穿越,如果这些交互的candidate在offer/anwser的sdp里面携带会导致通过建立时间很慢, 因为webrtc客户端需要和stun/turn服务器通信获取这些candidate,整个过程是block的,为提高通话建立速度,webrtc引入trickle ice,在交互offer, answer的过程中并行发送candid

VOIP 通信 NAT穿越系列专题

本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. 鉴于经常有人在QQ群(45211986)里问NAT穿越相关话题,本系列文章我将介绍NAT穿越相关内容,题目就叫VOIP  NAT穿透,没具体说SIP或者其他是因为VOIP包含信令 NAT和媒体的NAT,所以我将介绍这两部分,也是多数初学者容易混淆的内容,此系列专题将包括以下内容: 1.  NAT基本原理介绍及与VOIP关系 2  VOIP NAT穿越之SIP信令穿越 3. VOIP NAT穿越之媒体穿越

[C# 网络编程系列]专题九:实现类似QQ的即时通信程序

转自:http://www.cnblogs.com/zhili/archive/2012/09/23/2666987.html 引言: 前面专题中介绍了UDP.TCP和P2P编程,并且通过一些小的示例来让大家更好的理解它们的工作原理以及怎样.Net类库去实现它们的.为了让大家更好的理解我们平常中常见的软件QQ的工作原理,所以在本专题中将利用前面专题介绍的知识来实现一个类似QQ的聊天程序. 一.即时通信系统 在我们的生活中经常使用即时通信的软件,我们经常接触到的有:QQ.阿里旺旺.MSN等等.这些

[C# 网络编程系列]专题三:自定义Web服务器

转自:http://www.cnblogs.com/zhili/archive/2012/08/23/2652460.html 前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到我们想要的网页,这个过程中浏览器只是一个客户端,浏览器(应用层应用程序)通过HTTP协议把用户请求发送到服务端, 服务器接受到发送来的HTTP请求,然后对请求进行处理和响应

[C# 网络编程系列]专题四:自定义Web浏览器

转自:http://www.cnblogs.com/zhili/archive/2012/08/24/WebBrowser.html 前言: 前一个专题介绍了自定义的Web服务器,然而向Web服务器发出请求的正是本专题要介绍的Web浏览器,本专题通过简单自定义一个Web浏览器来简单介绍浏览器的工作原理,以及帮助一些初学者揭开浏览器这层神秘的面纱(以前总感觉这些应用感觉很深奥的,没想到自己也可以自定义一个浏览器出来),下面不啰嗦了,进入正题. 一.Web浏览器的介绍 Web浏览器是指可以显示Web

[C# 网络编程系列]专题十:实现简单的邮件收发器

转自:http://www.cnblogs.com/zhili/archive/2012/09/24/2689892.html 引言: 在我们的平常工作中,邮件的发送和接收应该是我们经常要使用到的功能的.因此知道电子邮件的应用程序的原理也是非常有必要的,在这一个专题中将介绍电子邮件应用程序的原理.电子邮件应用程序中涉及的协议和实现一个简答的电子邮件收发器程序. 一.邮件应用程序基本知识 1.1 电子邮件原理及相关协议 说到电子邮件的原理,其实和我们现实生活中寄邮件和寄包裹是一样的原理的.就让我们

[.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现

一.引言 前面介绍的所有专题都是基于经典的领域驱动实现的,然而,领域驱动除了经典的实现外,还可以基于CQRS模式来进行实现.本专题将全面剖析如何基于CQRS模式(Command Query Responsibility Segregation,命令查询职责分离)来实现领域驱动设计. 二.CQRS是什么? 在介绍具体的实现之前,对于之前不了解CQRS的朋友来说,首先第一个问题应该是:什么是CQRS啊?你倒是详细介绍完CQRS后再介绍具体实现啊?既然大家会有这样的问题,所以本专题首先全面介绍下什么是

VOIP 通信 NAT穿越系列专题之NAT基本原理介绍及与VOIP关系

本文是VOIP通信NAT穿越系列专题的第二篇, NAT 是一种在IP分组通过路由器或防火墙时重写源IP地址或/和目的IP地址的技术,这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问因特网的私有网络中.20世纪90年代中期,NAT是作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来的.家庭和小型办公室的路由器一般都集成了防火墙,DHCP服务器和NAT功能. NAT穿越是广泛用于P2P领域的通信方式.在视频会议过程中,NAT穿越也在内外网消息通信中起到了至关重要的作用,平台