Soweit ich weiß, hängt die Genauigkeit der NTP-Synchronisation stark vom Netzwerk ab. Ich habe im Internet einige Zahlen von 50 Mikrosekunden bis "unter einer Sekunde" gesehen. Das ist ein großer Unterschied.
Ich glaube, Genauigkeitsabhängigkeit ist eine große Frage, die untersucht werden muss, aber bisher konnte ich kein Material finden, aus dem eindeutig hervorgeht, dass beispielsweise eine bestimmte Konfiguration diese bestimmte Genauigkeit gewährleistet.
Es heißt auf http://www.ntp.org/ntpfaq/NTP-s-algo.htm :
Ein Zeitunterschied von weniger als 128 ms zwischen Server und Client ist erforderlich, um die NTP-Synchronisation aufrechtzuerhalten. Die typische Genauigkeit im Internet reicht von etwa 5 ms bis 100 ms, möglicherweise abhängig von Netzwerkverzögerungen. Eine kürzlich durchgeführte Umfrage [2] ergab, dass 90% der NTP-Server Netzwerkverzögerungen von weniger als 100 ms aufweisen und etwa 99% innerhalb einer Sekunde mit dem Synchronisations-Peer synchronisiert sind.
Mit der PPS-Synchronisation ist auf einem Pentium-PC (zum Beispiel unter Linux) eine Genauigkeit von 50µs und eine Stabilität unter 0,1 PPM erreichbar.
Das ist etwas, aber vielleicht gibt es eine gründlichere Analyse zu diesem Thema?
Antworten:
Niemand kann garantieren, wie gut NTP in Ihrem Netzwerk funktioniert, da niemand weiß, wie gut Ihr Netzwerk mit dem Internet und den darauf befindlichen Zeitservern verbunden ist. Allerdings laut Uhrendisziplin-Algorithmus-Seite auf ntp.org
Beachten Sie, dass eine große, aber stabile Latenz zwischen Ihrem LAN und den Uhrenservern des Internets die Genauigkeit nicht so stark beeinträchtigt wie eine sehr variable Latenz.
Sie sagen nicht, woher Sie die obigen Schätzungen haben ('50 Mikrosekunden bis ... "unter einer Sekunde"), daher kann ich sie nicht kommentieren, aber meiner Erfahrung nach ist 50us unwahrscheinlich, es sei denn, Sie haben eine direkt angehängte Clock-Quelle und 1s ist unwahrscheinlich, es sei denn, Sie haben eine feuchte Schnur, die Sie mit dem Internet verbindet, und Sie verwenden Upstream-Server in der Antarktis.
Bearbeiten : Der Text, den Sie jetzt in Ihrer Frage zitieren, gibt einen Hinweis auf ein Papier, in dem 1999 festgestellt wurde, dass 99% der NTP-Server innerhalb einer Sekunde synchronisiert sind. Zum Glück gibt es neuere Arbeiten; In diesem Artikel haben einige Autoren der brasilianischen Federal University of Parana das Experiment im Jahr 2005 wiederholt und festgestellt (wenn ich deren Abbildung 1 richtig verstehe), dass nördlich von 99% - eher 99,5% - der Server jetzt weniger Offsets haben als 100ms, und dass 90% Offsets von weniger als 10ms haben. Das passt ziemlich gut zu meinen Erfahrungen (siehe oben).
Edit 2 : Eine letzte Falte: In all diesen Studien wird nicht untersucht, wie genau die lokale Uhr ist, sondern wie weit sie sich von der vorgelagerten Referenzuhr unterscheidet. Das ist offenbar nicht dasselbe. Aber der erste ist unerkennbar; Um zu wissen, wie falsch Ihre Uhr ist, müssen Sie genau wissen, wie spät es ist, und wenn Sie das gewusst hätten, warum hätten Sie Ihre Uhr überhaupt falsch eingestellt? Beachten Sie jedoch, dass diese Studien nicht den Unterschied zwischen lokaler Uhr und absoluter Zeit messen , sondern zwischen lokaler Uhr und Referenzuhr.
quelle
Welches Problem versuchen Sie zu lösen?
Die Lösung für Umgebungen, die eine höhere Genauigkeit als NTP erfordern, ist das Precision Time Protocol (PTP) . Ich hatte es in wissenschaftlichen und finanziellen Computeranwendungen. Es gibt jedoch Kompromisse .
Siehe auch: ptp-Zeitsynchronisation auf centos6 / rhel
quelle
Einige andere erwähnenswerte Dinge:
quelle
Eigeninteresse meinerseits: Ich bin ein Meinberg-Agent :-)
Ja. NTP kann eine End-to-End-Genauigkeit von bis zu ca. 50 us (das sind Mikrosekunden) Jitter, wenn Sie einen Linux- "Client" auf Bare Metal mit Chrony oder ntpd mit einem Linux-basierten NTP-Server synchronisieren, der von einem GPS, einer lokalen Atomuhr oder einer ähnlichen Quelle gesteuert wird.
Auf dem Computer mit lokalem GPS (mit einer PPS-Verbindung) werden zwischen der im Betriebssystem ausgeführten ntpd-Instanz und der Eingabe des PPS-Refclock-Treibers wahrscheinlich 0-2 Mikrosekunden Versatz angezeigt.
Diese verbleibenden 50 us "Ende an Ende über ein LAN" sind das Ergebnis mehrerer Pufferstufen, variabler IRQ-Latenz, anderen Datenverkehrs, der das LAN und die beteiligten Computerbusse stört, und so weiter. 50 us bedeutet ein LAN mit sehr wenig Verkehr. Sogar ein Switch kann einige Mikrosekunden Jitter verursachen - und High-End-Switches mit komplexen Funktionen sorgen für mehr Latenz und Jitter. Mit anderen Worten, es kann ziemlich schwierig sein, diese 50 Mikrosekunden unter realen Bedingungen in einem praktischen LAN zu erreichen.
In ähnlicher Weise resultieren diese cca <2us des PPS-Offsets nur aus der Unsicherheit der IRQ-Latenz und dem allgemeinen Jitter der Buslatenz auf gut verhaltener PC-Hardware.
Beachten Sie, dass NTP und seine Implementierungen ntpd und Chrony zweifellos die NTP-Transaktions-Roundtrip-Zeit messen und eine Hälfte dieser Roundtrip-Zeit subtrahieren (tatsächlich addieren), um die systematische Transportlatenz herauszufiltern (in eine Richtung). Sie führen auch eine Ausreißer-Ablehnung, einen Quorum-Konsens, eine Syspeer-Wahl durch und jeder NTP-Dämon filtert die Antworten, die er auf seine vorgelagerten Abfragen erhält. Die Millisekunden, die Sie in Ping und Traceroute sehen, verschieben Ihre lokale Uhr also nicht direkt. Entscheidend ist die Variabilität des Transaktions-Roundtrips, dh des sonstigen Datenverkehrs auf dem Pfad zu Ihrem vorgelagerten NTP-Server. Ntpq -p ist dein Freund.
Ein grundlegender GPS-Empfänger für die Zeitmessung mit einem TCXO kann möglicherweise 100-200 ns verbleibenden Jitter + Wander auf seinem PPS-Ausgang haben. Genug für NTP, solange das GPS gesperrt bleibt. (Die Holdover-Leistung ist bei TCXOs nicht sehr gut.) Ein GPS mit Qualitäts-Timing mit einem OCXO kann deutlich innerhalb von 100 ns liegen, vielleicht eher 10-30 ns Restfehler (Offset von der globalen UTC).
Beachten Sie, dass Satelliten, die über Ihnen fliegen und Sie durch die Atmosphäre strahlen, für den Empfänger möglicherweise etwas schwieriger sind als das Benchmarking in einem Labor mit einem GPS-Generator.
PTP ist ein Hammer. Sie benötigen HW-Unterstützung beim Großmeister, bei den Slaves und bei allen Switches - aber wenn Sie all dies erhalten, sind Restoffsets im niedrigen zweistelligen Nanosekundenbereich möglich. Ich persönlich habe dies in ptp4l mit einer i210-Netzwerkkarte mit HW-Unterstützung (Zeitstempel mit einer Nanosekundenauflösung) gesehen.
Der i210-Chip ist ein Wunder. Es verfügt über 4 universelle Pins, die zur Eingabe oder Ausgabe eines PPS-Signals verwendet werden können. Das Referenz-Intel-NIC-Addon-Board mit i210 (und seine OEM-Versionen von mehreren großen Anbietern) ist mit einem Pin-Header ausgestattet, mit dem Sie auf mindestens zwei dieser GPIO-Pins (SDPs, die von Intel genannt werden) zugreifen können. Neben der Implementierung eines PTP-Grandmaster-Ports kann der PPS-Eingang für eine präzise Zeitstempelung bei der Paketerfassung genutzt werden. Sie benötigen eine präzise PPS-Quelle und eine benutzerdefinierte Software, um eine Servoschleife auszuführen und die PHC des i210 auf die ext.PPS abzustimmen. Dies führte auf meinem Prüfstand zu einstelligen ns (pro 1 s Iteration) des Restversatzes. Dies ist die Genauigkeit, die Sie dann in Ihren Erfassungszeitstempeln erhalten, Wenn Sie ein aktuelles tcpdump oder wireshark auf einem modernen Linux-Kernel ausführen (die gesamte Software benötigt Unterstützung für die Auflösung im Nanosekundenbereich). Besser noch: Ich bin den ganzen Weg gegangen und habe einen einfachen PLL-Synthesizer gebaut, um 25 MHz für die NIC-Takte zu erzeugen, der an eine präzise 10-MHz-Referenz vorgelagert ist. Danach fiel der verbleibende Offset in der Servoschleife meines Paketerfassungsgeräts auf eine saubere 0 (ein Beweis dafür, dass meine 10-MHz-Referenz mit der PPS von derselben GPS-Box phasensynchron ist).
Beachten Sie, dass PTP-Grandmaster angegeben werden können, um Zeitstempel mit einer tatsächlichen Granularität pro 8 ns bereitzustellen (in einem Datentyp mit einer Auflösung von 1 ns). Dies ist sinnvoll - Gigabit-Ethernet verwendet in der Regel einen 125-MHz-Takt, der als Byte-Takt in den Interna des MAC verwendet wird, dieser Takt wird wahrscheinlich auch im GMII verwendet, und er ist auch der Symboltakt in metallischem 1000Base-TX (vier Paare) parallel 2 Bits pro Symbol pro Paar). Wenn Sie also nicht 1000Base-FX (Glasfaser) mit SERDES und eine extremistische Implementierung der HW-Zeitstempeleinheit in der PHY verwenden, die auf einzelne SERDES-Bits beschränkt ist, sind diese 8 ns alles, worauf Sie bei Gigabit-Ethernet realistisch hoffen können. Einige Chip-Datenblätter (mit PTP-Unterstützung) behaupten sogar, dass der MII-Datenpfad nicht frei von Puffern ist und dass von dort Jitter ausgehen kann.
Die PTP-Pakete enthalten tatsächlich Zeitstempel, die in einem Datentyp gespeichert sind, der eine Auflösung im Subnanosekundenbereich ermöglicht. Das "Sub-Nanosekunden-Teilfeld" wird heutzutage jedoch typischerweise nicht mehr verwendet. AFAIR nur das White Rabbit-Projekt (im Zusammenhang mit CERN, dem Schweizer Forschungszentrum) hat bisher Sub-ns-Präzision implementiert.
PTP ist auch in reiner Software ohne HW-Beschleunigung verfügbar. In diesem Fall erwarten Sie für einen SW-basierten GM und einen SW-basierten Client einen ähnlichen Restjitter wie bei NTP - dh ungefähr 50 us in einem dedizierten, aber PTP-unbewussten LAN. Ich erinnere mich, dass ich von einem HW-Großmeister auf einer direkten Verbindung (ohne Zwischenschaltung) und einem Nur-SW-Client (auf einer PTP-PC-NIC ohne Kenntnisnahme) eine Präzision im Submikrosekundenbereich erhalten habe. Im Vergleich zu NTP konvergiert der PTP-Servo viel schneller.
Während ich einige "Hausaufgaben" machte, kam mir kürzlich der Gedanke, dass das Transportieren von PPS oder ähnlichen "diskreten" Zeitsignalen über großflächige Glasfaserrouten anfällig für temperaturabhängiges "Wandern" der Ausbreitungszeit sein kann. Und obwohl ich dies nicht experimentell testen kann, zitieren einige Quellen in den Zwischenwebs Zahlen zwischen 40 und 76 Pikosekunden pro km und Kelvin. Es ist zu beachten, dass diese Art von "thermischer Wanderung" bei der Simplex-PPS-Übertragung zwar nicht "im Band" gemindert werden kann, PTP dies jedoch aufgrund seiner Standard-Pfadverzögerungsmessungen (die von der Vollduplex-Übertragung abhängen) automatisch nachkompensieren würde.
Soviel zu einem Überblick darüber, wie die "Präzisionen" bei verschiedenen Timing-Technologien / Schnittstellen aussehen. Welche Genauigkeit für Sie gut genug ist, hängt von Ihrer Anwendung und Ihren tatsächlichen Anforderungen ab.
quelle