NTP server: l’importanza di una sincronizzazione scientifica

La sincronizzazione temporale svolge un ruolo fondamentale in qualsiasi rete.
Per le istituzioni finanziarie e scientifiche, la sincronizzazione deve essere accurata fino a un miliardesimo - o in alcuni casi specifici anche di un trilionesimo - di secondo. Anche organizzazioni commerciali e industriali stanno iniziando ad essere esigenti per quanto riguarda l'accuratezza della sincronizzazione nell'ordine del microSecondo.
Perché non possiamo semplicemente collegarci all'Istituto nazionale di ricerca di Torino, che gestisce uno degli orologi più accurati al mondo? Sfortunatamente, la latenza esiste ovunque e rende impossibile raggiungere una sincronizzazione perfetta. Aggiungi switch, router e altre infrastrutture di rete, e un decimo di secondo si moltiplica. Senza apparecchiature dedicate come un NTP server, nei casi migliori la sincronizzazione può sforare di decine o centinaia di millisecondi dagli orologi atomici. Preoccupazione ancora più grande è la sincronizzazione di diversi client all'interno della stessa rete.
Time server Network Time Protocol
Il time server NTP, o Network Time Protocol, è stato ampiamente adottato come strumento di sincronizzazione di tempo sulle reti, ed è attualmente disponibile nella quarta revisione principale NTPv4. Il sistema gerarchico ha diversi livelli chiamati strati. I dispositivi Stratum 0 includono:
- Atomic clocks / Orologi atomici
- GPS clocks
- Radio clocks
I server Stratum 1, primary time, dispongono ciascuno di una connessione diretta con un clock Stratum 0, raggiungono la sincronizzazione a livello microsecondo con i clock Stratum 0. I server Stratum 2 possono connettersi a più server di tempo primari e così via. NTP supporta fino a un massimo di 15 strati, ma ogni strato diminuisce leggermente la accuratezza della sincronizzazione dei client dallo Stratum 0.
Un timestamp a 64 bit come attualmente implementato è suddiviso in due parti uguali a 32 bit:
- Il primo conta il numero di secondi fino a poco più di 136 anni
- La seconda metà esprime le frazioni di un secondo fino alla scala del picosecondo
Un aggiornamento proposto di timestamp a 128 bit per l'NTPv4 aumenterebbe la scala temporale a poco meno di 600 miliardi di anni e la risoluzione temporale a meno di un femtosecondo.
Non solo NTP server: il Precision Time Protocol

Perché il time server PTP è così preciso?
PTP garantisce una precisione estrema perchè utilizza il timestamp hardware al posto del timestamp software e, come per qualsiasi altro strumento scientifico, l'apparato PTP è dedicato ad uno scopo specifico: mantenere sincronizzati i dispositivi. Solo per questo motivo le reti PTP hanno risoluzioni di tempo molto più nitide.
Ogni sequenza PTP coinvolge una serie di quattro messaggi tra ptp master e ptp slave:
- Sync message dal ptp master al ptp slave
- Followup sync message dal ptp master al ptp slave
- Delay request message dal ptp slave al ptp master
- Delay response message dal ptp master al ptp slave
Questa sequenza produce quattro timestamp diversi:
- T1 quando il master ptp invia un Sync message
- T2 quando lo slave ptp riceve il Sync message
- T3 quando lo slave ptp invia un messaggio Delay request
- T4 quando il master ptp riceve il messaggio Delay request
Il ptp masterclock invia tutti e quattro i timestamp allo slave ptp durante la fase delay response e in questo modo lo slave è in grado di calcolare la latenza di rete tra ptp master e slave in entrambe le direzioni. Attraverso hardware dedicato i dispositivi ptp slave possono evitare di introdurre latenze aggiuntive del sistema operativo. Le reti NTP hanno latenza aggiuntiva e meno precisione semplicemente perché sono basate unicamente su software e tutte le richieste di timestamp devono attendere la risposta del sistema operativo. Per la maggior parte delle aziende, NTP server fornisce una risoluzione temporale sufficientemente precisa, ma alcune organizzazioni e applicazioni, richiedono un livello molto più elevato di sincronizzazione.