什么是抖动?定义、原因和解决方案

如果你在与同事进行语音或视频通话时断断续续并且突然中断,罪魁祸首极有可能是网络抖动。通话中的抖动会影响用户的线上互动,所以开发人员一定要对抖动有所了解,在构建应用时尽量避免出现这个问题。

什么是网络抖动?如何减少网络抖动?本文会回答以上问题并探讨用户遇到的抖动问题,再介绍解决方案。


什么是抖动?

要了解抖动,我们需要先知道抖动是如何发生的,即数据包发生了什么。

我们在互联网上发送的任何东西(文本文件或视频)都是以数据包的形式传输,数据包会被先分割为数据片断进行传输,到达终点后再重新合成。

大多数情况下,对于像电子邮件或网页等数据包来说,数据包到达的顺序并不重要,只要所有数据包能到达即可。

但如果是提供语音和视频通话的实时应用,情况就完全不同了。如果数据包在到达目的地时次序颠倒,会导致很多问题。如果数据包在传输过程中产生拥堵,导致出现丢失或延迟情况,就有可能出现次序颠倒的情况,导致音频乱码或失真。

简而言之,就是抖动。

现在许多人都把抖动和延迟混淆了。虽然两者对达成流畅的推流体验都至关重要,但它们是不同的。那么,抖动与延迟的关系是什么?

延迟是指一个数据包在网络上传输的时间,单位为毫秒。延迟越低,响应时间就越短,连接就越强。就算用户在网络游戏和语音通话此类实时应用中的体验是流畅的,延迟也不可能为零,所以我们的目标是尽可能地保持低延迟。

抖动是指与网络延迟不一致的情况。抖动分值较低意味着网络连接在整个会话中保持良好的延迟状态,中断最少。

那么,什么是速度测试中的抖动?它测定的是设定时间内延迟的偏差程度。例如,2 毫秒的抖动,意味着平均延迟了 2 毫秒。

因此,我们要尽量避免高延迟,同时也要尽量避免高抖动。前一分钟声音清晰,后一分钟声音失真,会给用户带来非常不好的体验。

抖动有很多种,对通话质量分别有不同的影响。抖动可以是恒定的抖动,意味着延迟水平在整个通话过程中是一致的;也可以是是瞬时抖动(突然爆发),或者由延迟逐渐增加成为抖动。较常见的影响是短期延迟变化,短期延迟发生在一组数据包上,通常是由网络拥堵造成的。

但是,怎么确定用户正在遭遇高抖动?如果无法通过抖动测试进行监测,可以留心通话中的颤动现象。如果通话中出现杂乱/失真的声音或者卡顿/闪烁的视频,可以确定出现了抖动。最糟糕的情况下,抖动会中断通话。

一些延迟的表现也可能会被误认为是抖动,但抖动和延迟的有很大区别。例如,如果你在通话中听到“回声”、“重复说话”或说话人开口了但你没听到声音,那就是延迟。

总之,任何语音延迟都可以称为延迟。如果语音质量下降(例如失真或乱码),就是抖动。


出现抖动的原因?

如上所述,抖动是由数据包丢失或次序混乱导致的。我们不仅要了解抖动的细节,还需要了解抖动是由什么因素导致的?

实际上,导致高抖动的原因非常多,且很可能同时出现进而导致过度抖动。

导致抖动的首要原因是网络拥堵。如果很多设备同时通过网络发送数据包,就会产生网络拥堵。网络拥堵除了会导致延迟外,还会导致抖动。即使是很小的拥堵也会干扰 VoIP 等实时应用。

在家里拨打 VoIP 电话经常会出现拥堵。因为往往会有多个人同时使用网络,你在拨打 VoIP 电话的同事还有别人在视频通话或玩网络游戏。

这种情况下,解决拥堵的办法是优先处理数据包或换一个更高端的路由。硬件过时是造成网络性能差或抖动的一大原因。如果无法更换硬件,可以尝试重新规划在线任务,尽量减少任务冲突,比如,尽量在工作时间之外下载大文件。

如果网络不拥堵,那么造成抖动的原因可能是无线连接。如果通话中只有你遇到抖动问题,其他人没有出现抖动,那就一定是因为无线连接,因为无线极易受干扰,进而导致数据包丢失和网络抖动。

还有一个原因是 VoIP 供应商。如果你已排除了上述所有问题,但抖动问题依然存在,就可以考虑是不是 VoIP 供应商的问题了。如果确定是供应商的问题,可以考虑更换供应商,但是否更换取决于你对 VoIP 软件的投资方案。

因此,挑选一个性能、质量和信誉都良好的 VoIP 供应商至关重要。好的供应商可以补偿网络条件,提供高质量的通话质量。


多少网络抖动值算正常?

与延迟一样,要做到零抖动几乎不可能。我们的目标应该是尽可能地减少抖动,但抖动值在多少范围内算正常呢?

这首先取决于你要使用的应用。如果你只是浏览网页、发送电子邮件、或与人聊天,那抖动就不算问题。因为以上这些都是异步通信形式,不依赖于数据包的快速交付。

但如果是实时应用,比如语音或视频聊天,就关系大了,不仅要避免抖动,还要把延迟和丢包控制在最低值。

一般来说,尽量将抖动控制在 30 毫秒以内。如果超过这个阈值,音频质量会显著下降。

但这只是指导方针,至于具体怎么操作,取决于你能接受多大程度的音频质量下降。

如果你只是要召开一个内部的团队会议,你需要的通话质量就是能够听懂每个人在说什么,有轻微抖动也是可以接受的,没必要浪费不必要的时间来修复抖动。

但是,如果你要举办网络研讨会或向客户推销产品,那么就要尽可能的确保较高的音频质量,将抖动保持在 30 毫秒以下。


如何修复抖动?

要减少网络抖动,首先要了解抖动。大家可以通过抖动测试来了解抖动。


抖动测试

有多种测试抖动的方法,每种方法的效果都不一样,究竟使用那个方法取决于你有哪些可用的工具,我建议大家可以多种方法并用。

最简单的方法是使用在线速度测试,如 TestMy.net Latency Test 和 Cloudflare Internet Speed Test。这两个工具除了能测试带宽和延迟等重要指标外,还能显示抖动得分。

但这些在线工具的一个缺点是它们只提供抖动得分的总体情况,可能会产生误导。如果测试语音通话,应该把测试重点放在测试特定 VoIP 服务器的抖动和延迟上。

你可以通过计算机终端应用的 ping 命令来实现这一目标。例如,你可以在 Windows 系统中的命令提示符中键入以下内容:

ping –n 30 [IP address]

该命令会发送 30 个数据包到目标 IP 地址(本例中是你的 VoIP 服务器)。你会看到每个数据包会与指标一起发送,注意看最大偏差(mdev),该数值会显示以毫秒为单位的抖动值。

因为这两个工具是免费的,所以它们是测试抖动的基本方法。 然而,如果你正在主持一个大型网络研讨会或隶属于大型公司,可能会有机会使用高级监控工具,比如 Cisco DNA 和 Logic Monitor。

这些工具的优点是它们可以实时测量抖动,并在过度抖动时发出提醒,让你在抖动严重之前修复它。

注意,抖动不是一个单向问题。如果线路上的另一个人的路由器有故障或产生了网络拥堵,即使你的连接没有问题,你仍然会遭遇抖动。因此,你应该测试通话中所有参与者的抖动得分。


修复和避免抖动的方法

认识到抖动会带来的问题之后,就要采取方案以尽量减少抖动。

我们建议大家每次尝试一个解决方案,在每个解决方案之后检查抖动。这样做可以节省时间并且便于找到问题关键,以便在之后避免该问题。


用户怎么修复抖动问题?

切换到有线连接

还有一个快速的修复方法,如果你没使用有线连接,可以切换到有线连接。无线网络更易受环境干扰,如果你有抖动问题,切换到有线网络,尽量使用最高质量的以太网电缆。

测试设备频率

如果你要保持 Wi-Fi 连接,可以在 5 吉赫和 2.4 吉赫之间切换。5 吉赫能提供更快的网络连接,但辐射距离较短,所以你最好紧挨着路由器。如果你距离路由器较远,可以使用 2.4 吉赫。如果能将你的小工具平均分配给 5 吉赫和 2.4 吉赫就最好了,可以减少拥堵。

投资一个高端路由器

另一个解决语音或视频推流抖动的方法是使用一个高端路由器。没有解决路由器和抖动的一劳永逸的方法,但大多数高端路由器能更快地处理抖动。一定要研究路由器,并投资于一个高端路由器,高端路由器可以处理网络流量,提供更稳定的无线信号。

禁用状态监测防火墙

如果网络出现拥堵和延迟,就会发生抖动,而防火墙会造成瓶颈。禁用状态监测防火墙,尽量减少路由器的工作量,避免造成进一步的拥堵。另外,禁用某些防火墙的访问规则(如 SIP ALG 和 Double NAT)来提高 VoIP 性能。

对数据包进行优先排序

路由器还有一个功能叫作服务质量(QoS)。该功能可以帮你将语音数据包优先于其他应用,方便语音数据包快速传输至目的地。你可以将 DSCP 类 46 数据包配置为高优先级。


开发人员怎么修复抖动?

安装一个抖动缓冲器

如果持续发生抖动,可以在 VoIP 系统中设置一个抖动缓冲器。缓冲器的工作原理是将数据包存储在设定的时间内,以便在发送至接收器之前进行适当的重新组合,长度可以从 30 到 200 毫秒不等,足以解决大多数抖动问题,但又不至于过于冗长。如果你的 VoIP 硬件没有预先安装静态缓冲器,我建议你优先选择动态(基于软件)缓冲器。

使用声网

通过声网,开发人员可以迅速减少应用中的音频和视频抖动。声网的语音通话 SDK视频通话 SDK 可以为用户提供更清晰、更顺畅的音频和视频体验。我们的核心产品可以帮助开发者通过快速、可靠的实时网络发送视频、语音和直播互动推流平台。


写在最后

抖动造成的颤动和延迟会影响你辛苦开发的应用的性能。声网平台致力于帮助开发者快速建立高质量的语音和视频体验,帮助用户避免抖动和丢包等不良体验。声网平台提供了一个全球性的超低延迟网络,为通话和推流体验保驾护航。

声网提供用户需要的一切,帮你构建完整的实时互动体验。点击这里免费注册,开始构建你的专属音视频体验吧。



原文作者:声网团队
原文链接:https://www.agora.io/en/what-is-jitter-meaning-causes-and-solutions/
推荐阅读
相关专栏
开发者实践
182 文章
本专栏仅用于分享音视频相关的技术文章,与其他开发者和声网 研发团队交流、分享行业前沿技术、资讯。发帖前,请参考「社区发帖指南」,方便您更好的展示所发表的文章和内容。