时间同步,使用NTP还是仅仅socket?

时间同步,使用NTP还是仅仅socket?

我使用 PC 和树莓派(都运行 Linux)来收集传感器数据,树莓派收集激光扫描数据,PC 收集相机捕获的图像。我必须同步时间对于这两台机器。我希望他们之间的时间差能够小于1毫秒

我直接用网络功能连接它们,所以我不能使用一些众所周知的 NTP 服务器。我在树莓派上 ping PC,ping 时间小于0.6毫秒。我想出了两个想法:

  1. 将 PC 视为NTP服务器,树莓派从中同步时间。
  2. 创建一个插座它们之间的连接,树莓派只是在连接建立时将其时间戳发送给PC,这样我们就可以知道两台机器的时间差。

哪一个是更好的主意?或者你有更好的想法吗?如何计算两台机器的实际时间差?我可以将时间差限制在1ms吗?

答案1

套接字的思想是古老的可敬的RFC 868 中记录的时间协议。基于该协议同步系统时间的实用程序称为日期

您最好使用 NTP,因为 NTP 会跟踪两个系统的时钟如何随着时间自然漂移并对其进行纠正。时间协议应保留用于 NTP 不可行的情况,例如资源过于紧张而无法运行 NTP 等复杂功能的嵌入式系统(而 rpi 则不然)。

相关内容