Anhang D. Unterschiede zu Vorherigen Versionen
Dieser Anhang fasst die Unterschiede zwischen NTP Version 3 und vorherigen Versionen (Version 2 und Version 1) zusammen. Die Änderungen wurden vorgenommen, um Genauigkeit, Stabilität und Zuverlässigkeit zu verbessern sowie Unklarheiten in der Spezifikation zu klären. Die meisten Änderungen sind Verfeinerungen und Verbesserungen, die die Interoperabilität mit vorherigen Versionen nicht beeinträchtigen.
Änderungen von Version 3 gegenüber Version 2
1. Lokaluhren-Algorithmus
Der Lokaluhren-Algorithmus wurde vollständig neu gestaltet, um Stabilität und Genauigkeit zu verbessern. Der neue Algorithmus verwendet ein Phasenregelkreis (PLL)-Design mit adaptiver Bandbreitensteuerung. Wichtige Änderungen umfassen:
- Verbesserte Frequenzkompensation, die Oszillatordrift genauer verfolgen kann
- Adaptive Zeitkonstante, die sich automatisch an Netzwerkbedingungen anpasst
- Verbesserte Schritt/Slew-Schwellenwertlogik, um große Korrekturen besser zu handhaben
- Watchdog-Timer, um zu verhindern, dass veraltete Versatzdaten die Uhr beeinflussen
Der neue Algorithmus wird ausführlich in Abschnitt 5 und Anhang G beschrieben. Implementierungen werden dringend ermutigt, den neuen Algorithmus zu übernehmen, obwohl der alte Algorithmus weiterhin kompatibel bleibt.
2. Uhrenkombinations-Algorithmus
Ein neuer optionaler Algorithmus zum Kombinieren von Versätzen von mehreren Peers wurde hinzugefügt (Anhang F). Dieser Algorithmus:
- Verwendet gewichtete Mittelung basierend auf Synchronisationsdistanz
- Verbessert die Genauigkeit, wenn mehrere Peers verfügbar sind
- Reduziert die Auswirkungen von Ausreißern und asymmetrischen Pfaden
- Basiert auf Techniken, die von nationalen Standardlabors verwendet werden
Der Uhrenkombinations-Algorithmus ist optional und beeinträchtigt die Interoperabilität nicht.
3. Fehlerbudget-Verfeinerungen
Die Art und Weise, wie Verzögerung, Versatz und Dispersion berechnet werden, wurde verfeinert:
- Dispersionsberechnung umfasst jetzt alle Fehlerkomponenten (Messfehler, Schiefe-Akkumulation, Filterdispersion)
- Verzögerungsberechnung vereinfacht durch Verschieben von Fehlertermen zur Dispersion
- Synchronisationsdistanz berücksichtigt jetzt alle Fehlerquellen ordnungsgemäß
- Fehlergrenzen können unter festgelegten Annahmen formal bewiesen werden (siehe Anhang H)
Diese Änderungen bieten eine strengere Grundlage für Korrektheitsbehauptungen, beeinflussen jedoch den normalen Betrieb nicht wesentlich.
4. Uhrenauswahl-Algorithmus
Das Uhrenauswahlverfahren wurde modifiziert, um die Zuverlässigkeit zu verbessern:
- Schnittalgorithmus aus dem Digital Time Service (DTS) übernommen ersetzt den vorherigen Sortierschritt
- Clustering-Algorithmus verfeinert, um mehrere Kandidaten besser zu handhaben
- Falschmesser-Erkennung verbessert unter Verwendung von Marzullos Algorithmus
- Überlebenden-Auswahl berücksichtigt jetzt sowohl Schicht als auch Synchronisationsdistanz
Der neue Algorithmus ist robuster bei der Erkennung und Ablehnung fehlerhafter Uhren, während die Kompatibilität mit vorherigen Versionen erhalten bleibt.
5. Uhrenfilter-Algorithmus
Kleinere Verfeinerungen des Uhrenfilter-Algorithmus:
- Filterdispersionsberechnung verbessert, um Stichprobenvarianz besser darzustellen
- Schieberegister-Verwaltung verfeinert für bessere Leistung
- Dispersions-Alterung berücksichtigt jetzt ordnungsgemäß die Zeit seit der letzten Aktualisierung
- Maximale Dispersions-Begrenzung verhindert numerischen Überlauf
6. Schaltsekundenbehandlung
Verbesserungen beim Schaltsekundenverwaltung:
- Schaltsekundenindikator-Bits werden jetzt ordnungsgemäß durch das Synchronisationssubnetz propagiert
- Lokaluhrenverfahren verbessert, um 61-Sekunden- und 59-Sekunden-Minuten korrekt zu handhaben
- Minimales Schrittintervall hinzugefügt, um vorzeitige Schrittänderungen während Schaltereignissen zu verhindern
- Schaltsekundentabellen können ohne Codeänderungen aktualisiert werden
7. Abfrageintervall-Verwaltung
Die Abfrageintervall-Verwaltung wurde verfeinert:
- Adaptive Abfrage basierend auf lokaler Uhren-Compliance und Stabilität
- Minimale und maximale Abfrageintervalle jetzt konfigurierbar
- Abfrageintervall-Begrenzung für ausgewählte Synchronisationsquelle
- Hysterese zur Verhinderung schneller Abfrageintervall-Änderungen
8. Zustandsvariablen-Änderungen
Mehrere Zustandsvariablen wurden hinzugefügt oder geändert:
- peer.valid-Zähler hinzugefügt, um gültige Proben zu verfolgen
- peer.update-Zeitstempel hinzugefügt für Dispersions-Alterung
- sys.poll hinzugefügt zur Steuerung des systemweiten Abfrageverhaltens
- Verschiedene Parameter zur Klarheit umbenannt oder neu organisiert
9. Paketformat
Das Paketformat bleibt identisch mit Version 2, mit einer Ausnahme:
- Referenzbezeichner-Feld-Interpretation für Schicht 0 und 1 klargestellt
- Präzisionsfeld-Interpretation verfeinert
- Abfrageintervall-Feld wird jetzt konsistent als Potenz von zwei interpretiert
10. Authentifizierung
Der Authentifizierungsmechanismus bleibt gegenüber Version 2 unverändert, aber:
- Schlüsselverwaltungs-Verfahren klargestellt
- Leistungsüberlegungen dokumentiert
- Interaktion mit Uhrenverfahren präziser spezifiziert
Änderungen von Version 2 gegenüber Version 1
Zur Vollständigkeit werden die wichtigsten Änderungen von Version 1 zu Version 2 zusammengefasst:
1. Paketformat
- Schichtfeld von 2 auf 8 Bits erweitert
- Präzisionsfeld hinzugefügt zur Anzeige der Uhrenpräzision
- Felder Wurzelverzögerung und Wurzeldispersion hinzugefügt
- Referenzbezeichner-Feld modifiziert zur Unterstützung von ASCII-Zeichenfolgen
2. Synchronisationsalgorithmus
- Peer-Auswahl-Algorithmus verfeinert zur Verwendung von Schicht und Synchronisationsdistanz
- Erreichbarkeits-Mechanismus hinzugefügt zur Erkennung von Verbindungsausfällen
- Uhrenfilter-Algorithmus hinzugefügt zum Glätten von Proben
3. Lokaluhr
- Compliance-Register hinzugefügt zur Verfolgung der Lokaluhrenstabilität
- Frequenzkompensation verbessert
- Graduelle Phasenanpassungen verfeinert
4. Betriebsmodi
- Broadcast-Modus für LAN-Umgebungen hinzugefügt
- Client/Server-Modus-Unterscheidung klargestellt
- Symmetrische Modi verfeinert
5. Kontrollnachrichten
- Optionale Kontrollnachrichten-Funktion hinzugefügt (Anhang B)
Interoperabilitätsüberlegungen
NTP Version 3 ist so konzipiert, dass sie mit vorherigen Versionen interoperiert:
- Version 2 und Version 3-Implementierungen können ohne Einschränkungen interoperieren
- Version 1-Implementierungen können interoperieren, erreichen jedoch möglicherweise nicht die gleiche Genauigkeit
- Gemischte Netzwerke funktionieren korrekt, wobei Version 3-Implementierungen von neuen Algorithmen profitieren
Kompatibilitätsrichtlinien
- Versionsfeld sollte in übertragenen Nachrichten auf 3 gesetzt werden
- Nachrichten mit Version 2 sollten normal akzeptiert und verarbeitet werden
- Nachrichten mit Version 1 sollten mit reduzierter Funktionalität akzeptiert werden
- Kontrollnachrichten sollten nur an Peers gesendet werden, von denen bekannt ist, dass sie diese unterstützen
Upgrade-Pfad
Organisationen können schrittweise auf Version 3 aktualisieren:
- Primärserver sollten zuerst aktualisiert werden, um von verbesserten Algorithmen zu profitieren
- Sekundärserver können nach Bedarf aktualisiert werden
- Clients können zuletzt aktualisiert werden, da sie von verbesserter Servergenauigkeit profitieren
- Gemischte Versionen können unbegrenzt ohne Probleme koexistieren
Implementierungshinweise
Implementierungen sollten:
- Neue Algorithmen übernehmen, wo möglich für verbesserte Leistung
- Kompatibilität wahren mit vorherigen Versionen
- Erweiterungen dokumentieren zum Standardprotokoll
- Konfigurationsoptionen bereitstellen zum Aktivieren/Deaktivieren optionaler Funktionen
- Interoperabilität testen mit bestehenden Implementierungen
Die Änderungen in Version 3 repräsentieren die gesammelte Erfahrung mehrerer Jahre Betrieb im Internet. Sie bieten signifikante Verbesserungen in Genauigkeit, Stabilität und Zuverlässigkeit bei gleichzeitiger vollständiger Rückwärtskompatibilität.