NTPRFCで定義されているとおり
「NTPアルゴリズムの目標は、UTCとシステムクロックの間の時間差と周波数差の両方を最小限に抑えることです。」
「時差」は理解できますが、NTPが同期しようとする「周波数差」とは何ですか?
NTPRFCで定義されているとおり
「NTPアルゴリズムの目標は、UTCとシステムクロックの間の時間差と周波数差の両方を最小限に抑えることです。」
「時差」は理解できますが、NTPが同期しようとする「周波数差」とは何ですか?
周波数差は、クロックとNTPクロックの速度の差です(事実上、完全であると見なされます)。
(NTPサーバーのクロックと比較して)クロックが1時間ごとに1分増える場合、それが周波数の差です。ドリフトとも呼ばれます。
極端で単純化された例:
毎時の先頭でNTPと同期するとしますが(、、00:00
... 01:00
)、時計が非常に悪く、その時間に10分が失われます。
真夜中にNTPと同期して、両方の時計がその時間に設定されている00:00
場合、(実際の)01:00
時計が来ると、時計が読み取ら00:50
れます(10分が失われました)。
つまり、0分から10分の間のどこかでステップから外れることになります。
では、それを単純な方法でどのように修正しますか?
同期によって時計が00:05
(実際の)真夜中に設定された場合はどうなりますか。あなたは5分で外出しますが、NTPクロックは徐々にあなたに忍び寄り、あなたの00:30
前に出始める前に完全に一致します。
次に、(実際の)01:00
で00:55
、エラーが5分を超えないようにします。
これで、NTPは、多くのソフトウェア(など)があまり親切に対応しないため、すぐに時間をから00:55
に変更するようなことを避けようとします。01:05
cron
深夜に時計を同期させてから、現地時間を1時間かけて徐々に進めて、位置合わせを維持する可能性がはるかに高くなります(たとえば、5秒ごとに1秒を追加すると、腸以外で1時間に失われた10分を効果的に回復できます。レンチの方法)。
周波数差は、時間差が時間の経過とともにどの程度変化するかを示します。
つまり、NTPは、2つのクロックを近づけるだけでなく、実際にそれらを近づけようとします。
コンピュータの時計は、特定の速度、つまり「時計の周波数」で振動する水晶振動子を使用して実装されているという、この文脈ではわかりにくい知識を実際に利用しています。これは、時計の「カチカチ」が発生する頻度です。