Sono uno studente di matematica, vorrei chiedervi di spiegarmi il funzionamento del sistema NTP e come avviene la sincronizzazione dell’ora, sapendo che sul web i pacchetti di informazione viaggiano, tra il mio PC e il server, con velocità non nota a priori e non sempre uguale. Grazie.

Il protocollo NTP (Network Time Protocol) ha lo scopo di mantenere sincronizzati
fra loro un qualunque numero di server e clienti utilizzando messaggi
inviati sulla rete mediante il protocollo UDP/IP. Le tecniche
e gli algoritmi usati tengono conto non solo dei ritardi arbitrari
nella trasmissione dei pacchetti sulla rete, ma anche di molti
altri aspetti: ad esempio la possibilità che alcuni
pacchetti possano essere perduti, che alcuni dei server
possano essere “non affidabili”, che le correzioni applicate
non devono “far girare indietro il tempo”, ecc.
Inoltre possono essere aggiunti metodi di autenticazione per
garantire l’identità dei server utilizzati.
Attualmente viene utilizzata la versione 3 del sistema NTP,
ma è in corso di definizione finale una versione 4.

Il sistema NTP è basato su un insieme di “server primari”
che sono sincronizzati mediante orologi affidabili e di precisione
adeguata1. Il protocollo NTP viene
usato per trasferire l’informazione temporale ad altri server,
detti “server secondari” ed anche per controllare fra loro i server
in modo da identificare eventuali malfunzionamenti in alcuni di essi.
I server secondari provvedono poi, sempre utilizzando il protocollo
NTP, a distribuire l’informazione temporale agli utilizzatori finali.
Ovviamente il protocollo costituisce solo la parte necessaria a
trasportare l’informazione temporale; questa viene viene
poi utilizzata mediante appositi
algoritmi per aggiustare l’orologio interno di ciascun nodo.

In sostanza l’accuratezza della sincronizzazione si basa sulla stima
dei tempi di ritardo ottenuta utilizzando più richieste a vari
server.
La descrizione dell’intero sistema, però, è assai complessa e per
questo si rimanda alle fonti, tutte reperibili on-line. In particolare:

Note

  1. In generale i server primari sono gestiti da appositi
    organismi ufficiali, in Italia ad esempio dall’Istituto
    Nazionale Galileo Ferraris di Torino.