Saltar al contenido

Cómo el NTP mantiene miles de millones de relojes sincronizados

Cada teléfono, portátil y servidor del planeta coincide en la hora con una diferencia de milisegundos. Eso no es casualidad: es obra del Network Time Protocol, un sistema inventado en 1985 que mantiene el mundo moderno en marcha.

· 10 min de lectura · Gabriel

Pantalla de reloj en un smartphone mostrando la hora precisa
Índice de contenidos

El problema antes del NTP

Antes de que internet aprendiera a dar la hora, cada ordenador iba por su cuenta. Un servidor en Nueva York podía adelantarse tres minutos en una semana. Una réplica de base de datos en San Francisco podía atrasarse dos minutos. Un terminal de operaciones bursátiles en Chicago podía discrepar con ambos. Nadie lo notaba cuando las máquinas trabajaban de forma aislada, pero en cuanto empezaron a comunicarse entre sí, el caos se volvió imposible de ignorar.

El tiempo importa más de lo que la mayoría piensa. Las bolsas financieras necesitan saber qué operación llegó primero. Cuando dos servidores de bases de datos replican información entre sí, usan marcas de tiempo para decidir qué escritura prevalece. Los archivos de registro de distintas máquinas deben fusionarse en orden cronológico para que los ingenieros puedan depurar incidencias. Sistemas de control de tráfico aéreo, dispensadores de medicación hospitalaria, sincronizadores de redes eléctricas, autoridades de certificación que emiten las claves de cifrado detrás de cada conexión HTTPS: todos dependen de relojes que estén de acuerdo.

A principios de los años ochenta, internet seguía siendo un conjunto de redes universitarias y gubernamentales, pero el problema ya era grave. Las máquinas sincronizaban sus relojes llamando a servicios de hora a través de líneas de módem, un proceso lento, caro y tremendamente impreciso. Algunos administradores ajustaban los relojes a mano, mirando su reloj de pulsera y tecleando la hora. El error podía ser de segundos, minutos o peor. Lo que la red en crecimiento necesitaba era un protocolo: una forma automática y autocorrectiva de que cada máquina en internet se pusiera de acuerdo en qué hora era.

David Mills y el nacimiento del NTP

La persona que resolvió este problema fue David L. Mills, profesor de informática en la Universidad de Delaware. Mills llevaba pensando en la sincronización horaria en redes desde finales de los años setenta, y en 1985 publicó el RFC 958, la primera especificación formal del Network Time Protocol. No era su primer intento: había diseñado protocolos anteriores llamados DCNET e Internet Clock Service, pero el NTP fue el que perduró.

El RFC 958 describía una arquitectura a la vez elegante y práctica. En lugar de exigir que cada ordenador accediera directamente a un reloj atómico, el NTP organizaba las fuentes de tiempo en una jerarquía. Utilizaba matemáticas ingeniosas para compensar los retardos impredecibles de la red. Y estaba diseñado para ser robusto: si una fuente de tiempo caía, los clientes cambiaban automáticamente a otra. El protocolo podía sincronizar relojes a través del caótico e inestable internet de los años ochenta con una precisión de decenas de milisegundos, un logro que en su momento parecía casi mágico.

Mills mantuvo y evolucionó el NTP durante casi tres décadas, prácticamente en solitario. Escribió la implementación de referencia. Respondía preguntas en listas de correo. Publicó RFC actualizados a medida que el protocolo maduraba a través de las versiones 2, 3 y 4. Cuando se jubiló, el NTP se había convertido en uno de los protocolos de internet más antiguos aún en uso diario activo, más antiguo que HTTP, más antiguo que SSL, más antiguo que el DNS tal como lo conocemos hoy. Mills falleció en enero de 2024 a los 85 años, dejando tras de sí un protocolo que sincroniza silenciosamente miles de millones de dispositivos cada día. La mayoría de las personas que dependen de su trabajo jamás han oído su nombre.

Cómo funciona el sistema de estratos

El NTP organiza las fuentes de tiempo en capas llamadas estratos. En la cima se sitúa el Estrato 0: el hardware de cronometraje propiamente dicho. Son relojes atómicos de cesio, máseres de hidrógeno, receptores GPS y otros instrumentos de precisión que producen una señal horaria exacta hasta las milésimas de segundo. No es posible conectarse a un dispositivo de Estrato 0 a través de la red: son instrumentos físicos, a menudo atornillados a bastidores en laboratorios nacionales o montados en satélites que orbitan a 20.200 kilómetros sobre la Tierra.

Los servidores de Estrato 1 son ordenadores conectados directamente al hardware de Estrato 0, normalmente mediante un cable serie, una antena GPS dedicada en el tejado o un enlace directo a un reloj de cesio en el pasillo. Estas máquinas leen la señal de tiempo atómico y la ponen a disposición de la red. Hay aproximadamente mil servidores públicos de Estrato 1 en el mundo, operados por laboratorios nacionales de metrología, universidades y empresas tecnológicas.

Los servidores de Estrato 2 se sincronizan a partir del Estrato 1. Los de Estrato 3, a partir del Estrato 2. Cada capa añade una pequeña cantidad de error y un pequeño retardo. La jerarquía continúa hasta el Estrato 15. El Estrato 16 es un valor especial que significa «no sincronizado»: un servidor en Estrato 16 anuncia que no tiene una fuente de tiempo fiable y que no se debe confiar en él.

La genialidad de este diseño por capas es la distribución de carga. Hay miles de millones de dispositivos en internet que necesitan una hora precisa, pero solo unos pocos cientos de relojes atómicos. Si todos los smartphones de la Tierra intentaran sincronizarse directamente con una fuente atómica de cesio del Instituto Nacional de Estándares y Tecnología en Boulder, Colorado, el sistema colapsaría al instante. En cambio, tu teléfono se sincroniza con un servidor de Estrato 2 o 3, que se sincroniza con uno de Estrato 1, que se sincroniza con el reloj atómico. La carga se reparte entre millones de servidores intermedios, y los relojes atómicos permanecen imperturbables.

Las ingeniosas matemáticas del NTP

El desafío fundamental de la sincronización horaria en red es que no basta con preguntar a un servidor «qué hora es» y usar la respuesta. La pregunta tarda en viajar por la red. La respuesta tarda en regresar. Y esos dos tiempos de viaje no son necesariamente iguales: un paquete puede tardar 20 milisegundos en cruzar el Atlántico hacia el oeste y 35 milisegundos en volver hacia el este, dependiendo del enrutamiento, la congestión y los caprichos del momento.

El NTP resuelve esto con un intercambio de cuatro marcas de tiempo. El cliente registra la hora en que envía la solicitud (T1). El servidor registra la hora en que la recibe (T2). El servidor registra la hora en que envía su respuesta (T3). Y el cliente registra la hora en que recibe esa respuesta (T4). A partir de estos cuatro números, el NTP calcula dos valores clave.

El retardo de ida y vuelta es (T4 - T1) - (T3 - T2). Esto indica cuánto tiempo pasó el paquete en tránsito, excluyendo el tiempo que el servidor dedicó a procesar la solicitud. El desfase del reloj es ((T2 - T1) + (T3 - T4)) / 2. Esta es la diferencia estimada entre el reloj del cliente y el del servidor, asumiendo que el retardo de red es aproximadamente simétrico en ambas direcciones.

Esa suposición de simetría no siempre se cumple, y el NTP lo sabe. El protocolo no depende de un único intercambio. Consulta múltiples servidores, recopila muchas muestras a lo largo del tiempo, aplica filtros estadísticos para descartar valores atípicos y utiliza algoritmos con nombres como el «algoritmo de selección de reloj» y el «algoritmo de agrupamiento de reloj» para elegir las mejores fuentes y combinarlas. El resultado, a través de la internet pública con toda su imprevisibilidad, es una sincronización con precisión de unos pocos milisegundos. En una red de área local, donde los retardos son cortos y estables, el NTP alcanza habitualmente una precisión inferior a los 100 microsegundos.

De dónde viene realmente la hora

En la base misma de la pirámide de cronometraje se encuentran los laboratorios nacionales de metrología del mundo. El Instituto Nacional de Estándares y Tecnología (NIST) en Boulder, Colorado, opera una batería de relojes de fuente atómica de cesio, dispositivos que lanzan nubes de átomos de cesio hacia arriba a través de una cavidad de microondas y miden las transiciones de estado cuántico de los átomos al caer. La frecuencia de oscilación del cesio-133, exactamente 9.192.631.770 ciclos por segundo, define el segundo del SI desde 1967.

El Physikalisch-Technische Bundesanstalt (PTB) de Alemania en Braunschweig, el Laboratorio Nacional de Física (NPL) del Reino Unido en Teddington, el LNE-SYRTE de Francia en París y unos 80 laboratorios nacionales más en todo el mundo mantienen sus propios relojes atómicos. Cada laboratorio produce su propia realización del segundo, y estas realizaciones no coinciden perfectamente. Un reloj de cesio en Boulder puede diferir de uno en Braunschweig en unos pocos nanosegundos a lo largo de un mes.

Aquí es donde entra en escena la Oficina Internacional de Pesas y Medidas (BIPM) en París. La BIPM no tiene un reloj. En su lugar, recopila datos de temporización de aproximadamente 450 relojes atómicos en unos 80 laboratorios de todo el mundo, aplica un algoritmo de promedio ponderado y publica una escala de tiempo en papel llamada Tiempo Universal Coordinado, o UTC. Este proceso de promediado ocurre a posteriori — la BIPM publica las correcciones semanas después — por lo que el UTC no está disponible en tiempo real. Lo que realmente se sincroniza a través del NTP es la aproximación en tiempo real de cada laboratorio al UTC, llamada UTC(NIST), UTC(PTB) o similar. El papel de la BIPM es evitar que todas estas aproximaciones diverjan entre sí.

Luego están los satélites GPS. Cada uno de los 31 satélites GPS operativos lleva múltiples relojes atómicos — de rubidio y cesio — y emite señales horarias como parte de su mensaje de navegación. La hora GPS no es idéntica al UTC (divergieron en 1980 y la hora GPS no incluye segundos intercalares), pero el desfase se transmite en el mensaje de navegación, de modo que un receptor GPS puede calcular el UTC. Muchos servidores NTP de Estrato 1 usan GPS como reloj de referencia porque un receptor de 50 dólares y una antena en el tejado pueden proporcionar una hora precisa con un margen de 10 nanosegundos, mucho más barato que comprar un reloj de cesio.

El NTP a gran escala

El NTP Pool Project, alojado en pool.ntp.org, es una de las grandes historias de infraestructura voluntaria de internet. Iniciado en 2003 por Adrian von Bidder, el pool es una colección de miles de servidores NTP operados por voluntarios distribuidos por todo el mundo. Cuando tu ordenador está configurado para usar pool.ntp.org, el sistema DNS devuelve un conjunto diferente de direcciones de servidor cada vez, distribuyendo la carga entre el pool de voluntarios. En 2025, el pool atiende aproximadamente 50 millones de clientes por segundo y cubre las necesidades de sincronización horaria de la mayoría de distribuciones Linux, numerosos dispositivos IoT y un sinfín de otros sistemas que usan pool.ntp.org como fuente NTP predeterminada.

Las grandes empresas tecnológicas gestionan su propia infraestructura horaria a una escala enorme. Google opera una flota de servidores sincronizados con relojes atómicos y receptores GPS en sus centros de datos. El servicio de hora de Google está disponible públicamente en time.google.com e implementa una variante interesante: en lugar de insertar los segundos intercalares de forma abrupta, Google usa una técnica llamada «leap smear», repartiendo gradualmente el segundo adicional a lo largo de una ventana de 24 horas. Esto evita los fallos de software que las inserciones bruscas de segundos intercalares han causado históricamente, pero significa que durante un evento de leap smear, la hora de Google discrepa deliberadamente del UTC hasta en medio segundo.

Meta (antes Facebook) gestiona un servicio de hora interno similar y ha publicado detalladas entradas de blog de ingeniería sobre su uso del Precision Time Protocol (PTP) dentro de sus centros de datos, superpuesto a relojes maestros disciplinados por GPS. Amazon opera el Amazon Time Sync Service, disponible para todas las instancias de AWS. Cloudflare ofrece un servicio NTP público y ha sido promotor de Roughtime, un protocolo desarrollado por Google que añade prueba criptográfica a las respuestas de hora para que los clientes puedan verificar que no están siendo engañados.

Cuando el NTP falla

El 30 de junio de 2012 se insertó un segundo intercalar en el UTC a medianoche. El segundo adicional — 23:59:60 — provocó un error en el código de cronometraje del núcleo de Linux que hizo que el temporizador de alta resolución del sistema se descontrolara. Los procesos que dependían de estos temporizadores consumieron repentinamente el 100 por ciento de sus núcleos de CPU, girando en bucles cerrados. Reddit cayó. Mozilla cayó. Gawker cayó. El sistema de facturación de Qantas Airlines se bloqueó, dejando a los pasajeros en tierra. StumbleUpon, FourSquare, Yelp y LinkedIn también informaron de interrupciones. La solución era reiniciar los sistemas afectados o ajustar el reloj manualmente, lo cual resultaba irónico dado que el problema había comenzado con un intento de mantener los relojes precisos.

La suplantación de GPS presenta una amenaza más insidiosa. Dado que las señales GPS llegan con una potencia extremadamente baja — unos 10^-16 vatios en la superficie terrestre — pueden ser anuladas por un transmisor relativamente económico que emita señales falsas. Una señal GPS falsificada puede alimentar con datos horarios falsos a cualquier servidor NTP de Estrato 1 que use GPS como referencia. En 2013, investigadores de la Universidad de Texas en Austin demostraron que podían suplantar un receptor GPS a un kilómetro de distancia con un equipo que costaba unos 3.000 dólares, desplazando gradualmente la hora reportada sin activar ninguna alarma.

En 2016, Cloudflare sufrió un incidente ampliamente difundido en el que algunos de sus servidores devolvieron brevemente fechas de 2026 o 1970 a los clientes debido a un error en el manejo del NTP. Fallos más sutiles ocurren constantemente. Servidores NTP mal configurados que se anuncian como Estrato 1 cuando en realidad funcionan sin referencia causan imprecisiones en cascada en cualquier cliente que confíe en ellos. Los cortafuegos que bloquean el tráfico NTP dejan que las máquinas se desfasen silenciosamente. Las máquinas virtuales en entornos de nube son notorias por su deriva horaria porque la planificación de CPU del hipervisor introduce retardos impredecibles en el cronometraje del sistema operativo invitado.

Estos modos de fallo explican por qué la autenticación del NTP es importante. El protocolo NTP original no tenía forma de que un cliente verificara que una respuesta horaria provenía realmente del servidor que decía ser. Un atacante en la ruta de red podía alterar las respuestas de hora en tránsito. Network Time Security (NTS), especificado en el RFC 8915 y publicado en 2020, añade autenticación basada en TLS al NTP. La adopción ha sido lenta — la mayor parte del tráfico NTP en internet sigue sin autenticar — pero los principales proveedores como Cloudflare ya soportan NTS, y la tendencia apunta hacia una adopción universal.

Hora GPS frente a NTP

Tu smartphone casi con toda seguridad no usa el NTP como fuente horaria principal. En su lugar, utiliza la hora emitida por la red celular, que a su vez deriva del GPS. Los satélites GPS llevan relojes atómicos a bordo y transmiten su hora actual como parte de cada señal de navegación. El receptor de tu teléfono, además de calcular la latitud y la longitud, extrae la hora de las señales satelitales y la usa para ajustar el reloj del teléfono.

La hora GPS y el UTC no son lo mismo. Cuando se lanzó el GPS en 1980, estaba sincronizado con el UTC. Pero el UTC inserta ocasionalmente segundos intercalares para mantenerse alineado con la desaceleración de la rotación terrestre, y el GPS no lo hace. En 2025, la hora GPS va 18 segundos por delante del UTC. El mensaje de navegación GPS incluye el desfase actual, de modo que los receptores pueden convertir entre ambos, pero la distinción importa a los ingenieros que trabajan con datos GPS sin procesar.

Los smartphones modernos usan un enfoque híbrido. La señal horaria del GPS o de la red celular proporciona una sincronización gruesa, típicamente precisa dentro de unas pocas decenas de nanosegundos. Pero la recepción GPS es intermitente: el teléfono puede estar en interiores, en un metro o en modo avión. El NTP llena los huecos. Apple, Google y la mayoría de los fabricantes de teléfonos configuran sus dispositivos para que también consulten servidores NTP (Apple usa time.apple.com, los dispositivos Android usan time.android.com) para mantener la precisión cuando las señales satelitales no están disponibles. Los dos sistemas se complementan: el GPS proporciona precisión absoluta cuando el cielo es visible, y el NTP ofrece corrección continua cuando no lo es.

El problema del año 2038

El tiempo Unix, el sistema utilizado por prácticamente todos los servidores, teléfonos y dispositivos embebidos del planeta, cuenta el número de segundos transcurridos desde la medianoche UTC del 1 de enero de 1970. Durante décadas, este conteo se almacenó como un entero con signo de 32 bits, que puede contener valores hasta 2.147.483.647. Esa cantidad de segundos después de la época Unix corresponde a las 03:14:07 UTC del 19 de enero de 2038. Un segundo después, el contador se desborda y los sistemas que aún usen marcas de tiempo de 32 bits interpretarán la fecha como el 13 de diciembre de 1901.

El NTP tiene su propia versión de este problema. El formato de marca de tiempo del NTP usa un valor de 64 bits: 32 bits para los segundos desde el 1 de enero de 1900 y 32 bits para la fracción de segundo. El campo de segundos se desborda el 7 de febrero de 2036, dos años antes de la fecha límite Y2038 de Unix. NTPv4, la versión actual del protocolo, maneja esto definiendo «números de era» que desambigúan a qué ciclo de 136 años pertenece una marca de tiempo, pero ambos extremos deben implementar correctamente la lógica de eras.

La mayoría de los servidores, ordenadores de escritorio y teléfonos modernos ya utilizan sistemas operativos de 64 bits con representaciones de tiempo de 64 bits, que no se desbordarán durante aproximadamente 292.000 millones de años. El peligro reside en la larga cola de sistemas embebidos: controladores industriales, sistemas de automatización de edificios, dispositivos médicos, unidades de control electrónico de automóviles y los miles de millones de dispositivos IoT que ejecutan firmware de 32 bits y que quizá nunca reciban una actualización. Muchos de estos dispositivos usan NTP para ajustar sus relojes. El trabajo silencioso y poco glamuroso de identificar y actualizar los sistemas vulnerables está en curso, pero a diferencia del Y2K, no existe una fecha límite única que concentre la atención pública. El desbordamiento del NTP en 2036 y el de Unix en 2038 llegarán tanto si se ha parcheado hasta el último termostato embebido y controlador de semáforos como si no.

Cuarenta años y sumando

El NTP lleva sincronizando los relojes de internet durante cuatro décadas. Sobrevivió a la transición de ARPANET a la internet comercial, del módem telefónico a la fibra óptica, de los mainframes a los smartphones. David Mills diseñó un protocolo tan robusto y tan adecuado para su tarea que ha sobrevivido a casi todo aquello para lo que fue construido originalmente. Las máquinas han cambiado, las redes han cambiado, las velocidades se han multiplicado por un millón, y el NTP sigue funcionando.

Pero las exigencias en materia de cronometraje están creciendo. Las redes celulares 5G requieren una sincronización precisa de decenas de nanosegundos entre estaciones base. Los vehículos autónomos necesitan una temporización precisa para fusionar datos de lidar, radar y cámaras. Las firmas de trading de alta frecuencia miden la latencia en nanosegundos y pagarán millones por unos pocos microsegundos de ventaja. Para estas aplicaciones, la precisión de milisegundos del NTP no es suficiente. El Precision Time Protocol (PTP), definido en IEEE 1588, puede lograr sincronización a nivel de nanosegundos con hardware de red dedicado. El PTP ya es estándar en telecomunicaciones, radiodifusión y redes de trading financiero.

Sin embargo, para los miles de millones de dispositivos cotidianos — el portátil en tu escritorio, el servidor en un centro de datos, el termostato en tu pared, la cámara de tu timbre — el NTP sigue siendo la columna vertebral invisible del tiempo sincronizado. Es uno de esos protocolos fundacionales de internet que funciona tan bien que casi nadie piensa en él. Cada vez que miras el reloj de tu teléfono y coincide con el de tu portátil, que coincide con el reloj de la pared del aeropuerto, que coincide con la hora de salida en el panel de estado del vuelo, estás viendo la obra de un protocolo diseñado por un profesor en Delaware hace cuatro décadas, funcionando sin queja, manteniendo el mundo en sincronía.

← Volver a todos los artículos