Maschinelle Übersetzung, nicht von einem Muttersprachler geprüft. Englisch ist die maßgebliche Fassung.

ZeitgebungAuf GitHub bearbeitenQuelle: docs/SLOT-TIMING.md

Slot-Zeitgebung

Die Szenarioart slot-timing beantwortet drei Fragen für eine Uhr, die zwischen Synchronisationen frei läuft und den Verkehr innerhalb eines zeitindizierten Slots halten muss: ein Routing-, Aufgaben- oder Kontakt-Slot, dessen Guard der größte absolute Zeitfehler auf jeder Seite ist, bei dem der Slot noch funktioniert.

  1. Wann bricht der Guard? Sekunden vom letzten Fix, bis der vorhergesagte Zeitfehler den Guard erreicht, mit allen beitragenden Termen einzeln aufgeführt und dem dominierenden benannt.
  2. Wie viel Zeit bleibt jetzt? Dieselbe Größe abzüglich der seit dem Fix bereits verstrichenen Zeit.
  3. Wie oft muss die Uhr einen Fix nehmen? Das größte Intervall zwischen Fixes, das den Fehler innerhalb des Guards hält, abzüglich der Latenz, bevor ein Fix wirksam wird.

Ein optionaler Abschnitt spoofing fügt das Timing-Schutzniveau (TPL) für einen Empfänger im Orbit hinzu; siehe Spoofing eines Empfängers im Orbit.

Führen Sie das mitgelieferte Beispiel mit kshana example slot-timing-ocxo-leo aus.

Abkürzungen: GNSS, Global Navigation Satellite System; TCXO, temperaturkompensierter Quarzoszillator; OCXO, thermostatgeregelter Quarzoszillator; RAFS, Rubidium-Atomfrequenznormal; CSAC, Atomuhr im Chip-Format; USO, ultrastabiler Oszillator; DSAC, Atomuhr für den tiefen Raum; ADEV, Allan-Abweichung; FM, Frequenzmodulation (hier Rauschen auf der Frequenz der Uhr); PM, Phasenmodulation (Rauschen auf ihrer Phase); IEEE, Institute of Electrical and Electronics Engineers; ITU-T, der Sektor Telekommunikationsstandardisierung der Internationalen Fernmeldeunion; TIE, Zeitintervallfehler; MTIE, maximaler Zeitintervallfehler; TDEV, Zeitabweichung; max|TE|, maximaler absoluter Zeitfehler; CUSUM, Änderungsdetektor mit kumulativer Summe; TPL, Timing-Schutzniveau; LEO, niedrige Erdumlaufbahn; NIST SP, National Institute of Standards and Technology Special Publication; UFFC, Ultrasonics, Ferroelectrics, and Frequency Control (eine IEEE Transactions); IGS, International GNSS Service; GPS, Global Positioning System; Block IIF, die GPS-Satelliten der Block-II-Folgegeneration; SHA-256, der 256-Bit Secure Hash Algorithm; PPS, Puls pro Sekunde.

Das Fehlermodell#

Der vorhergesagte Zeitfehler nach t Sekunden freiem Lauf ab einem Fix ist

E(t) = k·√(σ₀² + (σ_f·t)² + σ_x²(t))  +  (|y₀| + |c_T·ΔT|)·t  +  ½·|D|·t²
σ_x²(t) = σ_PM² + q_wf·t + h_F·t² + q_rw·t³/3 + q_rr·t⁵/20
Symbol Bedeutung
k Abdeckungsfaktor (3 entspricht etwa 99,7 % eines gaußschen Fehlers)
σ₀ Ein-Sigma-Zeitfehler des Fixes
σ_f Ein-Sigma-Fehler der beim Fix bekannten Frequenz; eine über ein Fenster W geschätzte Frequenz trägt etwa σ_y(W)
σ_PM² Varianz des weißen Phasenrauschens: Jitter des Zeitfehlers, ein konstanter Sockel
q_wf, q_rw, q_rr Dichten von weißem FM, Random-Walk-FM und Random-Run-FM (die Van-Loan-Terme von holdover::coast_phase_variance)
h_F Flicker-FM-Sockel der Allan-Varianz
y₀ nach dem Fix verbleibender relativer Frequenzversatz
c_T·ΔT Frequenzversatz durch eine Temperaturänderung ΔT über den Temperaturkoeffizienten c_T
D lineare Alterungsrate

Jeder FM-Term ist für seine eigene Rauschart gleich t²·σ_y²(t), mit σ_y²(τ) = 3σ_PM²/τ² + q_wf/τ + h_F + q_rw·τ/3 + q_rr·τ³/20 (Zucca und Tavella, IEEE Trans. UFFC 52(2), 2005). Für weißes FM, Random-Walk-FM und Random-Run-FM ist diese Beziehung exakt. Für Flicker-FM ist sie die übliche Schätzung des Zeitvorhersagefehlers (Riley, NIST SP 1065): Flicker-FM hat ohne eine Grenzfrequenz nach unten keine geschlossene Form. Die Frequenzversätze addieren sich im Betrag, weil ihre Vorzeichen unbekannt sind, der deterministische Anteil ist also ein ungünstigster Fall. Jeder Term ist nicht negativ und in t nicht fallend, daher hat E(t) = guard eine Wurzel, die durch Einschließen und Bisektion gefunden wird.

Woher die Uhr kommt#

Quelle Szenarioschlüssel Was es ist Stufe
Klassenstandard oscillator.class eine zitierte ADEV für eine Sekunde und ein rotes Rauschniveau, synthetisiert zwei und vier Dekaden darunter MODELLED: die Antwort für eine stabile Uhr wird vom angenommenen Sockel bestimmt
Datenblatt-Voreinstellung oscillator.preset die Voreinstellungen für Telekom-Zeitgebung (ocxo, rubidium, caesium, csac), jede ein benanntes Microchip-Datenblatt MODELLED: eine Hüllkurve der Datenblatt-Höchstwerte
Eingebettetes Datenblatt oscillator.datasheet die eigene ADEV-Tabelle des Kunden, Alterung und Temperaturkoeffizient MODELLED: eine Hüllkurve der angegebenen Höchstwerte
Gemessene Aufzeichnung oscillator.record eine Phasenaufzeichnung; ihre überlappende ADEV wird durch gewichtete kleinste Quadrate angepasst die Inversion ist an einer zurückgehaltenen realen Aufzeichnung VALIDATED (unten)

Die drei in 0.28.0 hinzugefügten Klassen zitieren jeweils ein öffentliches Datenblatt:

Klasse ADEV für eine Sekunde Quelle
tcxo 2.0e-10 EndRun Technologies, Disciplined Oscillator Options, Spalte für einfaches TCXO
ocxo 5e-12 Microchip-Datenblatt OX-208, Rev 12-1-2021
rafs 3e-11 Microchip-Datenblatt 8040C Rubidium Frequency Standard, DS00003047A

Die Zeilen von EndRun für lange Mittelungszeiten laufen über diese Tabelle hinweg zusammen (4e-13 für jeden Oszillator außer dem TCXO, 8e-13, bei 10.000 s, und 6e-14 für alle bei 100.000 s), was nahelegt, dass sie das nachgeführte Produkt beschreiben und nicht den freilaufenden Oszillator; sie werden daher nicht verwendet.

Die Anpassung an die Aufzeichnung ist gewichtet. Eine Schätzung der Allan-Varianz mit edf äquivalenten Freiheitsgraden hat eine Varianz von etwa 2σ⁴/edf, sodass jeder Punkt mit dem Residuum √(edf/2)·(model/σ² − 1) eingeht. Eine ungewichtete Anpassung ließ die kurzen Mittelungszeiten über die Terme der langen Mittelungszeiten entscheiden: Bei einer Testaufzeichnung mit weißem FM erzeugte sie einen scheinbaren Flicker-Sockel, der eine Überschreitung nach 2.000 s um 30 % verkürzte. Ein Datenblatt oder eine Aufzeichnung stützt nur Mittelungszeiten bis zu ihrem längsten Punkt; eine Überschreitung darüber hinaus wird mit extrapolated gekennzeichnet.

Validierung: die Inversion an einer zurückgehaltenen realen Uhr#

tests/slot_timing_cs5071a_holdout.rs verwendet die Aufzeichnung mit 556 990 Messwerten eines Cäsium-Normals 5071A, gemessen gegen einen Wasserstoff-Maser (A. Wallin, verteilt mit allantools; dieselbe Aufzeichnung, die die Schätzer-Referenz tests/cs5071a_reference.rs verwendet). Mit dem Maser als Referenz ist die Aufzeichnung ein freier Lauf von 6,4 Tagen.

  1. Das Rauschmodell nur am ersten Drittel der Aufzeichnung anpassen.
  2. Aus diesem Modell die Auslaufzeit vorhersagen, bei der der Ein-Sigma-Zeitfehler 0,5, 0,75, 1, 1,5, 2 und 2,5 ns erreicht.
  3. An den anderen zwei Dritteln alle 997 s ab einem Synchronisationspunkt auslaufen lassen, mit der aus dem vorhergehenden Drittel geschätzten Frequenz, und messen, wo der quadratische Mittelwert des Auslauffehlers jede Schwelle erreicht.

Der Zielwert für das Bestehen, festgelegt, bevor der Test erstmals lief, ist: jede vorhergesagte Überschreitung liegt innerhalb eines Faktors von 1,5 der gemessenen. Eine Kontrolle, die als weißes FM gelesene ADEV für eine Sekunde, muss diesen Zielwert verfehlen, damit der Zielwert ein gutes Modell von einem schlechten unterscheiden kann. Der Test gibt seine Tabelle aus; eine Mutation, die den Pegel des weißen FM halbiert, lässt ihn fehlschlagen. Die Rohaufzeichnung sind von git ignorierte Drittanbieterdaten: scripts/fetch_cs5071a.sh lädt sie, und der Workflow realdata-clock führt den Test mit KSHANA_REQUIRE_REALDATA=1 aus, sodass eine fehlende Datei dort fehlschlägt, statt übersprungen zu werden.

Was dies validiert: den Pfad Anpassen-dann-Invertieren, an einem von weißem FM dominierten Atomnormal, über Auslaufzeiten bis etwa 50.000 s. Was nicht: die Datenblatt- und Klassenquellen, die deterministischen Terme und einen Quarzoszillator (nächster Abschnitt).

Dieselbe Vorhersage an einem realen Quarzoszillator: konservativ, nicht validiert#

tests/slot_timing_ocxo_holdout.rs verwendet einen gemessenen OCXO: 19.982 Frequenzmesswerte im Sekundentakt des 10-MHz-Oszillators in einem HP-Impedanzanalysator, gegen einen Wasserstoff-Maser (A. Wallin, 2015, verteilt mit allantools; scripts/fetch_ocxo.sh). Das Rauschmodell und eine lineare Drift werden am ersten Drittel angepasst; jeder Auslauf an den anderen zwei Dritteln beginnt mit einer über die vorhergehenden 100 s geschätzten Frequenz, und das Modell trägt die Unsicherheit dieser Schätzung (fix_frequency_sigma, die eigene Allan-Abweichung des Modells bei 100 s).

Angepasst an Vorhergesagte ÷ gemessene Überschreitung, 0,2 bis 10 ns Ablesung
das erste Drittel (zurückgehalten) 0,59 bis 0,70 konservativ: nie später als gemessen, überwiegend außerhalb des Zielwerts von 1,5
das Auswertungssegment selbst (Diagnose) 0,98 bis 1,17 die Inversion ist richtig; die Lücke beim zurückgehaltenen Teil ist der sich verändernde Oszillator

Das Rauschniveau des Oszillators halbierte sich während der Aufzeichnung: Die Allan-Abweichung des ersten Drittels flacht bei etwa 7.5e-12 ab, die des Rests bei etwa 3.5e-12. Ein früh angepasstes Modell überschätzt das Rauschen, was die sichere Richtung ist. Der Quarzfall ist daher nicht validiert und bleibt MODELLED. Bei einem Quarz an einer eingeschwungenen Aufzeichnung anpassen und mit dem Altern des Bauteils neu anpassen.

Wie das Protokoll gewählt wurde, angegeben, weil es nicht blind war. Ein erster explorativer Lauf verwendete das Cäsium-Protokoll wieder (Frequenz aus dem vorhergehenden Drittel, kein Frequenzterm) und sagte Überschreitungen 1,4 bis 2,5 Mal später voraus als gemessen: optimistisch, die gefährliche Richtung. Die Frequenz eines Quarzes wandert, sodass eine Stunden vor dem Fix geschätzte Frequenz veraltet ist, und das Modell hatte keinen Term dafür, wie gut die Frequenz beim Fix bekannt ist. Der Term fix_frequency_sigma wurde aus diesem Grund hinzugefügt und dieses Protokoll festgelegt, bevor der Test geschrieben wurde; der Zielwert für das Bestehen wurde nicht verschoben. Der Test prüft außerdem, dass ohne den Term die Vorhersage in der Stichprobe bei jeder Schwelle optimistisch ist, der Term also tragend ist.

Dieselbe Vorhersage an Atomuhren im Orbit: 8 von 10, nicht validiert#

tests/slot_timing_igs_holdout.rs verwendet kombinierte finale IGS-Uhren mit 30 s über 14 Tage (17 bis 30 August 2025; scripts/fetch_igs_clocks.sh, jede Datei durch SHA-256 festgelegt): die Uhr jedes GPS-Satelliten des Blocks IIF gegen die IGS-Zeitskala. Das Protokoll (Satellitenmenge, Lückenregel, Anpassungsfenster, eine Synchronisation alle 3.570 s mit der Frequenz aus der vorhergehenden Stunde, Schwellen von 1 bis 20 ns, der Zielwert von 1,5 und die Regel, dass die Klasse nur besteht, wenn jeder Satellit besteht) wurde aufgeschrieben, bevor irgendwelche Daten heruntergeladen wurden.

Satelliten Vorhergesagte ÷ gemessene Überschreitung Bewertung
G06, G08, G09, G10, G24, G26, G27, G32 0,76 bis 1,46 innerhalb des Zielwerts
G25 1,51 bis 1,99 optimistisch
G30 1,20 bis 1,61 optimistisch
G03 nicht ausgewertet durch die Lückenregel ausgeschlossen (ein fehlender Tag)

Acht von zehn sind ein brauchbarer Beleg, aber bei zwei Satelliten wird vorhergesagt, dass sie länger halten, als sie es taten, was die gefährliche Richtung ist, und das Protokoll verlangt, dass jeder Satellit besteht. Der Orbitalfall bleibt daher MODELLED. Satelliten des Blocks IIF tragen sowohl Rubidium- als auch Cäsium-Normale, und die IGS-Dateien geben nicht an, welches aktiv ist, daher gilt das Ergebnis für die Satelliten und nicht für einen Uhrentyp. Warum sich G25 und G30 unterscheiden, wurde nicht untersucht.

Ein bench-Lauf für ein flugrepräsentatives Bauteil (umrissen, nicht durchgeführt)#

Die öffentliche OCXO-Aufzeichnung ist 5,5 Stunden lang, stammt von einem Laborinstrument, und der Oszillator schwingt noch ein. Den Quarzfall würde ein längerer gemessener freier Lauf eines flugrepräsentativen OCXO oder eines CSAC gegen eine Referenz validieren:

  • ein Zeitintervallzähler, der den 1-PPS des Oszillators mit einer GNSS-nachgeführten oder Maser-Referenz vergleicht, mindestens 10 Tage bei einer Stichprobe pro Sekunde, Temperatur protokolliert;
  • dasselbe Protokoll mit zurückgehaltenen Daten: am ersten Drittel anpassen, die Überschreitungen vorhersagen, am Rest messen, mit demselben Zielwert und derselben Kontrolle;
  • die Aufzeichnung und ihr Hash neben dem Test veröffentlicht, damit die Zeile reproduzierbar ist.

Es hängt vom Zugang zu Referenzhardware ab und wird nicht zugesagt.

Gegen welche Wander-Metrik sollte ein Slot akzeptiert werden?#

Zeitnormen bieten drei Familien von Metriken. Für einen zeitindizierten Slot misst nur eine davon das, was den Slot bricht.

  • MTIE (ITU-T G.810) ist der größte Spitze-Spitze-TIE innerhalb eines beliebigen Fensters gegebener Länge. Er ist blind für einen konstanten Versatz: Eine Uhr, die um 1 µs danebenliegt, aber vollkommen gleichmäßig läuft, hat einen MTIE nahe null und verfehlt jeden Slot. Er misst, wie stark sich der Fehler ändert, nicht, wo er liegt.
  • TDEV (ITU-T G.810) wird aus zweiten Differenzen der gemittelten Phase gebildet. Er entfernt einen konstanten Versatz und einen konstanten Frequenzfehler, und genau das sind die Terme, die einen Auslauf dominieren. Er kennzeichnet die Rauschart; er ist keine Akzeptanzmetrik für absolute Zeitgebung.
  • max|TE| (ITU-T G.8260; die Budgetmetrik von G.8271) ist der größte absolute Zeitfehler gegen die Referenzzeitskala. Er lässt sich direkt mit einem Guard vergleichen.

Schlussfolgerung. Einen Slot gegen max|TE| akzeptieren, bezogen auf die Referenzzeitskala des Netzes, ausgewertet als vorhergesagte Hüllkurve ab dem letzten Fix bei einem angegebenen Abdeckungsfaktor. Das ist, was E(t) ist: Weil jeder Term mit t wächst, ist das Maximum über einen Auslauf der Länge T gleich E(T). MTIE und TDEV bleiben als Diagnosen nützlich: TDEV, um zu erkennen, welchen Rauschterm man angehen sollte, MTIE(L), um zu begrenzen, wie stark sich der Fehler während eines Slots der Länge L bewegt.

Zwei Verfeinerungen, die die Wahl der Metrik nahelegt:

  • Der Guard gilt für den relativen Fehler zwischen zwei Knoten. Wenn Sender und Empfänger beide unabhängig auslaufen, addieren sich ihre stochastischen Fehler quadratisch und ihre deterministischen Fehler im Betrag. Wenn der stochastische Anteil dominiert, kann jedem Knoten guard/√2 zugewiesen werden; wenn Alterung oder Temperatur dominieren, guard/2.
  • Der Abdeckungsfaktor ist eine Entwurfsentscheidung, keine Eigenschaft der Uhr. k = 3 begrenzt etwa 99,7 % der gaußschen Fehler zu einem Zeitpunkt, nicht über jeden Slot an einem Tag; ein Routingplan mit vielen Slots pro Tag braucht das Risiko pro Slot, das er tolerieren kann.

Spoofing eines Empfängers im Orbit#

Der Abschnitt spoofing wertet orbital_timing::orbital_timing für dieselbe Uhr aus:

  • Geometrie. Ein Spoofer am Boden erreicht einen LEO-Satelliten nur, solange der Satellit über seinem Horizont steht: bei 550 km höchstens etwa zwölf Minuten je Überflug im Zenit. Ein Spoofer, der mit der Rate ρ rampt, kann die Uhr daher höchstens um ρ mal dieses Fenster verziehen, oder mal die Lücke bis zur nächsten unabhängigen Prüfung, falls diese kürzer ist (ramp_limited_pull_ns).
  • Dynamik. Ein gleichförmiger Zeitzug verschiebt jede Pseudoentfernung gleichermaßen und wird vom Uhrenbias aufgenommen, nicht von der Position, sodass eine Positionsprüfung mit einem Bahnpropagator nicht als Kreuzprüfung der Zeitgebung zählt.
  • Kreuzprüfungen. Ein Satellit hat selten einen zweiten unabhängigen Zeitempfänger. Er hat den Auslauf seiner eigenen Uhr (den Monitor von tpl), einen Zwei-Wege-Zeitvergleich mit einer Bodenstation während der Kontakte und Zeitvergleiche über Inter-Satelliten-Verbindungen. Eine Querverbindung ist von einem einzelnen Boden-Spoofer nur dann unabhängig, wenn der Nachbar im selben Moment außerhalb des Einflussbereichs dieses Spoofers liegt, was der Bericht anhand der Zahl der Satelliten je Ebene prüft.
  • Bedingte Grenze. Der Monitor-Sockel plus der Auslauf der Uhr über die Erkennungslatenz des CUSUM, was sich exakt auf tpl::timing_protection_level_ns reduziert, wenn die Uhr keinen Flicker-, Weißphasen- oder Random-Run-Term hat. Wie diese Grenze gilt sie nur bei erfolgter Erkennung.

Alles davon ist MODELLED: eine kugelförmige, nicht rotierende Erde, ein Überflug im Zenit, ein terrestrischer Spoofer mit angegebener maximaler Rampenrate. Die Ankunftsrichtung der Signale an einer zum Zenit zeigenden Antenne ist eine echte Kreuzprüfung, die ein Antennendiagramm braucht und nicht modelliert ist. DECEIVED-TIME.md erklärt, warum eine signierte Steuernachricht diese Bedrohung nicht beseitigt.

Nicht modelliert#

Frequenzsprünge, Strahlungseffekte und relativistische Frequenzversätze; ein thermisches Modell (die Temperaturänderung ist ein Sprung beim Fix); das Synchronisationsprotokoll selbst (ein Fix setzt den Fehler auf fix_sigma_ns zurück).