Il formato del timestamp NTP

Il formato che NTP (ed anche SNTP) utilizza per indicare il tempo è il seguente:

Figura 2: Formato del timestamp di NTP
\begin{figure}\begin{center}
\begin{bytefield}{32}
\bitheader{0,31} \\
\bitbox{...
...i} \\
\bitbox{32}{Frazioni di secondo}
\end{bytefield}\end{center}
\end{figure}

un numero senza segno a 64 bit che rappresenta il numero di secondi trascorsi dal 1 Gennaio 1900. Come si vede, i primi 32 bit sono dedicati ai secondi, mentre i restanti 32 sono dedicati alle frazioni di secondo (eventualmente riempiti a destra con degli 0): questo formato consente di rappresentare $2^{32}-1$ secondi (corrispondente a oltre 136 anni: questo intervallo è chiamato era NTP) con una precisione di poco superiore ai 200 picosecondi (1 picosecondo = $10^{-12}$ secondi).

Il fatto che NTP sia stato utilizzato proficuamente per 18 anni, fa supporre che possa essere utilizzato anche nel 2036, anno in cui il formato con cui il protocollo rappresenta il tempo andrà in overflow; per quell'epoca si dovrà trovare un modo per gestire i successivi timestamp. Una possibile soluzione, proposta dallo stesso Mills, è quella di considerare il primo bit del timestamp: se uguale ad 1, il timestamp si riferirà all'intervallo 1968*-2036*, mentre se 0, apparterrà all'intervallo 2036*-2104* (dove abbiamo indicato l'anno seguito da un ``*'' per indicare che l'intervallo non è relativo all'inizio dell'anno solare, ma che avrà inizio o fine in quell'anno, senza indicare il giorno preciso).

2004-01-08