小编Dan*_* R.的帖子

本地网络上的 Ntpd - 防止时钟漂移导致高偏移

我有一个本地网络,微控制器 ARM 作为 NTP 服务器,我有一台运行 ubuntu 16.04 LTS 作为 NTP 客户端的台式计算机。

一旦我从ntpd -g -c /etc/ntp.conf以下 ntp 配置文件开始

server 192.168.0.11 minpoll 4 maxpoll 4
Run Code Online (Sandbox Code Playgroud)

ntpd 设置时间后的第一个偏移显示了非常好的结果,即低于 1ms。我通过ntpq -p.

然而,偏移量在大约 55ms 后缓慢上升。1000 秒。对于我的应用程序来说,这种高偏移是不可接受的。但是在偏移量达到 55 ms 后,ntpd似乎再次设置时间并且偏移量变得足够小且稳定(< 1ms)。似乎ntpd让时钟漂移了一段时间,在(太)长的时间之后,守护进程对 NTP 客户端和 NTP 服务器之间的时钟漂移采取对策。

使用ntpd -g -c /etc/ntp.conf -f /etc/ntp.driftwherentp.drift由 生成ntpd,偏移量将始终保持在 1ms 以下,即没有时钟漂移引起的偏移量线性上升;期望的行为。

现在我的问题:在我的应用程序中,我们不能让ntpd运行一段时间来计算很长一段时间后的时钟漂移,同步必须在启动 NTP 客户端后几秒钟后进行,并且偏移量必须保持不变稳定的。

如何ntpd在不确切知道时钟漂移的情况下获得稳定且小的偏移量?

ntp time-synchronization ntpd clock-synchronization

8
推荐指数
3
解决办法
4070
查看次数