作者 / ALEXANDREA MELLEN, BALáZS KREITH
翻译 / 小极狗
在视频直播技术中,延迟和抖动是相互关联的两个概念,但它们并不相同。延迟是网络传输中的一个重要指标,它由四个关键部分组成:处理延迟、排队延迟、传输延迟和传播延迟。延迟会影响用户体验,同时可能会因为多种因素而发生变化。而抖动是基于延迟产生的——具体地说,它是延迟时间忽长忽短变化的表现形式。抖动是两个数据包之间延迟时间的差异,通常会导致数据包丢失和网络拥塞。虽然延迟和抖动有一定的共同点和关联性,但它们并不相同。
一、什么是延迟?
延迟是网络传输中的一个重要指标,它测量了数据从一个端点传输到另一个端点所需的时间。在网络传输中,延迟通常是以毫秒为单位的,并且会因为多种因素而发生变化,包括端点的位置、数据包的大小和流量大小。
延迟(delay)和延时(latency)有何区别?
延迟和延时本质上是紧密联系的,有时甚至可以互换使用。然而,它们并不总是相同的。延迟(delay)是数据从一个端点传输到另一个端点所需的时间。然而,延时(latency)可能是以下两种情况之一。
有时,延时(latency)会被认为是数据包从一个端点传输到另一个端点的时间,与单向延迟(delay)相同。
更常见的情况是,延时(latency)表示往返时间。往返时间包含了发送数据包所需的时间,以及它返回的时间。但并不包括在目的地处理数据包所花费的时间。
通过网络监控工具,可以获取在特定网络中数据往返的准确时间(延时latency)。具体方法是,通过跟踪两个时间点,一个是从发送端发送数据包的时间点,另一个是发送端获得接收端返回的确认结果的时间点,然后通过计算两者的时间差异得到准确的往返时间(延时latency)。但是,两个端点之间的(单向)延迟(delay)是很难确定的,因为在发送端并没有数据包到达接收端的时间信息。
导致延迟的原因?
延迟可以理解为四个关键延迟成分的集合:处理延迟、排队延迟、传输延迟和传播延迟。这些延迟组合在一起构成了网络中的总延迟。而往返时间则是指这些延迟的组合,加上数据包从发送端到达接收端的时间,和发送端接收到终端的返回信息的时间。
延迟的影响是什么?
延迟主要影响用户体验。在严格的音频通话中,当延迟达到150毫秒,延迟会变得很明显并影响用户体验。在严格的视频通话中,延迟达到400毫秒就很容易被用户感知。如果将音频和视频两种通话的功能结合在一起,音频和视频的通话应该保持同步,并保证低于150毫秒的延迟以保障用户体验。然而,一般来说,保持尽可能低的延迟是很重要的。国际电信联盟ITU建议网络延迟应该保持在100毫秒以下。
二、什么是抖动?
在网络上连续传输的数据包,即使选择相同的路径可能也会有不同的延迟。这是由分组交换网络中两个内在的关键原因造成的。首先,在路由器中数据包是被单独逐个传输的。第二,网络设备从队列中接收数据包,因此不能保证相同的延迟时间。
每个数据包之间的这种延迟的差异被称为抖动。对于实时通信领域,像IP电话、视频会议和远程桌面分享基础服务等,抖动是一个相当大的问题。网络中的许多因素都可能导致抖动,而每个网络的延迟时间也不尽相同。
抖动有什么影响?
1. 数据包丢失- 当数据包到达时间不一致时,接收端点必须进行时间补偿并尝试纠错。在某些情况下,接收端没办法进行合适的纠错,导致数据包丢失。对最终用户体验来说,有多种表现形式。例如,如果一个用户正在观看视频,而视频突然出现马赛克,这就是一个网络抖动的迹象。
2. 网络拥塞 - 网络拥塞发生在传输网络上。网络设备在接受数据后,由于无法发送同等数量的数据,导致数据包缓冲区过满,就开始丢弃数据包。如果在网络中的端点没有遇到网络扰动,那么每个数据包都会到达。但是,如果端点的缓冲区满了,数据包的到达时间就会越来越迟,从而导致抖动。这被称为早期拥塞。通过监测抖动,可以观察到早期拥塞。类似地,如果出现网络拥塞,那么表明抖动也在迅速改变。
当网络设备开始丢弃数据包,导致端点没有接收到数据包时,就会发生拥塞。端点可能会请求丢包重传,这会导致网络崩溃式的网络拥塞。
关于拥塞,需要注意的是,端点不会直接引起拥塞,同时也不会丢弃数据包。就像高速公路两端的送货方A和收货方B,拥堵不是收货方B造成的,因为它只是没有足够的停车位。拥堵是由送货方A造成的,因为它不断地运送货物到没有足够停车位的收货方B处。
如何补偿抖动?
为了弥补抖动,在接收端点使用抖动缓冲。抖动缓冲区收集并存储传入的数据包,以便确定何时以相同的时间间隔发送它们(接收端会反馈给发送端)。
播放延迟
播放延迟是指数据包到达后直到渲染播放的时间。当抖动缓冲区存储传入的数据包,并等待以均匀的时间间隔分发它们(给渲染缓冲区)时,会增加数据包到达和渲染播放的时间,也称为播放延迟。这个延迟是由抖动缓冲区引入的,因为它负责指示新到达的数据包何时被分发(到渲染缓冲区)。
结论
虽然延迟和抖动是相互关联的,但它们是不相同。延迟是数据从网络的一个端点传输到另一个端点所需的时间。这是一个受多种因素影响的复杂的度量指标。另一方面,抖动是两个数据包之间延迟时间的差异。同样,它也可能是由网络上的不同因素造成的。尽管抖动和延迟有相似之处,但抖动仅仅是基于延迟产生的,并不等同于它。
关于海域云
作为中国优秀的网络服务商、国家级高新技术企业,海域云为客户提供全球网络应用解决方案。不论是协助建造专网,还是提供创新、高效的本地连接,我们都能无缝整合最好的国内外数据中心、基础IT施,为每一个客户创建个性化的全球服务器解决方案与服务。
海域云提供流媒体全行业的一站式解决方案,为客户解决视频直播的延时、卡顿、网速慢等痛点。海域云流媒体服务器可支持数千至百万级的播出,全球30+数据中心资源及CDN多线链路部署,为客户提供全球高速高质的流媒体服务。我们的方案广泛应用于在线教育、秀场直播、游戏直播、体育赛事直播。