WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(三)

阅读数:106 2019 年 11 月 30 日 22:31

WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(三)

iOS 端安装

通过打开“开发者选项”就可以使用 Network Link Conditioner 功能。

  • 数据线连接手机到 Mac 上,Xcode -> Windows -> Devices -> 选中当前手机设备,右键弹出

WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(三)

  • 菜单 -> 选择 Show Provisioning Profiles… 会弹出一个证书列表窗口

WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(三)

如果手机已经安装了必要的开发者证书,直接点击窗口中的 done 按钮即可。否则需要点击左下角的 + 号,把从网上下载下来的证书导入进去, 点击 done 按钮关闭窗口。

此时手机设置中就多了一个开发者选项,进入开发者选项可以看到 Network Link Conditioner 选项。

使用方法

NLC 的使用方法就简单多了,不需要用命令行。如果 NLC 中的配置不满足需求的话,可以手动添加更多的配置。在 Mac 端和 iOS 上,按照以下操作即可。

Mac 端

WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(三)WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(三)

iOS 端

WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(三)WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(三)

需要注意的是 interface 设置,当 iOS 通过共享 Wi-Fi 热点的方式作为接入设备的弱网控制机时,需要将 interface 设置为 Cellular。

对比与小结

WebRTC vs. Zoom 之外:WebRTC 的弱网模拟测试(三)

相对来讲,TC 的参数最为丰富,可以控制更多细节,能模拟出多种不同的网络情况,但操作太复杂,需要开发者熟悉 TC 命令及网络模型。NLC 最简单易操作,参数配置可以满足普通开发需求。

WebRTC 1.0 的重点是提供给开发者更多对媒体、数据通道的控制。而根据此前的提案 [6] 显示,下一版本的 WebRTC 将有可能使数据处理脱离主线程。使用 RTCDataChannels 传输数据,相比使用 WebSocket 会有更好的拥塞控制。

根据 WebRTCHacks 博主 Philipp Hancke 的分析 [7],Zoom 的 Web Client 并没有使用 WebRTC,客户端用 WebSocket 进行媒体传输,该方法类似于 WebRTC 中的 Turn/TCP。尽管有利于穿越防火墙,但在进行实时通信时,如果出现丢包,就会进行重传,最终导致积累延时。仅从这个角度看,下一个版本的 WebRTC 的方案更优于 Zoom。

我们在上文中也曾提到,WebRTC 服务器的策略配置开发是 QoE 的难点。所以,多人通信的质量不佳,是原生 WebRTC 应用最常被人诟病的问题。其实,声网的 Agora Web SDK 也是基于 WebRTC 开发而来的,并且基于原生 WebRTC 进行了多方面的优化。声网 Agora Web SDK 始终聚焦于通信质量的提升,优化至现在的版本,已经可支持 17 人的视频通话。我们针对 WebRTC 网关进行了多层面的优化,比如传输质量保障,对原生 WebRTC QoS 调优,针对场景差异做了不同的优化策略。

我们提供的是全球化的服务,覆盖了包括视频会议、在线医疗、在线教育、社交直播、社交游戏音视频、金融、IoT 等多种实时音频、视频通信场景。目前,Agora Web SDK 已经是全球商用服务中规模最大的基于 WebRTC 的实时通信 SDK。很多情况下 WebRTC 不会被考虑作为大频道解决方案。而 Agora Web SDK 现在已经支持百万级别并发的大频道通话。

参考资源

[1] WebRTC vs. Zoom – A Simple Congestion Test https://jitsi.org/news/a-simple-congestion-test-for-zoom/

[2] WebRTC vs Zoom. Who has Better Video Quality? https://bloggeek.me/webrtc-vs-zoom-video-quality/

[3] Ubuntu 官方文档:DHCP server https://help.ubuntu.com/community/isc-dhcp-server

[4] TC 命令的使用 http://tldp.org/HOWTO/Traffic-Control-HOWTO/index.html

[5] Augmented Traffic Control: A tool to simulate network conditions https://code.fb.com/production-engineering/augmented-traffic-control-a-tool-to-simulate-network-conditions/

[6] WebRTC NV proposal https://www.w3.org/2011/04/webrtc/wiki/images/5/5c/WebRTCWG-2018-06-19.pdf

[7] How Zoom’s web client avoids using WebRTC https://webrtchacks.com/zoom-avoids-using-webrtc/

本文转载自公众号声网 Agora(ID:shengwang-agora)。

原文链接:

https://mp.weixin.qq.com/s/fGT19EqNN3eP1IFhoOIV1A

评论

发布