我建立中,我将从一侧发送分组和接收它在另一侧的以太网应用。我要计算在接收机端的分组延迟在RFC 3393.所以,我必须把时间戳的数据包在发送端,然后我收到的数据包尽快采取在接收端的时间戳。减去i的值会得到时间戳的差别,然后减去随后差异这个值我会得到IPDV延迟的方法之一。的这两个时钟不同步。 因此,任何帮助是极大的赞赏。 谢谢你。

有帮助吗?

解决方案

RFC 3393是用于在分组延迟测量的方差,而不是用于测量延迟本身。

要举个例子:你写一个视频流媒体应用。你要尽量(以使视频将立即开始玩越好)缓冲尽可能少的视频数据。比方说,数据永远永远的总是的需要20ms的从机器A到机器B在此情况下(并假设机器A可以,因为它需要打快发送视频数据),你不”吨需要任何缓冲可言。只要你收到的第一帧,你就可以开始游戏,安全的知识,通过需要下一个帧的时候,它就要来到了(因为数据总是带20ms的到达和机器A被至少发送快,你玩)。

该作品无论多久即20ms的是,只要它总是一样的。这可能是1000毫秒 - 第一帧需要1000毫秒到达,但你仍然可以尽快开始到达打球,因为下一个框架也将采取1000毫秒,并在第一帧后面右发 - 换句话说,它已经在其方式将在这里短暂。显然,现实世界不是这个样子的。

采取另一个极端:大部分时间,数据在20ms的到达。除了有时,当花费5000毫秒。如果你一直没有缓冲区,并通过50帧1的延迟为20ms,那么你不会有问题打第50帧。然后框51需要5000毫秒到达,你没有留下为5000毫秒的视频数据的。用户进入并访问其他网站为他们的可爱的猫的视频。你真正需要的是数据的5000毫秒的缓冲区 - 然后你一直感觉很好

长例如短一点:你不感兴趣的是什么的绝对的对数据包的延迟,你有兴趣在方差的在延迟是什么 - 这就是你的缓冲区有多大是

要测量的绝对的延迟,你必须有在两台机器上的时钟同步。机器A将发送具有时间戳12337849227 28 并当到达B机在时间12337849227 48 后,你会知道数据包采取了20毫秒到那里。

但是,因为你感兴趣的方差,则需要(如RFC 3393描述)从机A.计算机A若干分组发送分组1具有时间戳1233784922的 72 8,则10ms的后发送包2具有时间戳1233784922的 73 8,则10ms的后发送分组3具有时间戳1233784922的 74 8

机器B在它认为是什么时间戳1233784922的 12 8.机器A和机器B之间的单向延迟在这种情况下(从机器B的角度来看)被-600ms接收分组1。这显然是完整的垃圾,但我们不在乎。机器B在它认为是什么时间戳1233784922接收分组2的 15 8.单向延迟已经-580ms。机器B在它认为是什么时间戳1233784922接收分组3的 16 8.单向延迟再次-580ms。

如上,我们不关心绝对延迟是什么 - 所以我们甚至不关心,如果它是消极的,三个小时,或什么的。我们关心的是,延迟量由20ms的变化。因此,你需要的数据20ms的缓冲。

请注意,我完全掩饰时钟漂移这里(即在机器A上的时钟和B运行在略微不同的速率,因此例如机器A的时间前进在1.00001秒为每一个速度问题第二,实际上传递)。虽然这在测量不准确的介绍,其实际效果也不太可能在大多数应用中的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top