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.