WebRTC音视频实时互动技术:原理、实战与源码分析
上QQ阅读APP看书,第一时间看更新

3.2.1 增加带宽

在众多的解决方案中,增加带宽的方案无疑是解决音视频实时通信服务质量的根本。如果用户的带宽足够大、质量足够好,甚至可以在200ms内传输2K分辨率的视频的话,那之前所说的实时传输的矛盾就都不存在了。

但实际上,很少有用户可以拥有如此好的带宽。即使有,在多方实时通信(如音视频会议、在线教育)时,单个用户带宽的增加对整个服务质量也起不到什么作用。因为多方通信属于典型的“木桶效应”,通信服务质量的好坏是由网络最差的那个用户决定的,即木桶中最短的那块板。因此,这里所说的增加带宽,指的是所有用户带宽的增加,而不是个别用户带宽的改善。接下来了解一下增加带宽的具体方法。

5G的落地肯定会使移动网络产生质的飞越,同时也会解决实时音视频通信中带宽与服务质量的矛盾。但5G所起的作用短时间内还不太乐观,因为即使5G落地了,让所有用户使用5G也是一个较长的过程:一方面,用户升级到5G需要更换新手机;另一方面,5G要达到全国覆盖也不是短时间内可以完成的。

除了等待5G提升网络能力这种被动的方法外,还有一些变相增加带宽的方案,分为客户端方案和服务端方案。

在客户端方案中,最典型的就是WebRTC支持的选路方案——它可以按优先级选择最优质的网络连接线路。该方法将在第6章中做介绍。

在服务端方案中,有三种可以间接提升带宽的方法,分别是:提供更优质的接入服务,保证云端网络的带宽和质量,更合理的路由调度策略。下面以图3.2为基础,详细介绍一下这几种提升网络带宽的方法。

图3.2 大规模实时流媒体服务框架图

提供更优质的接入服务,指的是图3.2中的❶,也就是“最后一公里”问题。用户在接入服务器时,如果可以提高用户终端接入的网络质量,就相当于提高了用户的网络带宽。

目前国内存在多家网络运营商,如联通、电信、移动、长城宽带、铁通等,因此国内的网络十分复杂。一般情况下,同类型运营商(如联通)的用户相互通信时,都不会遇到什么问题,但跨运营商(如联通与电信)的用户进行通信时,网络质量就很难得到有效保障。

解决这一问题的一般办法是,让用户连接同一地区、同一运营商的接入服务器,这样就可以有效保障用户与服务器之间的连接通道。如上海的电信用户在接入时,一定要选择一台位于上海的、电信的、负载最低的服务器接入。

保证云端网络的带宽和质量,指的是图3.2中的❷,即数据进入云端后,云内部的网络质量一定要好。因为云内部的带宽大小和质量是可以控制的,所以提升这部分的网络能力相对简单一些。最简单的办法是,可以购买优质的BGP网络作为云内部使用。但优质的BGP的费用也是比较高的。

更合理的路由调度策略,指的是图3.2中的❸。从图中可以看到,如果A与B两个用户要进行实时音视频通信,从A到B有很多路径可以选择,因此对于节点2如何选路是非常关键的。如果每个节点的选路(调度)都非常合理的话,那么A与B之间的通信质量就可以得到很好的保障。选路的基本原则是距离最近、网络质量最好、服务器负载最小的线路是最优质的线路。