【发布时间】:2012-06-24 21:56:02
【问题描述】:
我目前正处于开发严重依赖时间戳的移动应用程序的早期阶段。
一个主设备通过 wifi 连接到多个客户端设备,并向这些设备发出各种命令。当客户端设备接收到命令时,需要在命令执行时标记(相对)时间戳。 虽然这一切都很简单,但我还没有想出如何处理时钟差异的解决方案。例如,主设备的时钟可能为 12:01:01,而客户端 A 的时钟为 12:01:02,客户端 B 的时钟为 12:01:03。大多数情况下,我可以期望这些设备设置为相似的时间,因为它们通过 NTP 同步。但是,我的应用程序的性质需要毫秒精度,因此我想防止出现差异。
发出命令和执行命令之间的短暂延迟是可以的,但是执行命令时的时间戳不正确。
到目前为止,我正在考虑让主设备 ping 每个客户端设备以确定事务时间,然后请求客户端发送他们的“本地”时间。基于此,我可以计算出master和client之间的时间差。一旦知道时间差,客户端就可以相应地调整其时间戳。 不过,我对网络不是很熟悉,而且我怀疑 ping 设备并不是确定事务时间的一种非常可靠的方法,因为有很多因素适用,并且延迟可能会发生变化。
我假设在许多现实世界中,此类时间问题很重要,因此应该已经有了解决方案。有人知道吗?将响应时间简单地除以 2 就足够了吗?
谢谢!
【问题讨论】:
标签: timer timestamp sync latency