是否可以使用任何互联网协议以高于1毫秒的精度同步两台计算机?

时间:2015-12-29 21:06:20

标签: gps synchronization timing ntp

说我有两台电脑 - 一台位于洛杉矶,另一台位于波士顿。是否有任何已知的协议或Linux命令可以将这两个计算机时钟同步到1毫秒以上并且根本不使用GPS?我的印象是答案是否定的(What's the best way to synchronize times to millisecond accuracy AND precision between machines?

或者,是否有任何标准协议(如NTP),即使绝对时间同步关闭,也可以在这两台计算机之间准确地知道相对时间差?

我只是想知道是否有任何免费或廉价的方法可以获得优于1毫秒的时间精度,而无需使用GPS。

谢谢

1 个答案:

答案 0 :(得分:1)

我不知道任何已知的协议(可能存在),但可以提供类似于科学家测量接近光速的方法的方法:

让两个服务器上的进程“ping”另一个服务器并等待响应,并计算响应所花费的时间。然后,当你期望最后一次ping进入时,定期开始定期ping。平均(并丢弃任何远处的样本)你将在一段时间后以相同的节奏“砰地一声”使两台服务器。这两者还可以通过将(长)时间段中的节拍数除以高精度来判断每个“节拍”之间的时间间隔。

在建立“节奏”后,如果您知道服务器的某个时间是正确的,或者您想以其时间为基础,那么您就知道服务器的信号到达另一台服务器的时间。连同响应一起,它会向您发送IT时间。然后,您可以使用该时间与您的时间系统建立同步。

最后但并非最不重要的是,大多数操作系统都使非内核用户能够以至少32毫秒的精度行事,即:您不能指望在不到几毫秒的时间内发生某些事情。解决这个问题的唯一方法是拥有一个可以响应并运行时钟的“本机”DLL。这也只会给你一定的反应速度,具体取决于系统(硬件和软件)。

了解实时系统和您正在谈论的“服务器”(Windows?Linux?微芯片上的嵌入式软件?还有什么?)