3

如 NTP rfc 中所定义

“NTP 算法的目标是最小化 UTC 和系统时钟之间的时间差和频率差。”

我可以理解“时差”,但NTP 尝试同步的“频差”是什么?

4

2 回答 2

6

频率差异是您的时钟和 NTP 时钟(实际上被认为是完美的)之间的速度差异。

如果您的时钟每小时增加一分钟(与 NTP 服务器时钟相比),那就是频率差异。它也被称为漂移。

一个极端的简化示例:

假设您在每小时(00:00, 01:00, ...)的顶部与 NTP 同步,但是您的时钟非常糟糕,并且在那一小时内失去了十分钟。

如果您在午夜与 NTP 同步,以便您的两个时钟都设置为00:00那时,那么当(真实的)01:00到来时,您的时钟将读取00:50(您已经失去了十分钟)。

这意味着您将在 0 到 10 分钟之间失步。


那么你将如何以简单的方式解决这个问题?

如果同步将您的时钟设置00:05为(真正的)午夜会怎样。你会在五分钟后离开,但 NTP 时钟会逐渐爬上你,00:30在它开始领先你之前完美匹配。

然后在 (real) 01:00,您将处于00:55这样的状态,因此错误不会超过五分钟。


现在 NTP 将尝试避免立即将您的时间从 更改为 之类的事情00:5501:05因为很多软件(如cron)不会对它太友好。

更有可能在午夜将时钟同步在一起,然后在一个小时内逐渐将本地时间向前移动以保持它们对齐(比如每五分钟增加一秒,这将有效地恢复非直觉中在一小时内失去的十分钟 -痛苦的方式)。

于 2010-08-19T03:00:07.280 回答
1

频率差是时间差随...时间变化的程度。

也就是说,NTP 不仅试图将两个时钟拉得更近,而且实际上它们保持在一起。

它实际上利用了模糊的上下文知识,即计算机时钟是使用以一定速率振荡的石英晶体实现的——“时钟频率”。这是时钟“滴答”发生的频率

于 2010-08-19T02:59:15.507 回答