Slot-tijdsynchronisatie
De scenariosoort slot-timing beantwoordt drie vragen voor een klok die vrij loopt tussen synchronisaties en het verkeer binnen een tijdgeïndexeerd slot moet houden: een routerings-, taak- of contactslot waarvan de guard de grootste absolute tijdfout is, aan beide zijden, waarbij het slot nog werkt.
- Wanneer bezwijkt de guard? Seconden vanaf de laatste positiebepaling tot de voorspelde tijdfout de guard bereikt, met elke bijdragende term afzonderlijk vermeld en de dominante benoemd.
- Hoeveel tijd is er nu nog? Dezelfde maat min de tijd die al is verstreken sinds de synchronisatie.
- Hoe vaak moet de klok zich laten synchroniseren? Het grootste interval tussen synchronisaties dat de fout binnen de guard houdt, na aftrek van de latentie voordat een synchronisatie van kracht wordt.
Een optionele sectie spoofing voegt het timing protection level (TPL) toe voor een ontvanger in een baan; zie Een ontvanger in een baan spoofen.
Voer het meegeleverde voorbeeld uit met kshana example slot-timing-ocxo-leo.
Afkortingen: GNSS, Global Navigation Satellite System; TCXO, temperatuurgecompenseerde kristaloscillator; OCXO, oventgestuurde kristaloscillator; RAFS, rubidium-atoomfrequentiestandaard; CSAC, atoomklok op chipschaal; USO, ultrastabiele oscillator; DSAC, atoomklok voor de diepe ruimte; ADEV, Allan-deviatie; FM, frequentiemodulatie (hier: ruis op de frequentie van de klok); PM, fasemodulatie (ruis op zijn fase); IEEE, Institute of Electrical and Electronics Engineers; ITU-T, de Telecommunication Standardization Sector van de International Telecommunication Union; TIE, tijdintervalfout; MTIE, maximale tijdintervalfout; TDEV, tijddeviatie; max|TE|, maximale absolute tijdfout; CUSUM, detector voor verandering op basis van cumulatieve som; TPL, timing protection level; LEO, lage baan om de aarde; NIST SP, National Institute of Standards and Technology Special Publication; UFFC, Ultrasonics, Ferroelectrics, and Frequency Control (een IEEE Transactions); IGS, International GNSS Service; GPS, Global Positioning System; Block IIF, de GPS Block II Follow-on-satellieten; SHA-256, het 256-bit Secure Hash Algorithm; PPS, puls per seconde.
Het foutmodel#
De voorspelde tijdfout na t seconden doorlopen vanaf een synchronisatie is
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
| Symbool | Betekenis |
|---|---|
k |
dekkingsfactor (3 is ongeveer 99,7 % van een Gauss-fout) |
σ₀ |
tijdfout van één sigma van de synchronisatie |
σ_f |
fout van één sigma van de frequentie die bij de synchronisatie bekend is; een frequentie geschat over een venster W draagt ongeveer σ_y(W) |
σ_PM² |
variantie van witte faseruis: jitter van de tijdfout, een constante ondergrens |
q_wf, q_rw, q_rr |
dichtheden van witte, random-walk- en random-run-FM (de van-Loan-termen van holdover::coast_phase_variance) |
h_F |
flicker-FM-ondergrens van de Allan-variantie |
y₀ |
resterende fractionele frequentie-afwijking na de synchronisatie |
c_T·ΔT |
frequentie-afwijking door een temperatuurverandering ΔT via de temperatuurcoëfficiënt c_T |
D |
lineaire verouderingssnelheid |
Elke FM-term is gelijk aan t²·σ_y²(t) voor zijn eigen ruistype, met σ_y²(τ) = 3σ_PM²/τ² + q_wf/τ + h_F + q_rw·τ/3 + q_rr·τ³/20 (Zucca en Tavella, IEEE Trans. UFFC 52(2), 2005). Voor witte, random-walk- en random-run-FM is die relatie exact. Voor flicker-FM is het de gangbare schatting van de fout in de tijdvoorspelling (Riley, NIST SP 1065): flicker-FM heeft zonder laagfrequente afkap geen gesloten vorm. De frequentie-afwijkingen tellen in grootte op omdat hun tekens onbekend zijn, dus het deterministische deel is een ongunstigste geval. Elke term is niet-negatief en niet-dalend in t, dus E(t) = guard heeft één wortel, gevonden door insluiten en bisectie.
Waar de klok vandaan komt#
| Bron | Scenariosleutel | Wat het is | Tier |
|---|---|---|---|
| Standaard van de klasse | oscillator.class |
één geciteerde ADEV van één seconde en een roodruisondergrens die twee en vier decaden eronder is gesynthetiseerd | MODELLED: het antwoord voor een stabiele klok wordt bepaald door de aangenomen ondergrens |
| Datasheet-voorinstelling | oscillator.preset |
de voorinstellingen voor telecomtijdsynchronisatie (ocxo, rubidium, caesium, csac), elk een benoemde Microchip-datasheet |
MODELLED: een envelop van datasheetmaxima |
| Inline datasheet | oscillator.datasheet |
de eigen ADEV-tabel, veroudering en temperatuurcoëfficiënt van de klant | MODELLED: een envelop van de opgegeven maxima |
| Gemeten record | oscillator.record |
een faserecord; zijn overlappende ADEV wordt gefit met gewogen kleinste kwadraten | de inversie is VALIDATED op een achtergehouden echt record (hieronder) |
De drie klassen die in 0.28.0 zijn toegevoegd, citeren elk één openbare datasheet:
| Klasse | ADEV van één seconde | Bron |
|---|---|---|
tcxo |
2.0e-10 | EndRun Technologies, Disciplined Oscillator Options, kolom basis-TCXO |
ocxo |
5e-12 | Microchip OX-208-datasheet, Rev 12-1-2021 |
rafs |
3e-11 | Microchip 8040C Rubidium Frequency Standard-datasheet, DS00003047A |
De rijen van EndRun met lange middelingstijden convergeren over die tabel (4e-13 voor elke oscillator behalve de TCXO, 8e-13, bij 10.000 s, en 6e-14 voor alle bij 100.000 s), wat erop wijst dat ze het gedisciplineerde product beschrijven en niet de vrij lopende oscillator, dus ze worden niet gebruikt.
De recordfit is gewogen. Een schatting van de Allan-variantie met edf equivalente vrijheidsgraden heeft een variantie van ongeveer 2σ⁴/edf, dus elk punt gaat erin met residu √(edf/2)·(model/σ² − 1). Een ongewogen fit liet de korte middelingstijden over de termen voor lange middelingstijden beslissen: op een testrecord met witte FM leverde die een valse flickerondergrens op die een doorbraak na 2.000 s met 30 % verkortte. Een datasheet of record ondersteunt alleen middelingstijden tot zijn langste punt; een doorbraak daarbuiten wordt gemarkeerd als extrapolated.
Toetsing: de inversie op een achtergehouden echte klok#
tests/slot_timing_cs5071a_holdout.rs gebruikt het record van 556 990 samples van een 5071A-caesiumstandaard, gemeten tegen een waterstofmaser (A. Wallin, verspreid met allantools; hetzelfde record dat de schatterreferentie tests/cs5071a_reference.rs gebruikt). Met de maser als referentie is het record een vrije run van 6.4 dagen.
- Fit het ruismodel alleen op het eerste derde van het record.
- Voorspel met dat model de doorlooptijd waarop de tijdfout van één sigma 0,5, 0,75, 1, 1,5, 2 en 2,5 ns bereikt.
- Laat op de andere twee derden de klok elke 997 s vanaf een synchronisatiepunt doorlopen, met de frequentie geschat uit het voorafgaande derde, en meet waar de effectieve waarde (RMS) van de doorloopfout elke drempel bereikt.
De drempel voor slagen, vastgelegd voordat de test voor het eerst draaide, is dat elke voorspelde doorbraak binnen een factor 1,5 van de gemeten doorbraak ligt. Een controle, de ADEV van één seconde gelezen als witte FM, moet die drempel niet halen, zodat de drempel een goed model van een slecht model kan onderscheiden. De test toont zijn tabel; een mutatie die het witte-FM-niveau halveert, laat hem falen. Het ruwe record bestaat uit door git genegeerde gegevens van derden: scripts/fetch_cs5071a.sh haalt ze op, en de workflow realdata-clock draait de test met KSHANA_REQUIRE_REALDATA=1, zodat een ontbrekend bestand daar faalt in plaats van wordt overgeslagen.
Wat dit toetst: het pad van fitten en dan inverteren, op een atoomstandaard die door witte FM wordt gedomineerd, over doorlooptijden tot ongeveer 50.000 s. Wat het niet toetst: de bronnen van datasheet en klasse, de deterministische termen en een kristaloscillator (volgende sectie).
Dezelfde voorspelling op een echte kristaloscillator: conservatief, niet getoetst aan een externe referentie#
tests/slot_timing_ocxo_holdout.rs gebruikt een gemeten OCXO: 19.982 frequentiemetingen van één seconde van de oscillator van 10 MHz in een HP-impedantieanalysator, tegen een waterstofmaser (A. Wallin, 2015, verspreid met allantools; scripts/fetch_ocxo.sh). Het ruismodel en een lineaire drift worden gefit op het eerste derde; elke doorloop op de andere twee derden start vanaf een frequentie geschat over de voorafgaande 100 s, en het model draagt de onzekerheid van die schatting (fix_frequency_sigma, de eigen Allan-deviatie van het model bij 100 s).
| Gefit op | Voorspelde ÷ gemeten doorbraak, 0,2 tot 10 ns | Lezing |
|---|---|---|
| het eerste derde (achtergehouden) | 0,59 tot 0,70 | conservatief: nooit later dan gemeten, meestal buiten de drempel van 1,5 |
| het evaluatiesegment zelf (diagnostisch) | 0,98 tot 1,17 | de inversie klopt; het verschil bij het achtergehouden deel is de oscillator die verandert |
De ruisondergrens van de oscillator is tijdens het record gehalveerd: de Allan-deviatie van het eerste derde vlakt af bij ongeveer 7.5e-12, de rest bij ongeveer 3.5e-12. Een model dat vroeg is gefit, overschat de ruis, en dat is de veilige richting. Het kristalgeval is daarom niet getoetst aan een externe referentie en blijft MODELLED. Fit voor een kristal op een gestabiliseerd record en fit opnieuw naarmate het onderdeel veroudert.
Hoe het protocol is gekozen, vermeld omdat het niet blind was. Een eerste verkennende run hergebruikte het caesiumprotocol (frequentie uit het voorafgaande derde, geen frequentieterm) en voorspelde doorbraken die 1,4 tot 2,5 keer later lagen dan gemeten: optimistisch, de gevaarlijke richting. De frequentie van een kristal zwerft, dus een frequentie die uren vóór de synchronisatie is geschat, is verouderd, en het model had geen term voor hoe goed de frequentie bij de synchronisatie bekend is. De term fix_frequency_sigma is om die reden toegevoegd en dit protocol is vastgelegd voordat de test werd geschreven; de drempel voor slagen is niet verschoven. De test controleert ook dat, zonder de term, de voorspelling binnen de steekproef bij elke drempel optimistisch is, dus de term is dragend.
Dezelfde voorspelling op atoomklokken in een baan: 8 van 10, niet getoetst aan een externe referentie#
tests/slot_timing_igs_holdout.rs gebruikt de gecombineerde definitieve IGS-klokken met 30 s voor 14 dagen (17 tot 30 augustus 2025; scripts/fetch_igs_clocks.sh, elk bestand vastgepind met SHA-256): elke klok van een GPS Block IIF-satelliet tegen de IGS-tijdschaal. Het protocol (satellietset, gapregel, fitvenster, een synchronisatie elke 3.570 s met de frequentie uit het voorafgaande uur, drempels van 1 tot 20 ns, de drempel van 1,5, en de regel dat de klasse alleen slaagt als elke satelliet slaagt) is opgeschreven voordat er gegevens waren gedownload.
| Satellieten | Voorspelde ÷ gemeten doorbraak | Oordeel |
|---|---|---|
| G06, G08, G09, G10, G24, G26, G27, G32 | 0,76 tot 1,46 | binnen de drempel |
| G25 | 1,51 tot 1,99 | optimistisch |
| G30 | 1,20 tot 1,61 | optimistisch |
| G03 | niet geëvalueerd | uitgesloten door de gapregel (een ontbrekende dag) |
Acht van de tien is bruikbaar bewijs, maar van twee satellieten wordt voorspeld dat ze langer zouden volhouden dan ze deden, en dat is de gevaarlijke richting, en het protocol eist dat elke satelliet slaagt. Het baangeval blijft daarom MODELLED. Block IIF-satellieten dragen zowel rubidium- als caesiumstandaarden en de IGS-bestanden vermelden niet welke actief is, dus het resultaat geldt voor de satellieten en niet voor één kloktype. Waarom G25 en G30 verschillen, is niet onderzocht.
Een bench-run voor een onderdeel dat representatief is voor de vlucht (afgebakend, niet uitgevoerd)#
Het openbare OCXO-record is 5,5 uur lang, van één laboratoriuminstrument, terwijl de oscillator nog stabiliseerde. Wat het kristalgeval zou toetsen aan een externe referentie, is een langere gemeten vrije run van een OCXO of CSAC die representatief is voor de vlucht, tegen een referentie:
- een tijdintervalteller die de 1 PPS van de oscillator vergelijkt met een door GNSS gedisciplineerde of maserreferentie, minstens 10 dagen met één sample per seconde, temperatuur gelogd;
- hetzelfde achtergehouden protocol: fit op het eerste derde, voorspel de doorbraken, meet op de rest, met dezelfde drempel en controle;
- het record en zijn hash gepubliceerd naast de test, zodat de rij reproduceerbaar is.
Het hangt af van toegang tot referentiehardware en wordt niet beloofd.
Tegen welke zwervingsmaat moet een slot worden geaccepteerd?#
Tijdstandaarden bieden drie families van maten. Voor een tijdgeïndexeerd slot meet er maar één datgene wat het slot laat falen.
- MTIE (ITU-T G.810) is de grootste piek-tot-piek-TIE binnen een venster van gegeven lengte. Hij is blind voor een constante offset: een klok die 1 µs afwijkt maar volkomen stabiel is, heeft een MTIE dicht bij nul en mist elk slot. Hij meet hoeveel de fout verandert, niet waar hij is.
- TDEV (ITU-T G.810) wordt opgebouwd uit tweede verschillen van gemiddelde fase. Hij verwijdert een constante offset en een constante frequentiefout, en dat zijn precies de termen die een doorloop domineren. Hij karakteriseert het ruistype; hij is geen acceptatiemaat voor absolute tijdsynchronisatie.
- max|TE| (ITU-T G.8260; de budgetmaat van G.8271) is de grootste absolute tijdfout ten opzichte van de referentietijdschaal. Hij is rechtstreeks met een guard te vergelijken.
Conclusie. Accepteer een slot op basis van max|TE| ten opzichte van de referentietijdschaal van het netwerk, geëvalueerd als een voorspelde envelop vanaf de laatste synchronisatie bij een vermelde dekkingsfactor. Dat is wat E(t) is: omdat elke term groeit met t, is het maximum over een doorloop van lengte T gelijk aan E(T). MTIE en TDEV blijven nuttig als diagnostiek: TDEV om te bepalen welke ruisterm moet worden aangepakt, MTIE(L) om te begrenzen hoeveel de fout beweegt tijdens een slot van lengte L.
Twee verfijningen die de keuze van de maat met zich meebrengt:
- De guard geldt voor de relatieve fout tussen twee knooppunten. Als zender en ontvanger allebei onafhankelijk doorlopen, tellen hun stochastische fouten kwadratisch op en hun deterministische fouten in grootte. Wanneer het stochastische deel domineert, kan elk knooppunt
guard/√2krijgen; wanneer veroudering of temperatuur domineert,guard/2. - De dekkingsfactor is een ontwerpkeuze, geen eigenschap van de klok.
k = 3begrenst ongeveer 99,7 % van de Gauss-fouten op één tijdstip, niet over elk slot in een dag; een routeringsplan met veel sloten per dag heeft het risico per slot nodig dat het kan verdragen.
Een ontvanger in een baan spoofen#
De sectie spoofing evalueert orbital_timing::orbital_timing voor dezelfde klok:
- Geometrie. Een spoofer op de grond bereikt een LEO-satelliet alleen zolang de satelliet boven zijn horizon staat: bij 550 km hoogstens ongeveer twaalf minuten per overvlucht. Een spoofer die met snelheid
ρoploopt, kan de klok daarom hoogstensρmaal dat venster verschuiven, of maal de tijd tot de volgende onafhankelijke controle als die korter is (ramp_limited_pull_ns). - Dynamica. Een gemeenschappelijke tijdverschuiving verschuift elke pseudorange even sterk en wordt opgenomen in de klokbias, niet in de positie, dus een positiecontrole met een baanpropagator telt niet als kruiscontrole voor tijdsynchronisatie.
- Kruiscontroles. Een satelliet heeft zelden een tweede onafhankelijke ontvanger voor tijdsynchronisatie. Hij heeft de doorloop van zijn eigen klok (de monitor van
tpl), een tweewegtijdoverdracht met een grondstation tijdens contacten, en tijdvergelijkingen over intersatellietlinks. Een crosslink is alleen onafhankelijk van één grondspoofer als de buur op datzelfde moment buiten de footprint van die spoofer ligt, wat het rapport controleert aan de hand van het aantal satellieten per baanvlak. - Voorwaardelijke grens. De monitorondergrens plus de doorloop van de klok over de CUSUM-detectielatentie, die exact terugvalt op
tpl::timing_protection_level_nswanneer de klok geen flicker-, witte-fase- of random-run-term heeft. Zoals die grens geldt hij alleen gegeven detectie.
Dit alles is MODELLED: een bolvormige, niet-roterende aarde, een overvlucht, één terrestrische spoofer met een vermelde maximale oploopsnelheid. De aankomstrichting van de signalen bij een naar het zenit gerichte antenne is een echte kruiscontrole die een antennepatroon vereist en niet is gemodelleerd. DECEIVED-TIME.md legt uit waarom een ondertekend besturingsbericht deze dreiging niet wegneemt.
Niet gemodelleerd#
Frequentiesprongen, stralingseffecten en relativistische frequentie-afwijkingen; een thermisch model (de temperatuurverandering is een stap bij de synchronisatie); het synchronisatieprotocol zelf (een synchronisatie zet de fout terug op fix_sigma_ns).