È disponibile materiale di ricerca sull'accuratezza dell'NTP?


13

Per quanto ne so, l'accuratezza della sincronizzazione NTP dipende fortemente dalla rete. Ho visto alcuni numeri da 50 microsecondi a un "meno di un secondo" su Internet. Bene, questa è un'enorme differenza.

Credo che la dipendenza dall'accuratezza sia una grande domanda da studiare, ma finora non sono riuscito a trovare alcun materiale, il che afferma chiaramente che, per esempio, una particolare configurazione garantisce tale accuratezza.

Si dice su http://www.ntp.org/ntpfaq/NTP-s-algo.htm :

Per mantenere la sincronizzazione NTP è necessaria una differenza di tempo inferiore a 128 ms tra server e client. L'accuratezza tipica su Internet varia da circa 5ms a 100ms, eventualmente con ritardi di rete. Un recente sondaggio [2] suggerisce che il 90% dei server NTP ha ritardi di rete inferiori a 100 ms e circa il 99% è sincronizzato entro un secondo dal peer di sincronizzazione.

Con la sincronizzazione PPS è possibile ottenere una precisione di 50 µs e una stabilità inferiore a 0,1 PPM su un PC Pentium (ad esempio con Linux).

È qualcosa, ma forse c'è qualche analisi più approfondita sull'argomento?


3
Mentre penso che questa domanda non mostri alcuno sforzo di ricerca, e sto effettuando il downgrade su tale base - non è nemmeno chiaro che il PO abbia letto tutto il materiale su ntp.org - Penso che sia una domanda lecita, e discuterei contro la chiusura su quella base. Volere sapere perché un protocollo funzionerà come pubblicizzato, invece di distribuire ciecamente e sperare per il meglio, non è una perdita di tempo.
MadHatter,

Grazie per l'aggiornamento della domanda, ho ritrattato il mio voto negativo. Detto questo, potresti ritenere fastidioso essere rispedito da dove sei venuto, ma se non ci dici dove sei stato quando fai la domanda, come possiamo saperlo? Noto anche che il testo che pubblichi sopra include un puntatore a un documento accademico che studia l'accuratezza dei server NTP. L'hai letto e, in tal caso, puoi indicare perché non è bastato?
MadHatter,

Giusto. L'articolo è un sondaggio globale di 14 anni sulla rete NTP. Ha ulteriori collegamenti, ma ovviamente tutti sono ancora più vecchi. Ho provato Google Scholar e CiteSeer, ma la maggior parte dei collegamenti sono gli stessi lavori di Mills e Millnar degli anni Novanta. Sto ancora navigando, ma sono un po 'distante dall'argomento e questo potrebbe richiedere molto tempo, quindi ho scelto di chiedere aiuto alla community.
akalenuk,

1
NTP non è cambiato da almeno 14 anni, perché la sua precisione sarebbe cambiata in modo significativo ?? Come menzionato di seguito, NTP non è pensato per essere super preciso, ma deve arrivare entro 1 s (che è probabilmente da dove proviene quella citazione sottotitolata). Se hai bisogno di una precisione inferiore a 1ms, allora dovresti usare PTP. Non riesco davvero a vedere alcun valore nello studio dell'accuratezza di qualcosa che in una distribuzione molto ampia fa esattamente quello che doveva fare.
Chris S,

2
In realtà, Chris, i due lavori citati chiariscono che l'accuratezza dei server NTP su Internet (non il protocollo stesso, che era sempre eccellente) è migliorata tra il 1999 e oggi. Sospetto che ciò sia dovuto in parte al miglioramento di Internet - le latenze sono in qualche modo inferiori e molto meno variabili rispetto a prima - e in parte perché la qualità dei server S1 è migliorata (il documento del 1999 afferma che l'origine dell'orologio più comune per i server S1 è il Orologio OS!). Sono contento che l'OP abbia posto questa domanda, penso che valga la pena.
MadHatter,

Risposte:


14

Nessuno può garantire quanto funzionerà bene NTP sulla tua rete, perché nessuno sa quanto sia ben connessa la tua rete a Internet e ai relativi server di clock. Tuttavia, secondo la pagina dell'algoritmo della disciplina dell'orologio su ntp.org

Se lasciato in esecuzione ininterrottamente, un client NTP su una LAN veloce in un ambiente domestico o d'ufficio può mantenere la sincronizzazione nominale entro un millisecondo. Quando le variazioni della temperatura ambiente sono inferiori a un grado Celsius, la frequenza dell'oscillatore di clock è disciplinata entro una parte per milione (PPM), anche quando l'offset della frequenza nativa dell'oscillatore di clock è pari o superiore a 100 PPM.

Tieni presente che una latenza ampia ma stabile tra la tua LAN e i server di clock di Internet non ha un effetto tanto negativo sull'accuratezza quanto la latenza altamente variabile.

Non dici dove hai ottenuto le stime sopra ('50 microsecondi a ... "sotto un secondo" '), quindi non posso commentarle, ma nella mia esperienza 50us è improbabile a meno che tu non abbia un allegato direttamente sorgente di clock e 1s è improbabile a meno che tu non abbia un pezzo di stringa bagnata che ti connette a Internet e non stai utilizzando server upstream in Antartide.

Modifica : il testo che citi ora nella tua domanda fornisce un puntatore a un documento che, nel 1999, ha effettivamente stabilito che il 99% dei server ntp è sincronizzato entro un secondo. Fortunatamente, ci sono lavori più recenti; in questo articolo alcuni autori dell'Università Federale di Parana, in Brasile, hanno ripetuto l'esperimento nel 2005 e hanno scoperto (se ho capito bene la loro Fig. 1) che a nord del 99% - più come il 99,5% - dei server ora hanno offset inferiori a 100 ms e che il 90% ha offset inferiori a 10 ms. Questo si adatta abbastanza bene alle mie esperienze (vedi sopra).

Modifica 2 : un'ultima ruga: tutti questi studi non indagano quanto sia accurato l'orologio locale, ma invece quanto differisce dall'orologio di riferimento a monte. Questi, ovviamente, non sono la stessa cosa. Ma il primo è inconoscibile; per sapere quanto è sbagliato l'orologio, devi sapere esattamente che ore sono e, se lo sapessi, perché dovresti aver impostato l'orologio in modo errato? Basta essere consapevoli del fatto che ciò che questi studi stanno misurando non è la differenza tra l'orologio locale e l'ora assoluta, ma tra l'orologio locale e l'orologio di riferimento.


+1 Anche io gestivo un server di pool,> 20 ms di drift monitorato in tutto il paese era strano.
Chris S,

9

Che problema stai cercando di risolvere?

La soluzione che ho incontrato per ambienti che richiedono più precisione di NTP è il Precision Time Protocol (PTP) . L'ho avuto in applicazioni di calcolo scientifico e di calcolo finanziario. Ci sono però dei compromessi .

Vedi anche: sincronizzazione temporale ptp su centos6 / rhel


4
"Che problema stai cercando di risolvere?" La mia domanda preferita: la faccio sempre.
mfinni,

@mfinni, Quando devi classificare quale dei tuoi clienti invia per primo (ad es. HFT ), aiuta ad essere precisi con il tuo tempo.
Pacerier,

6

Alcune altre cose degne di nota:

  • Sarai fortunato a ottenere <100ms di jitter di clock su una macchina virtuale, quindi tutto quanto sotto è per un host fisico
  • Il jitter inferiore a 100 ms è quasi incommensurabile per quasi tutte le attività e facilmente realizzabile su Internet
  • Il jitter di sub 30ms potrebbe essere necessario per alcuni ambienti di servizio generali (ne avevo bisogno per la correlazione dei registri in un precedente lavoro), ed è facilmente raggiungibile utilizzando server NTP nello stesso continente in cui la connessione non avviene tramite collegamenti "consumer" (ad es., Non satellite , ADSL, DOCSIS, GPON, UMTS / LTE / HSPA / ecc.)
  • Per una precisione assoluta al di sotto di ciò, dovresti installare server NTP hardware da un fornitore di qualità (ad es. Symmetricom)
  • Un accordo locale di sub 10ms (spesso sub 1ms) può essere facilmente raggiunto semplicemente avendo un trio (puoi fare con meno, ma ci sono ragioni per usarne tre o cinque) all'interno dello stesso datacenter abbastanza per praticamente ogni applicazione non scientifica

5

Interesse acquisito da parte mia: sono un agente Meinberg :-)

Sì NTP può raggiungere una precisione end-to-end fino a ca. 50 noi (che sono microsecondi) di jitter, se sincronizzi un "client" linux su bare metal con Chrony o ntpd, su un server NTP basato su Linux disciplinato da un GPS, un orologio atomico locale o qualche altra fonte.

Sulla macchina che ha un GPS locale (con un'interconnessione PPS), probabilmente vedrai 0-2 microsecondi di offset, tra l'istanza ntpd in esecuzione nel sistema operativo e l'input del driver di refclock PPS.

I restanti 50 "end to end over LAN" sono il risultato di diverse fasi di buffering, latenza IRQ variabile, altro traffico che interferisce sulla LAN e sui bus dei computer coinvolti e quant'altro. 50 us significa una LAN con pochissimo traffico. Anche solo uno switch può aggiungere alcuni microsecondi di jitter - e switch di fascia alta con funzionalità complesse aggiungono più latenza e jitter. In altre parole, può essere abbastanza difficile ottenere quei 50 microsecondi nelle condizioni del mondo reale su una LAN pratica.

Allo stesso modo, quelli cca <2us dell'offset PPS derivano solo dall'incertezza di latenza IRQ e dal jitter generale di latenza del bus su hardware PC ben educato.

Si noti che NTP e le sue implementazioni ntpd e Chrony misurano certamente il tempo di andata e ritorno della transazione NTP e sottraggono (aggiungono, in realtà) metà di quel viaggio di andata e ritorno, come misura per filtrare la latenza sistematica del trasporto (solo andata). Eseguono anche il rifiuto anomalo, il consenso sul quorum, l'elezione di syspeer e qualsiasi demone NTP filtra le risposte che riceve alle sue domande a monte. Quindi, come altri hanno già detto, i millisecondi che vedi in Ping e Traceroute non compensano direttamente l'orologio locale. Ciò che conta è la variabilità del viaggio di andata e ritorno delle transazioni, ovvero dell'altro traffico sul percorso verso il server NTP upstream. Ntpq -p è tuo amico.

Un ricevitore GPS di base per il cronometraggio, con un TCXO, può avere forse 100-200 ns di jitter residuo + vagare sulla sua uscita PPS. Abbastanza buono per NTP, purché il GPS rimanga bloccato. (Le prestazioni di Holdover non sono molto buone con i TCXO.) Un GPS di temporizzazione di qualità con un OCXO può essere ben entro 100 ns, forse più come 10-30 ns di errore residuo (offset dall'UTC globale).

Nota che i satelliti reali che volano in alto e ti irradiano attraverso un'atmosfera possono essere un gioco leggermente più difficile per il ricevitore, rispetto al benchmarking in un laboratorio con un generatore GPS.

PTP è un martello. È necessario il supporto HW nel grandmaster, negli slave e in tutti gli switch, ma se si ottiene tutto ciò, sono possibili offset residui fino a una bassa doppia cifra di nanosecondi. L'ho visto personalmente in ptp4l in esecuzione con una scheda di rete i210 con supporto HW (timestamp con risoluzione di un nanosecondo).

Il chip i210 è una meraviglia. Dispone di 4 pin di uso generale che possono essere utilizzati per immettere o emettere un segnale PPS. La scheda NIC addon di riferimento Intel con i210 (e le sue versioni OEM di diversi grandi fornitori) è dotata di un'intestazione pin che consente di accedere ad almeno 2 di quei pin GPIO (SDP chiamati da Intel). Oltre all'implementazione di una porta grandmaster PTP, l'input PPS può essere sfruttato per un timestamp preciso nella cattura dei pacchetti. È necessario disporre di una fonte precisa di PPS e di un software personalizzato per eseguire un servo loop, perfezionando il PHC dell'i210 su ext.PPS. Sul mio banco di prova, ciò ha comportato ns a una cifra (per 1 s iterazione) di offset residuo. Questa è la precisione che ottieni nei tuoi timestamp di acquisizione, se si esegue un recente tcpdump o WireShark su un moderno kernel Linux (tutto il software necessita di supporto per la risoluzione di livello di nanosecondi). Meglio ancora: sono andato fino in fondo e ho costruito un semplice sintetizzatore PLL per produrre 25 MHz per gli orologi NIC, bloccato su un preciso riferimento a 10 MHz a monte. Dopodiché, l'offset residuo nel loop servo del mio impianto di acquisizione di pacchetti è sceso a uno zero pulito (una prova che il mio riferimento a 10 MHz è sincronizzato in fase con il PPS dallo stesso box GPS).

Si noti che i grandmaster PTP possono essere specificati per fornire timestamp con una granularità effettiva per 8 ns (in un tipo di dati con risoluzione 1 ns). Questo ha senso: Gigabit Ethernet tende a usare un clock a 125 MHz, usato come clock byte all'interno del MAC, questo clock è probabilmente usato anche in GMII, ed è anche il clock simbolo in 1000Base-TX metallico (quattro coppie in parallelo, 2 bit per simbolo per coppia). Quindi, a meno che tu non stia usando 1000Base-FX (fibra ottica) con SERDES e un'implementazione estremista dell'unità di timestamp HW nel PHY che funziona fino a singoli bit SERDES, quegli 8 ns sono tutto ciò che puoi realisticamente sperare su Ethernet Gigabit. Alcuni fogli dati su chip (con supporto PTP) sostengono addirittura che il percorso dei dati MII non sia privo di buffering e che un po 'di jitter possa provenire da lì.

I pacchetti PTP in realtà contengono timestamp memorizzati in un tipo di dati che consente una risoluzione profonda dei sub-nanosecondi. Ma il "campo frazionario sub-nanosecondo" è oggi in genere inutilizzato. AFAIR solo il progetto White Rabbit (correlato al CERN il centro di ricerca svizzero) ha finora implementato la precisione dei sub-ns.

PTP è disponibile anche in software puro, senza accelerazione HW. In tal caso, per un GM basato su SW e un client basato su SW, si prevede di ottenere un jitter residuo simile a quello con NTP, ovvero circa 50 utenti su una LAN dedicata ma PTP inconsapevole. Ricordo di aver ottenuto una precisione al di sotto del microsecondo da un grandmaster HW su un'interconnessione diretta (nessuna commutazione intermedia) e un client solo SW (su una scheda NIC PC inconsapevole). Rispetto a NTP, il servo del PTP converge molto più velocemente.

Mentre facevo alcuni "compiti a casa", recentemente mi è venuto in mente che il trasporto di PPS o segnali di temporizzazione "discreti" simili su percorsi in fibra ottica ad ampia area può essere suscettibile al "vagare" del tempo di propagazione dipendente dalla temperatura. E anche se non ho modo di testarlo sperimentalmente, alcune fonti nelle interwebs citano cifre comprese tra 40 e 76 picosecondi per km e Kelvin. Si noti che mentre questo tipo di "distorsione termica" è impossibile da mitigare "in banda" nella trasmissione PPS simplex, la PTP lo avrebbe post-compensato intrinsecamente, in base alle sue misure di ritardo del percorso standard (che dipendono dalla trasmissione full duplex).

Questo per quanto riguarda una panoramica di come appaiono le "precisazioni", a diverse tecnologie / interfacce di temporizzazione. Quale livello di precisione è abbastanza buono per te, dipende dalla tua applicazione, dalle tue reali esigenze.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.