在 视频直播 技术中,延迟和抖动是相互关联的两个概念,但它们并不相同。延迟是网络传输中的一个重要指标,它由四个关键部分组成:处理延迟、排队延迟、传输延迟和传播延迟。延迟会影响用户体验,同时可能会因为多种因素而发生变化。而抖动是基于延迟产生的——具体地说,它是延迟时间忽长忽短变化的表现形式。抖动是两个数据包之间延迟时间的差异,通常会导致数据包丢失和网络拥塞。虽然延迟和抖动有一定的共同点和关联性,但它们并不相同。
什么是延迟?
延迟是网络传输中的一个重要指标,测量了数据从一个端点到另外一个端点所需的时间。一般我们用毫秒作为其单位。通常我们也把延迟叫做延时,但是延时有时还会表示数据包发送端到接受端的往返时间。这个往返时间我们可以通过网络监控工具测量,测量数据包的发送时间点和接受到确认的时间点,两者之差就是延时。单向时间就是延迟。
延迟(delay)和延时(latency)有何区别?
延迟和延时本质上是紧密联系的,有时甚至可以互换使用。然而,它们并不总是相同的。延迟(delay)是数据从一个端点传输到另一个端点所需的时间。然而,延时(latency)可能是以下两种情况之一。
有时,延时(latency)会被认为是数据包从一个端点传输到另一个端点的时间,与单向延迟(delay)相同。
更常见的情况是,延时(latency)表示往返时间。往返时间包含了发送数据包所需的时间,以及它返回的时间。但并不包括在目的地处理数据包所花费的时间。
通过网络监控工具,可以获取在特定网络中数据往返的准确时间(延时latency)。具体方法是,通过跟踪两个时间点,一个是从发送端发送数据包的时间点,另一个是发送端获得接收端返回的确认结果的时间点,然后通过计算两者的时间差异得到准确的往返时间(延时latency)。但是,两个端点之间的(单向)延迟(delay)是很难确定的,因为在发送端并没有数据包到达接收端的时间信息。
导致延迟的原因?
延迟可以理解为四个关键延迟成分的集合:处理延迟、排队延迟、传输延迟和传播延迟。
处理延迟是指系统对数据包报头进行分析和确定数据包被发送到哪里去所要花费的时间。这很大程度上取决于路由表中的条目数量、系统中数据结构的执行以及硬件的实现。
排队延迟是指数据包从进入发送队列到被发送之间经过的时间。这取决于流量大小、流量类型以及具体实现中采用什么路由器队列算法。不同的算法效果不一样,有的可以根据系统参数调整延迟时间,或者对所有流量设定相同的延迟时间。
传输延迟是指将包中的数据位传入线路所需要的时间。根据数据包的大小和带宽的不同而有所变化。但并不取决于传输线路的距离,因为它仅仅是指将包的数据位传入线路的时间,而不是沿传输线路到达接收端点的时间。
传播延迟是指数据包的第一个比特位从发送端到达接收端的时间。通常也被称为距离的延迟,受数据传输距离和传播速度的影响。
这些延迟组合在一起构成了网络中的总延迟。而往返时间则是指这些延迟的组合,加上数据包从发送端到达接收端的时间,和发送端接收到终端的返回信息的时间。
延迟的影响
延迟主要影响用户体验。在严格的音频通话中,当延迟达到150毫秒,延迟会变得很明显并影响用户体验。在严格的视频通话中,延迟达到400毫秒就很容易被用户感知。如果将音频和视频两种通话的功能结合在一起,音频和视频的通话应该保持同步,并保证低于150毫秒的延迟以保障用户体验。然而,一般来说,保持尽可能低的延迟是很重要的。国际电信联盟ITU建议网络延迟应该保持在100毫秒以下。
什么是抖动?
抖动是由于数据包的大小,网络路由的路径选择等众多因素,我们无法保证数据包的延迟时间是一致的,数据包和数据包延迟的差异我们称为抖动。也就是说因为数据包的延时值忽大忽小的现象我们称为是抖动。
每个数据包之间的这种延迟的差异被称为抖动。对于实时通信领域,像IP电话、视频会议和远程桌面分享基础服务等,抖动是一个相当大的问题。网络中的许多因素都可能导致抖动,而每个网络的延迟时间也不尽相同。
抖动有什么影响?
数据包丢失
当数据包到达时间不一致时,接收端点必须进行时间补偿并尝试纠错。在某些情况下,接收端没办法进行合适的纠错,导致数据包丢失。对最终用户体验来说,有多种表现形式。例如,如果一个用户正在观看视频,而视频突然出现马赛克,这就是一个网络抖动的迹象。
网络拥塞
当网络设备开始丢弃数据包,导致端点没有接收到数据包时,就会发生拥塞。端点可能会请求丢包重传,这会导致网络崩溃式的网络拥塞。
关于拥塞,需要注意的是,端点不会直接引起拥塞,同时也不会丢弃数据包。就像高速公路两端的送货方A和收货方B,拥堵不是收货方B造成的,因为它只是没有足够的停车位。拥堵是由送货方A造成的,因为它不断地运送货物到没有足够停车位的收货方B处。
如何补偿抖动?
为了弥补抖动,在接收端点使用抖动缓冲。抖动缓冲区收集并存储传入的数据包,以便确定何时以相同的时间间隔发送它们(接收端会反馈给发送端)。
播放延迟
播放延迟是指数据包到达后直到渲染播放的时间。当抖动缓冲区存储传入的数据包,并等待以均匀的时间间隔分发它们(给渲染缓冲区)时,会增加数据包到达和渲染播放的时间,也称为播放延迟。这个延迟是由抖动缓冲区引入的,因为它负责指示新到达的数据包何时被分发(到渲染缓冲区)。
虽然延迟和抖动是相互关联的,但它们是不相同。延迟是数据从网络的一个端点传输到另一个端点所需的时间。这是一个受多种因素影响的复杂的度量指标。另一方面,抖动是两个数据包之间延迟时间的差异。同样,它也可能是由网络上的不同因素造成的。尽管抖动和延迟有相似之处,但抖动仅仅是基于延迟产生的,并不等同于它。
版权声明:本文章文字内容来自第三方投稿,版权归原始作者所有。本网站不拥有其版权,也不承担文字内容、信息或资料带来的版权归属问题或争议。如有侵权,请联系contentedit@huawei.com,本网站有权在核实确属侵权后,予以删除文章。