前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RTC @scale 2024 | 如何提升国际通话质量

RTC @scale 2024 | 如何提升国际通话质量

作者头像
用户1324186
发布2024-04-26 14:48:25
1100
发布2024-04-26 14:48:25
举报
文章被收录于专栏:媒矿工厂媒矿工厂

来源:RTC @scale 2024 标题:Improving international calls 演讲者:SAISH GERSAPPA,YI ZHANG 视频链接:https://atscaleconference.com/videos/improving-international-calls/ 内容整理:桂文煊 Meta拥有一些世界上使用最广泛的通话产品:WhatsApp、Messenger、Instagram。在Meta的通话应用程序中,每五次通话中就有一个是国际通话,随着世界变得更加互联,国际通话的数量只会增加。进行国际通话比以往任何时候都更加经济和便捷,但通话质量的提高却相对滞后。国际通话涉及的更长距离转化为更多的网络跳转,这会导致诸如更高的延迟、数据包丢失和抖动等问题。这些问题以对话延迟、视频冻结、音频卡顿和音视频同步问题的形式呈现给用户。此外,国际通话中涉及的高延迟降低了旨在提高通话质量的算法的有效性。因此,国际通话质量不仅面临更多的挑战,而且这些挑战解决起来也相当复杂。Meta去年大部分时间都在努力提高Meta旗下应用程序国际通话的质量。在这篇博客文章中,我们将描述我们如何重新设计了通话中继,以优化国际通话,并解决了一对一和群组通话的问题。

中继通话基础

通话几乎完全由音频和视频数据包组成,这些数据包在通话参与者之间交换。许多连接到互联网的设备都在网络地址转换(NAT)单元后面,这可能会阻止它们直接与其他设备通信。这就需要有一个“中间人”——一个通话中继器——来帮助在通话参与者之间中继媒体数据包,如图1所示。

图1 一对一通话

通话中继器位于中间,充当通话参与者之间的代理。在一对一的音频通话中,每个参与者发送一个流并接收一个流;而在视频通话中,由于音频和视频被编码为不同的流,相同的参与者发送两个流并接收两个流。

图2 群组通话

在群组通话中,流的数量显著增加,如图2所示。每个参与者只发送一到两个流,但接收到的进入流要多得多。

中继器的网络适应性

中继器处于有利位置,因为它处理通话中的所有媒体数据包,因此不仅可以简单地中继媒体,还可以通过检测每个参与者的某些网络条件,然后调整媒体流以最适合这些条件,从而在提高通话质量方面发挥积极作用。

大多数基于IP的语音应用程序都建立在实时传输协议(RTP)及其伴随协议——实时传输控制协议(RTCP)之上,其中应用程序严重依赖RTCP通过对等反馈来检测和解决网络拥塞。如果中继器只扮演被动角色,RTCP反馈流将端到端流动,如图3所示。

图3 端到端RTCP

可以通过对中继服务器进行一些修改来改进这一点,使其在反馈过程中扮演更积极的角色。我们可以通过将端到端的反馈机制分解为hop-by-hop的反馈机制来实现这一点,其中RTCP反馈在中继服务器和客户端之间发送和接收,如图4所示:

图4 hop-by-hop的反馈机制

这种hop-by-hop反馈机制允许中继在大约一半的往返时间内传输和处理RTCP反馈。

这使得:

  1. 反馈更快,从而更快地计算带宽估计。
  2. 更快地对数据包丢失和网络拥塞做出反应,例如数据包重传、前向纠错(FEC)、调整发送速率等。

以下展示了一个例子,说明中继器如何帮助处理下行数据包丢失的问题。

图5 数据包丢失

图5展示了一个在中继之后被丢弃的数据包。这被称为“下行数据包丢失”,因为这是中继的下游。

图6 源端重传

在普通情况下(如图6所示),BoB会检测到一个丢失的数据包并生成一个否定确认(NACK),然后通过中继将其发送给Alice。这将导致Alice重新传输该数据包。这被称为“源端重传”。

图7 中继器重传

然而,中继器可以更智能,并可以优化这种交换。如果中继器在转发之前缓存数据包,它就可以截取Bob的NACK(否定确认),并重新传输缓存的数据包。这被称为“中继器重传”(如图7所示)。如果中继器与Alice和Bob的距离相等,这样就能将重传时间减少一半!

同样地,中继器也可以处理上行数据包丢失的问题,如图8所示:

图8 上行数据包丢失

这个场景说明了数据包在到达中继器之前就被丢弃了。这被称为“上行数据包丢失”。在正常情况下,Bob会注意到丢失的数据包并生成触发重传的NACK(否定确认)。

然而,中继器能够监控数据包序列号并识别出丢失的数据包。中继器不必等待Bob发送NACK,而是可以代表Bob生成一个NACK,导致Alice重传数据包,我们在下面的图9中可以看到。

再次强调,如果中继器与Alice和Bob的距离相等,重传过程将在一半的时间内完成。

图 9 中继器生成的NACK,源端重传

尽管这些技术也适用于国际通话,但它们的效率要低得多。在国际通话中,Alice和Bob之间的距离要远得多(如图10所示),因此即使到位于中间的中继器的延迟也可能相当高。

图10 国际通话中增加的网络距离

数据包在接收端到达时会有显著的延迟。如果丢失了一个数据包,接收端检测到它需要更长的时间,反馈到达中继器也需要更长的时间,最终,重传的数据包回到接收端也需要更长的时间。

因此,总体上数据包传输的效率要低得多。对其他网络条件(如拥塞和带宽)的测量也会更加延迟,因此对这些条件变化的反应也会延迟。

所有这些都使得国际通话更容易受到数据包丢失、网络拥塞和带宽波动的影响。

新的路由架构:一对一通话

为解决这个问题,Meta重新设计了路由架构。Meta做出了一个重大改变——在通话间增加了一个中继器,这样每个数据包都会经过两个中继器(如图11所示)。

不再选择一个与两个用户等距离的中继器,而是选择每个用户最近的中继器。这种新的路由架构被称为“跨中继路由”。

图11 跨中继路由

乍一看,这似乎使问题变得更糟。确实,每个跳数都会增加延迟,因此整体延迟实际上可能会更高。

然而,跨中继路由可以显著提高网络自适应算法的效率,以此解决下行数据包丢失的问题。

图12 跨中继路由中的下行数据包丢失

由于现在每个数据包都经过两个中继器,因此两个中继器都有机会缓存该数据包。当Bob报告丢失了一个数据包时,离他最近的中继器——在这种情况下是中继器2——可以重新传输该数据包(见下图13)。

图13 使用跨中继路由的中继器重传

由于选择了离Alice和Bob最近的中继器——在这种情况下,让假设从Bob到中继器2的延迟是端到端延迟的20%——这意味着重传时间将减少80%。

这也适用于上行数据包丢失(见下图14)。

图14 使用跨中继路由的上行数据包丢失

在这种情况下,中继器1可以监控丢失的数据包并生成NACK,再次将重传时间缩短80%(如图15所示)。

图15 通过跨中继路由的中继器生成NACK

但是如果数据包在网络路径中最长的部分——中继器1和中继器2之间丢失,会发生什么?

Meta拥有连接全球中继器集群的高质量网络(见图16)。这些网络比公共互联网更稳定,性能更高。这些链路不仅有助于降低数据包丢失、网络拥塞和抖动的情况,还可以减少延迟。

图16 Meta全球中继器和主干网络的示意图

因此,通过在中继器1和中继器2之间使用质量更高的网络,显著降低了通话网络路径最长部分的数据包丢失几率。

使用两个中继器进行网络适应不仅有助于从数据包丢失中恢复;还有许多其他算法,如带宽估计和拥塞检测,可以调整以更好地与两个中继器配合工作。让这些算法更接近用户运行,可以大大减少检测和解决网络状况所需的时间。

新的路由架构:群组通话

群组通话对于国际通话提出了更多的挑战:

  1. 一个单一的国际群组通话可能有来自两个、三个甚至更多地区的参与者,这大大增加了复杂性。
  2. 为通话分配更多的中继器可能会有所帮助,但分配太多会使系统和算法过于复杂。为通话分配多个中继器需要更高级的算法。
  3. 在群组通话中,每个参与者发送一个数据流,但接收多个数据流。这增加了下行链路拥塞的可能性,需要对拥塞做出更快的反应并拥有更好的拥塞控制机制。

可以将跨中继架构扩展到群组通话,但为此需要施加一些限制以控制架构的复杂性:

  1. 选择离最终用户更近的中继器是有益的,但需要限制涉及的中继器数量,以限制分布式系统带来的额外复杂性。
  2. 需要一个中央中继器,通过它传输所有数据包(见图17)。这确保了有办法为通话做出集中决策,并防止增加中继器与许多其他中继器通信的复杂性。
  3. 在大多数情况下,中继器和中央中继器之间通过主干网络的网络链路是稳定可靠的,但仍然需要考虑这些链路上的网络拥塞和抖动。

图17 数据包的中央中继器

中央中继器拥有一个带宽分配(BWA)模块,它为每个端点的上行链路和下行链路运行集中的BWA算法,并将分配结果通知给中继服务器,以便用于更好的拥塞控制。

离用户更近的中继器采用网络自适应技术,如上行链路/下行链路带宽估计、音频复制、打包器和数据包缓存。将网络自适应特性推向更接近用户的位置,可以显著提高群组通话质量,特别是对于国际通话。

结论与展望

使用跨中继架构进行一对一 WhatsApp 通话,在延迟方面取得了显著的改进,同时也减少了数据包丢失。Instagram 和 Messenger 为所有群组通话使用这种架构,并在延迟、比特率和数据包丢失方面观察到了显著的改进。

观察到的结果包括:

  1. 在国际通话中,反馈往返时间减少了约40%,这导致带宽估计更准确、更好,并增加了高比特率视频的使用。
  2. 更快的丢包恢复,导致视频冻结减少了15%,在某些产品上音频卡顿减少了4%

Meta正寻求进一步完善他们的算法,以决定何时使用跨中继路由以及如何更有效地使用它来降低成本。比如正在研究如何选择性地为通话分配中继器,以及如何增强通过主干传输的媒体流量的安全性、可靠性和效率。

此外,Meta正在考虑向中继器添加更多的网络自适应功能(如Simulcast、时间可伸缩性、视频暂停等),以更好地提高中继器处理网络拥塞的能力。

附上演讲视频:https://mpvideo.qpic.cn/0bc324aa2aaaimaedbqwpvtfbv6dbxlqadia.f10002.mp4?dis_k=c2293b920491b7cf514c9309cec46ece&dis_t=1714114068&play_scene=10120&auth_info=Vu/7uJBUP1Vm/4vmsW5VW35vBWAdEW9YKj4mG0w1KBhqYChAPHskGBFJeDFIA1h7amU=&auth_key=88b94c43b36a6513d6dc4d18e726fbd5&vid=wxv_3408210177974108163&format_id=10002&support_redirect=0&mmversion=false

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-20,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 中继通话基础
  • 中继器的网络适应性
  • 新的路由架构:一对一通话
  • 新的路由架构:群组通话
  • 结论与展望
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com