通过多台机器时间戳数据 – 时间已closures?

我工作的一些应用程序,通过多台机器路由TCP和更新stream量,我试图时间戳(毫秒分辨率)在每个节点上的数据包通过每个节点接收延迟的完整画面。

在testing之前,我确定所有的Windows机器都是NTP同步的,但是我的问题似乎是,所有机器上的时间永远不会完全同步,系统时间似乎会变化±500毫秒。 例如,有时我的时间戳记logging显示,在从节点1发送数据包之前500毫秒,节点2收到数据包。

在所有机器的NTP重新同步之后,它将总是在节点1和节点2之间显示不同的等待时间,但是时间差异总是恒定的,直到下一个NTP同步为止。

将多台机器同步到同一个NTP服务器时,我可以预期到什么准确度? 有什么理由让我看到这些差异,以及其他应用程序如何通过涉及多台机器的系统来测量延迟?

谢谢,

汤姆

除非在本地LAN上运行NTP服务器,否则可能会由于网络延迟而关闭几秒钟。

我认为如果不使用硬件触发器,很难获得毫秒的同步。

编辑:

一个更好的想法是所有的节点将时间彼此同步。 这样你可以不断地校准它。

编辑2:

还要注意,并不是所有的事情都是平等的。 由于许多因素,例如振荡器的温度和使用年限,哦,当然还有缺乏实时操作系统,两个系统的定时时钟之间可能会有变化,无论是CPU时钟还是RTC; P

通过发送双向消息来测量node1和node2之间的延迟。 首先将节点1发送到节点2,并让节点2立即返回到节点1。 在node1上,您现在可以轻松测量向node2发送消息所用的总时间,而无需担心在不同计算机上同步时间。