根据我的理解,PC上的晶体因时钟偏差而臭名昭着.如果时钟总是倾斜,那么在机器之间以毫秒精度和精度同步时钟的最佳方法是什么?根据我的发现,NTP和PTP是可能的解决方案,但我想知道是否有人在stackoverflow.com上有任何经验!
我理解NTP是受欢迎的选择,但我想知道是否有人有任何PTP经验(IEEE1588)
只需运行标准NTP守护程序即可.
它可以选择从多个GPS设备获取输入以及与网络服务器通信.
编辑:我指的是http://www.ntp.org/,而不是Windows附带的那个.
我没有任何关于NTP客户端最适合Windows的建议,但对于Unix机器,没有真正的理由不运行NTP.
您无法通过交换数据将计算机同步到毫秒级别,因为任何数据交换本身至少需要几毫秒才能完成,从而破坏您的结果!即使试图首先测量数据传输所需时间然后发送时间信息(将测量的延迟考虑在内)的协议也比平均值好一点,但它们仍然不好,因为并非每次数据传输都需要相同的时间(只是不断ping Internet上的服务器,看看每个ping有不同的延迟).
在毫秒范围内真正同步两台计算机的唯一方法是让它们通过没有未知或不断变化的延迟的传输方法从相同的源获取时间.例如,如果两者都接收卫星信号,则广播时间.信号将始终具有恒定的延迟(从卫星到地球),并且它们几乎都在相同的纳秒内接收它.
例如德国有无线电控制时间.在该国的某个地方是一个原子钟(几百年来有一个正确的纳秒时间),一些发送者永久地在全国各地的特定频率上播放当前时间.存在闹钟甚至手表,可以接收这个时间并与之永久同步(好吧,不是真的永久,大多数型号每24小时只做一次以节省电池运行时间).这种接收器设备也存在于计算机中,并带有可以使计算机时钟与该时间信号永久同步的软件.
据我所知,GPS也会发送时间信息(或者可以从GPS信息以某种方式计算时间,我不太熟悉GPS协议).因此,将GPS接收器连接到两台计算机也可以使它们同步到毫秒级.但是,如果通过Internet完成同步,则不要期望比最多关闭20毫秒的计算机获得更好的同步.
为了更新评论者,
NTP并不像人们喜欢在这里声称的那样准确:
NTP通常可以在公共互联网上保持几十毫秒的时间,并且在理想条件下可以在局域网中实现优于1毫秒的精度.
资料来源:维基百科
我宁愿让它们全部保持同步而不涉及任何网络,并且进一步保持它们与官方GMT时间同步,这里GPS可能是在所有机器上获得真正准确结果的唯一方法(并且不仅低至ms,实际上低至微秒).
这是一个已有 10年历史的软件,可以在百分之一毫秒内同步.(当我的实验室NTP不够好时,我的团队写了这篇文章.)
从摘要:"用于联网商用PC的分布式时钟.没有额外的硬件,这个时钟将来自多台PC的传感器数据与平均10微秒的延迟和抖动相关联,最差情况下为100微秒."
说明:http://scholar.google.com/citations?view_op = view_citation&citation_for_view = QmbeOvsAAAAJ:5nxA0vEk-isC
源代码:http://zx81.isl.uiuc.edu/clockkit/