lingyunhu

最近看了一篇老外在webrtcHacks上写的文章,主要介绍webrtc和whatsapp的传输机制,蛮好的,加上自己的理解进行总结,

希望对大伙有所帮助,转载请说明出处,原文来自博客园RTC.Blacker。

 

whatsapp的voip的传输机制用的是pjsip(webrtc的P2P机制冗余庞大一直被人诟病,所以有人就替换成了同样庞大的pjsip),下面是他们的对比:

从上图可知,whatsapp并没有采用ICE,只用到了STUN,不过他在建立连接的时候做了一个很有意思的改动:

建立连接前先通过Turn建立连接,等到P2P打洞成功后再将连接从turn切换为P2P,这样做的好处就是减少等待时间,增强用户体验,而且为将来的多方通话做了一个很好的扩展,原文如下:

"The most impressive thing I found is the optimization for a fast call setup by using a relay initially and then switching to a peer-to-peer session. This also opens up the possibility for a future multi-party VoIP call which would certainly be supported by this architecture."

 

抓包结果详见下图:

 

当然,webrtc也可以用变通的方式实现这种效果,详见:https://github.com/fippo/webrtc/commit/bc8a3ac137bf49795f2ed1487cdfdfab6451540b

 

另外如果对作者分析的Whatsapp的整个抓包过程感兴趣,详见:

https://webrtchacks.com/wp-content/uploads/2015/04/WhatsappReport.pdf

 

下面是我自己整理的ICE打洞过程截图:

 

最后,原文来自:https://webrtchacks.com/whats-up-with-whatsapp-and-webrtc/

 

分类:

技术点:

相关文章:

  • 2021-08-26
  • 2021-11-04
  • 2021-10-22
  • 2021-11-06
  • 2021-10-05
  • 2021-11-06
  • 2021-11-06
猜你喜欢
  • 2021-11-06
  • 2021-11-06
  • 2022-02-02
  • 2021-06-17
  • 2021-11-16
  • 2021-12-19
相关资源
相似解决方案