Networking 在实时应用中,延迟和抖动之间的区别是什么?

Networking 在实时应用中,延迟和抖动之间的区别是什么?,networking,streaming,real-time,Networking,Streaming,Real Time,根据维基百科的说法,抖动是与假定周期信号的真实周期性不希望出现的偏差,根据我正在阅读的关于QoS的papper,抖动被称为延迟变化。在实时应用环境中是否有抖动的定义?是否存在对抖动敏感但对延迟不敏感的应用程序?例如,如果流媒体应用程序在向用户显示数据包之前使用某种缓冲区来存储数据包,该应用程序是否可能对延迟不敏感,但对抖动敏感?延迟:是数据(信号)到达目的地所需的时间量。现在,更高的延迟通常意味着某种通信链路中断造成的拥塞 抖动:是延迟时间的变化。当系统未处于确定状态时,会发生这种情况,例如,视

根据维基百科的说法,抖动是与假定周期信号的真实周期性不希望出现的偏差,根据我正在阅读的关于QoS的papper,抖动被称为延迟变化。在实时应用环境中是否有抖动的定义?是否存在对抖动敏感但对延迟不敏感的应用程序?例如,如果流媒体应用程序在向用户显示数据包之前使用某种缓冲区来存储数据包,该应用程序是否可能对延迟不敏感,但对抖动敏感?

延迟:是数据(信号)到达目的地所需的时间量。现在,更高的延迟通常意味着某种通信链路中断造成的拥塞

抖动:是延迟时间的变化。当系统未处于确定状态时,会发生这种情况,例如,视频流受到很大的抖动,因为传输的数据量很大,因此无法确定传输可能需要多长时间

如果您的应用程序对抖动敏感,那么它肯定对延迟敏感。

在实时协议(RTP,RFC3550)中,报头包含时间戳字段。它的值通常来自单调递增的计数器,递增的频率是时钟频率。该时钟频率必须在所有参与者想要时间戳字段的内容时相同。计数器具有不同的基偏移量,因为起始时间可能不同,或者由于安全原因,计数器包含基偏移量,等等。。。总之,我们说时钟没有同步

在一个示例中显示它,如果我们参考SNDY时间戳和RCVY时间戳,则从RTP报头字段中的最新分组发送器时间戳和由接收器使用相同时钟速率生成的接收器时间戳。 错误的结论是

延迟时间戳单位=rcv时间戳-snd时间戳

如果接收器和发送器时钟速率有不同的基数偏移(并且它们有),这不会给您延迟,也不会考虑环绕32位无符号整数。

但是,如果我们想要一个合适的播放自适应算法,或者如果我们想要检测和避免拥塞,那么监控发送数据包的时间在某种程度上是必要的

还要注意的是,如果我们有同步时钟,那么时间戳单元中的延迟可能不会准时表示纯网络延迟,因为发送方或接收方的组件在添加和/或导出时间戳之后和/或之前保留这些数据包。因此,如果您计算参与者之间的2秒延迟,但您知道您的网络延迟约为100ms,那么您的数据包在发送方或/或接收方会遭受额外的延迟。但是额外的延迟在某种程度上是恒定的(或者至少你希望它是恒定的),所以时间上唯一的延迟变化是——希望是——网络延迟。因此,您不应该说,如果数据包延迟>500ms,那么我们就有拥塞,因为如果您只使用一个数据包发送方和接收方时间戳信息,您不知道实际的网络延迟是多少

但是,两个连续数据包的延迟之间的差异可能会给你一些关于网络是否出错的信息

差异延迟=延迟t0-延迟t1

如果diff_delay等于0,则延迟是相同的,如果它大于0,则新到达的数据包比前一个数据包需要更多的时间,如果它小于0,则需要更少的时间

根据连续两次延迟的相关信息,你可以说些什么

如果时钟未同步,如何确定两个延迟之间的差异

假设您将最后的时间戳存储在rcv_timestamp_t1和snd_timestamp_t1中

差异延迟=(rcv_时间戳_t0-snd_时间戳_t0)-(rcv_时间戳_t1-snd_时间戳_t1)

但如果不保持发送方和接收方的基本偏移量,这将是一个问题,因此需要对其重新排序:

差异延迟=(rcv_时间戳_t0-rcv_时间戳_t1)-(snd_时间戳_t0-snd_时间戳_t1)

在这里,你可以互相减去rcv时间戳,它消除了偏移量rcv和snd包含,然后你可以从snd_diff中提取rcv_diff,它给出了以时钟速率为单位的两个连续数据包的延迟差的信息

现在,根据RFC3550,抖动是“对RTP数据包到达间隔时间的统计方差的估计”

为了最终达到目的,你的问题是 “在实时应用环境中,延迟和抖动之间有什么区别?”

请注意,但实时应用程序通常指的是在纳秒范围内处理数据的系统,所以我认为您指的是端到端系统

此外,尽管抖动的定义有所改变,但它都使用了到达数据包延迟的差异,从而为您提供了有关网络延迟相对变化的信息,同时延迟本身是交付时间的绝对值

“如果您的应用程序对抖动敏感,那么它肯定对延迟敏感。“这并不完全准确。VoIP应用程序实际上可以很好地处理延迟,但对抖动非常敏感,即使延迟很小。例如,对于250毫秒的延迟,VoIP应该没有问题,但是,即使延迟10毫秒,抖动也会给它带来问题。