互联网大概可以算是最近几十年人类最重要的发明之一。最早人们用互联网发送电子邮件,接着普及了网页浏览,后来又流行即时文字聊天,人们工作生活的方式在这写年里发生了巨大的变化。可是当人们想更进一步实现实时音视频通话时,却发现互联网有点不给力了。卡顿、掉线、延时太高等等,这些问题始终伴阻碍实时音视频通话的发展。而这根本上的原因是,互联网一开始并不是针对实时通信而设计的。

人们常把互联网比喻成“信息高速公路”,其实更确切的比喻应该是“信息公路网”。互联网就像现实中的路网一样交错复杂,有像连接两地的高速公路一样快速的骨干网,也有像是难走的崎岖山路一样糟糕的网络环境。而在互联网上传输数据就像是从一个地方开车到另一个地方一样。

现在我们就借这个比喻来解释一下互联网传输的三个非常重要的特点:延时、丢包、抖动。


假设我们现在有一百辆车从北京鸟巢开往上海东方明珠,并且每隔一分钟出发一辆。

  • 延时

“延时”指的是每辆车从鸟巢开到东方明珠花的平均时间。显然,车队走高速公路肯定要比走各种小公路快很多,而且从鸟巢出发沿着怎样的路线开上高速公路也有很大影响,万一堵在了三环可就要多花好几个小时了。所以这个值和车队选择的行驶路线有关。互联网传输也是一样的道理,需要传输数据的两点之间经常是有很多可选路径的,而这些路径的延时往往相差很大。

  • 丢包

“丢包”指的是有的车无法在有效时间内无法达到终点,甚至可能永远也到不了终点。有的车可能永远堵在北京的三环上了,有的车可能中途出了车祸。假如我们的一百辆车里有五辆车因为各种原因没能按时到达上海,我们这次车队传输的“丢包率”就是5%。是的,互联网传输也一样,它并不是百分百可靠的,总有数据无法按时传输到目的地。

  • 抖动

“抖动”指的是车子到达的顺序、间隔和出发时的差异。虽然我们的一百辆车在北京是等间隔的一分钟一辆出发的,但是它们到达上海时却并不是按顺序一分钟一辆到达的,甚至可能有晚出发的车比早出发的车先到的情况。互联网传输也一样,如果简单地按照收到的音视频数据顺序直接播放出来,就会出现失真的现象。

延时、丢包、抖动是互联网这个信息公路网无法避免的三个特点。以前电子邮件、网页浏览、文字聊天的场景下,这三个特点并不是太大的问题,毕竟人们可以接受电子邮件晚几分钟到达对方的邮箱。但在实时音视频通信的场景下,不要说几分钟,就算只有几秒钟的延迟,音视频交流的体验就会大打折扣。

声网Agora.io是怎么做的

为了解决这三个问题对实时音视频通信的影响,声网Agora.io以多种技术手段并用,建立了自己的虚拟通信网。我们仍然用前面车队的比喻,声网Agora.io的虚拟通信网就像是一个车队调度中心,指引车队沿着速度最快、路况最好的线路通行。

  • 就近接入

当车队从鸟巢出发的时候,调度中心首先给出一条从鸟巢通往高速公路入口的最优路径,让车队尽快离开拥挤的市区。同样的,声网Agora.io虚拟通信网根据用户所在地分配最近的接入点,让音视频数据包尽快到达快速的骨干网络,这就叫做“就近接入”。

  • 动态路由

当我们的车队上了高速公路后,理想情况下只要沿着最短路线向上海行驶就可以了。但现实情况是,在最短路线上可能会有路段在维修无法通行,会有路段车辆太多非常拥堵,会有路段收费站太多通行效率低下等等情况。调度中心会根据实时的全国路况,给车队规划高速公路上的行驶路径,保证车队以最快的速度到达上海的高速公路出口。同样的,骨干网络也会有线路暂时不可用,线路拥堵,跨运营商线路质量差等情况。声网Agora.io虚拟通信网会根据全球的主干网络状况,为需要传输的音视频数据包实时规划传输路径,这就叫做“动态路由”。

当车队沿着高速公路到达上海后,调度中心再次给出一条从高速公路出口通往东方明珠的最优路径。也即当数据沿着骨干网传输到对方的地区后,声网Agora.io虚拟通信网再次使用“就近接入”的技术让数据包尽快到达目标设备。

  • 丢包重传

“延时”的问题解决了,“丢包”怎么办呢?假设正好遇到上下班高峰,北京的路况非常糟糕,即使调度中心规划了最优的离开北京的线路,100辆车里也只有80辆按时到达了高速公路入口,“丢包率”达到了20%。在这种情况下调度中心的办法是,通知鸟巢再补发20辆车出来!即使这20辆车仍然有20%(4辆)无法离开北京,最终也能有总共96辆车驶上高速公路,最终的丢包率从20%降到了4%。这一技术在声网Agora.io虚拟通信网中被称为“丢包重传”。无论是从用户到接入点,还是我们的服务器之间,还是最终从接入点到用户,丢失的数据包都有机会通过重传机制得到及时的恢复。

由此,声网Agora.io虚拟通信网通过“就近接入”、“动态路由”等技术,有效降低了数据传输的延时,使得中美之间端到端传输的平均延时只有0.15秒;又通过“丢包重传”的机制对抗网络丢包,使得中美之间端到端的数据包有效到达率超过了99%。再加上声网Agora.io引擎内部专门的模块针对网络的“抖动”进行处理,互联网上实时音视频传输的三大难题得以解决。

通过这些硬性的技术手段,加上完备的报警系统、丰富的问题调查工具、详细的统计报表等软性的技术工具,声网Agora.io虚拟通信网为互联网用户提供了稳健可靠的实时音视频传输解决方案。

本文作者

龚宇华 声网Agora.io 资深移动开发专家

RTE开发者社区
647 声望966 粉丝

RTE 开发者社区是聚焦实时互动领域的中立开发者社区。不止于纯粹的技术交流,我们相信开发者具备更加丰盈的个体价值。行业发展变革、开发者职涯发展、技术创业创新资源,我们将陪跑开发者,共享、共建、共成长。