【发布时间】:2013-02-17 03:11:03
【问题描述】:
我需要测量两个通过 LAN 通信的应用程序之间的单向延迟测量,并将结果报告给数据收集服务器。
客户端应用程序使用多播发送数据,然后它通过两个服务器,最后一个服务器是此测试的终点,如下所示:
Agent -> multicast cloud -> server 1 -> server 2
我考虑过使用 NTP(或 LAN 的 PTP)来同步“代理”和“服务器 2”,但我想知道实现此功能的正确算法是什么,其精度如何。
如何执行此测量(使用 C#)?它的精度是多少?
更新:请注意,代理和服务器 2 之间正在处理数据,因此测量不是纯粹的网络方式。
【问题讨论】:
-
一般来说,无法确定单向延迟。您能做的最好的事情(除非两端都有准确的时钟)是往返时间(然后除以 2)。
-
我需要测量应用延迟 - 而不是网络延迟,所以除以 2 对我不起作用:(
-
好的,等效地您可以使用 PTP 来同步两端(尽管这对延迟 = RTT/2 做出等效假设),然后将时间戳数据包从代理发送到服务器。
-
我正在测试的延迟包括对此数据的处理操作。处理时间仅以一种方式发生(代理到服务器 2)。
标签: c# networking latency ntp