0

我目前正处于开发严重依赖时间戳的移动应用程序的早期阶段。

主设备通过 wifi 连接到多个客户端设备,并向这些设备发出各种命令。当客户端设备接收到命令时,需要在命令执行时标记(相对)时间戳。虽然这一切都很简单,但我还没有想出如何处理时钟差异的解决方案。例如,主设备的时钟可能为 12:01:01,而客户端 A 的时钟为 12:01:02,客户端 B 的时钟为 12:01:03。大多数情况下,我可以期望这些设备设置为相似的时间,因为它们通过 NTP 同步。但是,我的应用程序的性质需要毫秒精度,因此我想防止出现差异。

发出命令和执行命令之间的短暂延迟是可以的,但是执行该命令的时间不正确则不行。

到目前为止,我正在考虑让主设备 ping 每个客户端设备以确定事务时间,然后请求客户端发送他们的“本地”时间。基于此,我可以计算出master和client之间的时间差。一旦知道时间差,客户端就可以相应地调整其时间戳。不过,我对网络不是很熟悉,而且我怀疑 ping 设备不是建立事务时间的非常可靠的方法,因为有很多因素适用,并且延迟可能会发生变化。

我假设有许多现实世界的设置,这些时间问题很重要,因此应该已经有了解决方案。有人知道吗?将响应时间简单地除以 2 就足够了吗?

谢谢!

4

1 回答 1

1

一个人前往NTPv4 的RFC 5905并向那些真正将他们的面条放在这个问题上以及如何解决它的人学习。

或者您只需确保 NTP 在您的服务器上正常工作,这样您就不会首先遇到这个问题。

于 2012-06-24T22:09:44.983 回答