Existen actualmente en Uruguay unos 7 servidores NTP en la red NTPPool.org, la red colaborativa de servidores NTP más grande. El 2 de enero de 2025 dimos de alta entre los servicios de Undernet.uy, un servidor NTP público stratum 1 (en ese momento había 6 activos) que ha estado funcionando muy bien y sin mayores caídas durante los últimos 21 meses.

El protocolo NTP es el que permite alinear los relojes de las PCs y servidores a través de la red y para eso se necesita tener una fuente de tiempo primaria cerca. En general los servidores NTP obtienen la hora de un reloj atómico (que son algo costosos) o mediante una antena en la red GPS (más accesible) ya que todos los satélites de esa red tienen relojes atómicos en órbita.

Tanto los servidores con relojes atómicos o antenas GPS se consideran stratum 1. El stratum 0 sería el propio reloj o fuente primaria de tiempo, un stratum 1 sería un servidor conectado directamente (mediante un solo hop) al stratum 0 o fuente primaria, luego un stratum 2 sería un servidor conectado por dos hops (o mediante un solo hp a un stratum 1) y asi… La categoría por estratos (stratum) está asociada al error de manera que un stratum 0 (el propio reloj) tiene un error despreciable (en el órden de los nano o picosegundos), luego el stratum 1 del orden de 1 milisegundo, el stratum 2 del orden de 10ms y asi… Un reloj en stratum 16 se considera totalmente desalineado.

El puntaje de nuestro servidor es generalmente el máximo (20.0) y en los 21 meses que lleva funcionando el servidor hemos estado tomando cada 5 minutos el reporte de error/offset propio de NTPPool.org disponible en un archivo CSV y con datos propios de la cantidad de satélites visibles y con una relación señal ruido (SNR) suficiente como para ser utilizado para el consenso del tiempo. Con estos datos que al momento superan las 182.000 medidas, hemos construido este gráfico que muestra el error promedio en búsqueda de variaciones diurnas.

Acá se aprecia claramente como el error se mantiene constante como hasta las 17hs UTC donde el error disminuye y cambia de signo y luego lentamente vuelve a su valor cercano a ~ -10 micro-segundos y se utilizan unos 25 satélites de los 34 totales observados en promedio.

Las estadísticas no son nada malas, un error promedio de unos 12 micro-segundos lo cual está en el orden de magnitud de un stratum 1 pero lo que es un poco desconocido es el que tan real es el error que reportan los otros peers sobre nuestro servidor. NTPPool va eligiendo peers que tienen buena conexión con el nuestro para hacer esta medida, por lo que todo depende un poco que la congestión de la red. El error también está afectado de latencias internas ya que el servidor NTP además de tener latencias internas entre que recibe la señal GPS y calcula el consenso, está conectado a un switch gigabit y luego al firewall que también hace su procesamiento de paquetes de la red. Es probable que los errores calculados reflejen algo de la realidad.

Finalmente nuestro servidor atiende un 19% (casi 1/5) de la demanda de consultas del pool en NTPPool.org y algo de la demanda de Perú. La red de servidores NTP es una red voluntaria que literalmente sostiene la sincronización de los servidores y PCs a través de internet y es muy importante colaborar con la red. La red NTP es un ejemplo de en esfuerzo colaborativo de red descentralizada
Más información sobre NTP
- NTP v4 RFC: https://www.rfc-editor.org/rfc/rfc5905.txt
- NetWork Time Protocol (Wikipedia): https://en.wikipedia.org/wiki/Network_Time_Protocol
- Estaciones de Tiempo en Radio: https://elasterismo.blogosfera.uy/2024/03/03/estaciones-de-tiempo-en-radio/