我正在寻求有关为非常不典型的网络设置时间服务器的建议。我支持许多偶尔访问互联网的封闭网络。网络大多数日子里可以访问几个小时,但经常会停电 1-3 周。此网络上的计算机/服务器大多基于 *nix,但并非全部相同。整个网络都是移动的,因此当它连接时,它将具有与互联网时间服务器非常不同的跳数/延迟。封闭网络上的服务器经常关闭(至少每天一次)。现在,我的直觉告诉我使用 NTP(因为我讨厌重新学习其他人已经运行得很好的东西)。但我有几个问题,正在寻找有这种奇怪情况经验的人。我目前没有解决方案,我只是让内部时钟漂移。这导致大多数网络的错误约为 600s。我见过比 10,000s 更严重的不匹配。
- 在这种情况下,有没有比 NTP “更好”的东西?我知道 NTP 喜欢非常频繁、一致地访问提供几乎相同答案的服务器。我不会这样做。
- 我应该配置多少个内部 NTP 服务器,以便在互联网中断期间,我拥有在封闭网络内一致的内部时间?
- 无需人工干预。无论不匹配程度有多大,服务器都必须尝试自行纠正。
- 离散步骤非常糟糕。无论不匹配程度有多大,校正都必须“倾斜”,而不是“分步”。我知道这可能需要花费很多小时才能纠正。
答案1
在过去,设置 1 层 NTP 服务器非常困难,因为 0 层源非常昂贵、极其精密并且通常具有放射性。
如今,我们有了 GPS,它恰好可以充当极其精确的无线电时钟。您可以以相当合理的价格购买包含 GPS 接收器作为其 stratum-0 时间源的专用 stratum-1 服务器,或者只需一点小聪明,您就可以将一个不错的消费级 GPS 装置连接到随机服务器,并相应地设置 NTP 以为您提供自己的 stratum-1 服务器。其中前者更有利于提高可用性。
做这些事情之一,您的网络上就会有一个 stratum-1 服务器,每个人都可以同步到该服务器。一个就足够了;当服务器正常运行时,每个人都会同步到该服务器,如果服务器宕机,所有客户端可能都已经了解了它们的漂移率,因此在服务器恢复之前它们不应该漂移太远,届时它们会慢慢地重新同步到该服务器。
即便互联网连接断断续续,我看不出有什么理由不享受美好时光。
答案2
与其他已经接受的答案类似,我怀疑您是否可以在没有外部时间源的情况下做到这一点,因为您的网络连接根本不够好。
作为 GPS 的替代解决方案,我建议使用外部原子钟信号接收器或电波钟基本思想是,你从几个原子钟广播电台世界各地。
这些可以成套购买,也可以自己制作,价格非常便宜,具体取决于您的预算。它们应该比 GPS 更准确,因为 GPS 的误差可能高达 12 秒:http://www.gpsinformation.net/main/gpstime.htm。
以下是使用树莓派创建原子无线电时钟接收器的指南:http://www.rs-online.com/designspark/electronics/blog/atomic-time-for-the-raspberry-pi
还有另一个用于创建非常便宜的无线电时钟的 DIY 线程:http://www.micro-examples.com/public/microex-navig/doc/100-p16f84-led-dcf-clock.html
只是一个想法;)