Mir ist aufgefallen, dass auf meinen Servern und anderen Computern die Uhr immer schwankt, sodass sie synchronisiert werden muss, um genau zu bleiben.
Wie driften die NTP-Server-Uhren nicht und bleiben immer korrekt?
Mir ist aufgefallen, dass auf meinen Servern und anderen Computern die Uhr immer schwankt, sodass sie synchronisiert werden muss, um genau zu bleiben.
Wie driften die NTP-Server-Uhren nicht und bleiben immer korrekt?
Antworten:
NTP-Server verlassen sich auf hochgenaue Uhren für eine präzise Zeitmessung. Eine übliche Zeitquelle für zentrale NTP-Server sind Atomuhren oder GPS-Empfänger (denken Sie daran, dass GPS-Satelliten Atomuhren an Bord haben). Diese Uhren sind als genau definiert, da sie eine sehr genaue Zeitreferenz liefern. GPS oder Atomuhren haben nichts Magisches an sich, sodass sie Ihnen genau sagen, wie spät es ist. Aufgrund der Funktionsweise von Atomuhren sind sie einfach sehr gut darin, wenn man ihnen einmal sagt, wie spät es ist, immer wieder genaue Zeitangaben zu machen (da die Sekunde in Bezug auf atomare Effekte definiert ist ). In der Tat ist es erwähnenswert, dass sich die GPS-Zeit von der UTC unterscheidet , die wir eher kennen. Diese Atomuhren sind wiederum gegen synchronisiertInternational Atomic Time oder TAI , um nicht nur den Zeitablauf, sondern auch die Zeit genau zu bestimmen .
Sobald Sie eine genaue Zeit auf einem System haben, das mit einem Netzwerk wie dem Internet verbunden ist, ist es eine Frage der Protokollentwicklung, die die Übertragung präziser Zeiten zwischen Hosts über ein unzuverlässiges Netzwerk ermöglicht. In dieser Hinsicht unterscheidet sich ein NTP-Server der Schicht 2 (oder weiter von der tatsächlichen Zeitquelle entfernt) nicht von Ihrem Desktop-System, das mit einer Reihe von NTP-Servern synchronisiert.
Wenn Sie einige genaue Zeiten haben (wie sie von NTP-Servern oder anderswo abgerufen werden) und die Weiterentwicklungsrate Ihrer lokalen Uhr kennen (die leicht zu bestimmen ist), können Sie die Driftrate Ihrer lokalen Uhr im Verhältnis zur "als genau" errechnen "im Laufe der Zeit. Nach dem Einrasten kann dieser Wert verwendet werden, um die lokale Uhr kontinuierlich so einzustellen, dass Werte angezeigt werden, die dem genauen Zeitablauf sehr nahe kommen, auch wenn die lokale Echtzeituhr selbst sehr ungenau ist. Solange Ihre lokale Uhr nicht sehr unregelmäßig ist, sollte dies eine gewisse Zeit lang ermöglichen, auch wenn Ihre vorgelagerte Zeitquelle aus irgendeinem Grund nicht mehr verfügbar ist. Einige NTP-Client-Implementierungen (wahrscheinlich die meisten ntpd
Daemon- oder Systemdienst-Implementierungen) tun dies, andere (wie der Begleiter von ntpd)ntpdate
das stellt einfach mal die uhr ein) geht nicht. Dies wird im Allgemeinen als Drift-Datei bezeichnet, da sie permanent ein Maß für die Clock-Drift speichert. Genau genommen muss sie jedoch nicht als bestimmte Datei auf der Festplatte gespeichert werden.
In NTP ist Schicht 0 per Definition eine genaue Zeitquelle. Schicht 1 ist ein System, das eine Schicht 0-Zeitquelle als Zeitquelle verwendet (und daher etwas ungenauer als die Schicht 0-Zeitquelle ist). Auch Stratum 2 ist etwas ungenauer als Stratum 1, da es seine Zeit mit der Quelle von Stratum 1 synchronisiert. Und so weiter. In der Praxis ist dieser Genauigkeitsverlust so gering, dass er in allen bis auf die extremsten Fälle völlig vernachlässigbar ist.
Bei der Netzwerkzeitmessung wird die Spezifikation, die angibt, wie ein Server seine Zeitquelle erhält, Stratum-Ebene genannt. Je niedriger die Stufe, desto besser ist die Zeit, die dieser Server einhält.
Stratum Level 0-Geräte sind nicht direkt mit dem Netzwerk verbunden. Sie sind das eigentliche Zeitmessgerät und müssen an einen Computer angeschlossen werden, um die tatsächliche Zeit abzuleiten. Dieser Computer wird dann zu einem Stratum Level 1 NTP-Server.
Ein Computer, der eine Verbindung zu einem Stratum Level 1 herstellt, kann auch zu einem Zeitserver werden, in diesem Fall jedoch zu einem Stratum Level 2. Je niedriger Ihr Stratum Level ist, desto genauer kann Ihre Zeitmessung sein.
Stratum Level 0-Geräte umfassen Atomuhren, die an TAI (International Atomic Time) teilnehmen.oder mit ihm synchronisiert, und Empfänger von Zeitsignalen, die von einer solchen Uhr gesendet werden. Am häufigsten sind dies GPS-Zeitnehmungsempfänger mit einer geeigneten Schnittstelle, die das GPS-PPS-Signal enthält. Das PPS-Signal sendet, wenn das GPS mehrere Satelliten gut erfasst, einen Impuls pro Sekunde, und die Vorderflanke dieses Impulses liegt innerhalb von Nanosekunden nach dem tatsächlichen Beginn dieser Sekunde. Abhängig von der Spezifikation des GPS-Empfängers kann das PPS-Signal mehr oder weniger genau sein. Dies liegt daran, dass jeder GPS-Satellit eine Atomuhr hat. Sobald der GPS-Empfänger seine eigene Position und den Standort der GPS-Satelliten gefunden hat, die er hört, kann er die HF-Ausbreitung korrigieren und Ihnen eine Zeit liefern, die fast so genau ist wie eine Atomuhr direkt am GPS-Empfänger.
Stratum Level 1-Server stellen also eine Verbindung zu Atomuhren oder GPS-Empfängern her, und NTP-Server stellen eine Verbindung zu ihnen her. Selbst wenn Sie eine Verbindung zu einem Server der Schichtstufe 2 oder 3 herstellen, der häufig angepasst wird, erhalten Sie eine in Nanosekunden gemessene Zeitgenauigkeit. Wenn Sie jedoch ein besseres Timing benötigen, stellen Sie eine Verbindung zu einem Server der Schicht 1 her, oder kaufen Sie einen geeigneten GPS-Empfänger für die Zeitmessung und werden Sie selbst zu einer Quelle der Schicht 1.
Alle Takte driften bis zu einem gewissen Grad, dies hängt von der Quelle des Taktsignals und dessen Nachverfolgung ab. In einem PC ist dies heutzutage die HPET, aber der PC kann den Überblick darüber verlieren, wie viele Ticks bei Überlastung vergangen sind.
Die NTP-Server, mit denen Ihr Computer spricht, verlieren wahrscheinlich ebenfalls Zeit. Sie verschieben jedoch ihre Zeit zurück zu einer besseren Quelle.
Letztendlich sind hochgenaue Uhren wie Atomuhren die besseren Quellen. Sie können sich NTP als ein Netzwerk von Maschinen vorstellen, von denen jede über eine Reihe von Quellen verfügt, auf die sie sich für die Zeit stützt, und die ihre eigene Zeit auf die als genauer erachtete Zeit verstellt.
Dies wird durch eine Quelle geregelt, die ihre Schicht angibt. Eine Atom- oder GPS-Uhr ist Schicht 0 und die Autorität über die Uhrzeit. Jede Schicht davon ist die nächste Schicht - Schicht 1, und überprüft eine Anzahl von Schichten-0-Quellen zusammen mit Gleichaltrigen auf derselben Ebene, um die Zeitquellen auf vernünftige Weise zu überprüfen.
Sie sprechen wahrscheinlich mit einer Zeitquelle der Schicht 2 oder 3.
Was die anderen geschrieben haben, ist wahr: Ein Stratum 1-Server bezieht seine Zeit von einem Stratum 0-Gerät. Ich weiß nicht, in welchen Zeitabständen das passiert, aber ich denke, dass sie dort ziemlich genau sind.
Ein Stratum n-Server mit n> 1 erhält seine Zeit über NTP von einem Stratum n-1-Server. Das heißt, es synchronisiert sich in regelmäßigen Abständen. Beim Starten des NTP-Dienstes erfolgt die Synchronisierung in recht kurzen Intervallen, und mit der Zeit nehmen die Intervalle zu. Schließlich ist das Intervall so groß wie 1024 s, ungefähr 17 Minuten.
Was nicht angesprochen wurde, ist die Frage, was zwischen diesen beiden Ereignissen passiert? Nun, es gibt eine Einrichtung namens Drift-Datei . Es hilft NTP, jegliche Abweichung zwischen der lokalen Uhr und der Referenzuhr zu überwachen. Die Frequenz der lokalen Uhr wird dann entsprechend der erkannten Abweichung angepasst, so dass die Zeit auch zwischen Serverabfragen genau ist.
Andere NTP-Implementierungen verwenden möglicherweise andere Funktionen, aber eines ist häufig: die Notwendigkeit und die Fähigkeit, die Taktfrequenz anzupassen.