编者按: 自疫情开始席卷全球,人们对音视频的需求急剧上升。在需求上升的过程中,人们对网络延迟、音画质量的要求也在不断提高。LiveVideoStackCon 2022 音视频技术大会上海站有幸邀请到了七牛云资深开发工程师——于佳老师为我们讲述QRTN的网络架构是如何提升用户体验度的,以及分析其中的QRTP协议是如何对音画质量进行提升的。
文/于佳
整理/LiveVideoStack
大家好,我是于佳,来自七牛云开发团队,我今天给大家分享的主题是七牛云QRTC自研传输协议对音画质量的提升。今天的分享大概分成三个环节。首先我会以一个工程师的视角去给大家介绍和解析一下七牛云QRTC的实时转发网络 QRTN 的整体架构,然后进而带出今天的主题,也就是QRTN内部的媒体转发协议 QRTP 是如何对整个音画质量进行提升的。第三个环节会去结合实践经验和落地的场景,分享一些QoE提升的经验。
01、QRTC 实时媒体转发服务架构
1.1 网络传输对QoE的影响
整个流媒体从生产到消费,我大概简化为七个环节。其中的三个环节:发送、转发和接收,会与网络相关。大家都知道网络环境是一个很复杂的环境,相比于采集、编码、解码和渲染,它的环境更加复杂,更加的不可控。
由于网络环境造成QoE的下降,是我们日常生活中经常接触到的。比如我们经常感觉到在消费流媒体的时候,有卡顿、延迟和马赛克的现象。其实去溯源的话,多数都是因为网络的拥塞、丢包、乱序和抖动,从而导致了QoE的下降。所以接入到一个好的实时转发网络,是提升终端用户QoE体验的一个必要的环节。那一个好的RTC转发网络它应该具备哪些特点?我大概归纳了四个点。
1.2 面向QoE的RTC转发网络应具备的条件
以上这四个点是我总结出来的,可能不全,但是每一个都很有代表性。首先,节点覆盖会考虑成本还有用户分布等因素,但是在理想情况下肯定是越多越好。当然,节点覆盖的增多也会增加系统复杂度,加大了管理的难度。但是一个好的RTC的转发网络一定是节点覆盖很全面的,包括主要的省市、主要的网络供应商,还有海外的主流国家都是必须要有覆盖的。
第二个点是延迟。实时媒体转发网络相对于传统的CDN分发,有一个特点就是低延迟。它对延迟是非常敏感的。延迟大概分成两个层面,一个是接入延迟,一个是转发延迟。第二部分将分享的QRTP协议,就是去提升转发延迟的。
第三点高可靠是作为服务必须要具备的能力,体现在容灾能力、快速扩容能力,以及对故障的隔离能力。
最后一个是数据量化。数据量化是在把整个框架搭建好之后,才会去考虑的一个事情,但是它相对来说非常重要。为什么重要呢?因为数据在整个系统中,有三个层面的作用。第一个层面是数据可以为用户通话质量调查,还有日常的排障提供一个有力的依据。然后第二个层面,网络中产生的大量数据,可以帮助我们去提前发现转发节点、接入节点的一些故障和一些不利因素,从而进行预判并规避风险。数据使用的第三个层面,就是当拥有大量的数据之后,这个数据可以通过训练模型和一些合理化的清洗以及处理之后,去反馈给系统,对整个网络形成一个强反馈的机制,然后让系统更加稳定。
针对以上四个方面,整个QRTN网络也在不断地迭代,不断地优化。
1.3 QRTN转发网络演进
这里我大概将 QRTN 的演进简化为三个阶段,包括:单点转发、分布式转发和智能分发。
单点转发比较简单,现在很多开源社区,在实现了整个WebRTC协议栈之后,一般都会去做这种单点转发的 SFU 来作为用户体验的一个接入点。单点转发的缺点也是比较明显的,比如单点转发去作为一个对外服务的话,它的容灾能力、承载能力,还有地域覆盖能力都会存在问题。但是由于它部署简单,所以作为功能验证的方式还是非常好的。
我们在内测阶段使用的是单点转发的方式,而在公测阶段,就进化到分布式转发的方式了。分布式转发就是让媒体在内部构建的实时分发的网络下去传输,这样可以降低整个端到端的延迟,并且也可以多点协同,有很强的容灾能力。但是分布式转发发展到一定的阶段之后,系统会变得非常复杂。首先是内部的分发路径,我们之前是基于经验去调整的,所以在管理上难度会有所提升。在结合分布式转发这些局限之后,我们又进一步迭代到智能分发阶段。下面我会结合某些点去讲我们是如何去做智能分发的。
1.4 QRTN转发服务架构
我把QRTN整个网络抽象成四种类型的节点。这个是抽象的,因为可能具体的服务或者节点不是这样。抽象出的四种节点包括:接入节点、转发节点、调度节点和控制节点。这四种类型的节点分别有不同的作用,然后有机地构成了整个QRTN的转发网络。
首先接入节点是地域全覆盖的用户接入节点。转发节点负责将所有的接入节点进行连接,在转发节点内部进