私のサーバーや他のマシンでは常に時計がずれているため、正確に保つには同期する必要があることに気付きました。
NTPサーバーのクロックがドリフトせず、常に正しいままになるのはどうしてですか?
私のサーバーや他のマシンでは常に時計がずれているため、正確に保つには同期する必要があることに気付きました。
NTPサーバーのクロックがドリフトせず、常に正しいままになるのはどうしてですか?
回答:
NTPサーバーは、正確な計時のために非常に正確なクロックに依存しています。中央NTPサーバーの一般的な時刻源は、原子時計またはGPS受信機です(GPS衛星には原子時計が搭載されていることに注意してください)。これらのクロックは、非常に正確な時間基準を提供するため、正確であると定義されています。GPSや原子時計が何時かを正確に知らせる魔法のようなものはありません。原子時計はどのように機能するのか、彼らは単に非常に得意であり、かつて何時かを伝えられ、正確な時間を伝え続けます(秒は原子効果の観点から定義されているため)実際、GPS時間は、私たちが見慣れているUTCとは異なることに注意してください。これらの原子時計は順番に同期されます国際原子時またはTAIだけ正確に時間の経過も教えてくれないために時間を。
インターネットなどのネットワークに接続された1つのシステムで正確な時間を取得したら、信頼性の低いネットワークを介してホスト間で正確な時間を転送できるようにするプロトコルエンジニアリングの問題です。この点で、stratum 2(または実際の時間ソースから遠い)NTPサーバーは、一連のNTPサーバーと同期するデスクトップシステムと変わりません。
(NTPサーバーまたは他の場所から取得した)正確な時刻がいくつかあり、ローカルクロックの進行速度(わかりやすい)がわかるまでに、「正確であると信じられる」 " 時間の経過。いったんロックされると、この値を使用してローカルクロックを継続的に調整し、ローカルリアルタイムクロック自体が非常に不正確であっても、正確な時間経過に非常に近い値を報告することができます。ローカルクロックがそれほど不安定でない限り、何らかの理由でアップストリームタイムソースが使用できなくなった場合でも、正確な時刻をしばらく保持することができます。一部のNTPクライアント実装(おそらくほとんどのntpd
デーモンまたはシステムサービス実装)がこれを行い、他のNTPクライアント実装(ntpdのコンパニオンなど)ntpdate
単に時計を一度設定するだけです)しないでください。これは、クロックドリフトの測定値を永続的に保存するため、一般にドリフトファイルと呼ばれますが、厳密にはディスク上の特定のファイルとして保存する必要はありません。
NTPでは、層0は定義上、正確な時刻源です。Stratum 1は、タイムソースとしてstratum 0タイムソースを使用するシステムです(したがって、stratum 0タイムソースよりわずかに精度が低くなります)。Stratum 2は、Stratum 1のソースと時刻を同期しているため、Stratum 1よりも若干精度が低くなります。等々。実際には、この精度の低下は非常に小さいため、最も極端な場合を除いて完全に無視できます。
ネットワークタイムキーピングでは、サーバーがタイムソースを取得する方法を示す仕様は、ストラタムレベルと呼ばれます。レベルが低いほど、そのサーバーの時間管理は良好です。
Stratumレベル0デバイスは、ネットワークに直接接続されていません。これらは実際の計時デバイスそのものであり、実際の時刻を取得するにはコンピューターに接続する必要があります。その後、このコンピューターはStratumレベル1 NTPサーバーになります。
Stratumレベル1に接続しているコンピューターもタイムサーバーになりますが、ストラタムレベル2になります。コンピューターがタイムサーバーに接続すると、ストラタムレベルが低くなるほど、時間管理が正確になります。
Stratumレベル0デバイスには、TAI(国際原子時間)に参加する原子時計が含まれますまたはそれに同期し、そのようなクロックによって送信される時間信号の受信者。最も一般的なのは、GPS PPS信号を含む適切なインターフェイスを備えたGPS計時受信機です。GPSが複数の衛星を適切にロックしている場合、PPS信号は毎秒1つのパルスを送信し、そのパルスのリーディングエッジはその秒の実際の開始からナノ秒以内です。GPS受信機の仕様に応じて、PPS信号の精度は多少なります。これは、各GPS衛星に原子時計があるためです。GPSレシーバーは、リスニングしているGPS衛星の位置と位置を見つけると、RF伝搬を修正し、GPSレシーバーに原子時計を置くのとほぼ同じくらい正確な時間を与えることができます。
そのため、Stratumレベル1サーバーは原子時計またはGPS受信機に接続し、NTPサーバーはそれらに接続します。頻繁に調整するストラタムレベル2または3サーバーに接続しても、ナノ秒単位で測定されるタイミング精度がコンピューターに提供されます。しかし、より良いタイミングが必要な場合は、ストラタムレベル1のサーバーに接続するか、適切な計時GPSレシーバーを購入して、ストラタムレベル1のソースになります。
すべてのクロックはある程度ドリフトしますが、タイミング信号のソースとそれがどの程度追跡されるかに依存します。PCでは、これは最近のHPETですが、PCは過負荷になった場合に経過したティック数を追跡できなくなる場合があります。
マシンが通信するNTPサーバーも時間を失っている可能性がありますが、より良いソースに時間を戻します。
最終的に、より良いソースは、原子時計のような非常に正確な時計です。NTPはマシンのネットワークと考えることができます。各マシンは、時間に依存する多くのソースを持ち、自身の時間をより正確であると見なされるものに歪めます。
これは、層を宣言するソースによって管理されます。原子時計またはGPS時計はストラタム0であり、時刻が何であるかに関する権限です。それから出て行く各層は次の層-層1であり、タイムソースを健全性チェックするために、同じレベルのピアとともに層0ソースの数をチェックします。
層2または3のタイムソースと話している可能性があります。
他の人が書いたことは真実です。Stratum1サーバーはStratum 0デバイスから時間を取得します。どの時間間隔で発生するかはわかりませんが、そこではかなり正確だと思います。
n> 1のStratum nサーバーは、NTPを介してStratum n-1サーバーから時刻を取得します。つまり、定期的に同期します。NTPサービスを開始すると、非常に短い間隔で同期が行われ、時間の経過とともに間隔が増加し始めます。最終的に、間隔は1024秒、つまり約17分になります。
対処されていないのは、その間に何が起こるかという質問ですか?まあ、ドリフトファイルと呼ばれる機能があります。NTPがローカルクロックと基準クロック間のドリフトを監視するのに役立ちます。ローカルクロックの周波数は、検出されたドリフトに従って調整されるため、サーバーポーリング間の時間も正確になります。
他のNTP実装では他の機能を使用する場合がありますが、よくあることの1つは、クロックの周波数を調整する必要性と機能です。