La sincronización horaria es una necesidad en muchos ámbitos de la informática y las redes, sobre todo en sistemas críticos en los que la precisión, la fiabilidad y la seguridad son esenciales y dependen del mantenimiento de la coherencia temporal entre todos los objetos implicados.
Es porque todas las máquinas de un sistema complejo se sincronizarán que este último podrá coordinar acciones, asegurar la coherencia de las transacciones, y mantener la integridad de los datos, incluso si está compuesto por sistemas distribuidos.
Hoy en día, tres protocolos se distinguen por su uso e importancia: IRIG (Inter-Range Instrumentation Group), NTP (Network Time Protocol) y PTP (Precision Time Protocol). Cada uno de estos protocolos ha sido desarrollado con objetivos específicos y presenta características distintas que lo hacen más o menos adecuado para diferentes aplicaciones. Se lo explicamos todo.
El protocolo IRIG en algunas palabras
IRIG no es tanto un protocolo como un conjunto de normas (un estándar) que permite mandar tramas con marca de tiempo mediante una corriente eléctrica. Originalmente, la norma IRIG ha sido un proyecto del ejército estadounidense, que se ha utilizado después en la industria aeroespacial y la telemetría. El objetivo de esta norma es garantizar una sincronización de datos de alta precisión en sistemas en los que diferentes instrumentos y dispositivos deben estar perfectamente sincronizados.
Las señales IRIG (tramas con marca de tiempo) llevan información temporal codificada en forma de impulsos de distinta duración, lo que permite una precisión muy elevada. Esta norma permite una transferencia rápida y una gran precisión, pero solamente funciona en distancias cortas aunque existen maneras de enviar tramas con marca de tiempo IRIG usando fibra óptica y así operar en distancias más largas.
Sin embargo, no es recomendable proceder de esta manera puesto que no se conoce el periodo entre la transmisión y la recepción de una trama, lo que puede resultar imposible sincronizar los diferentes equipos.
Así, los diferentes dispositivos IRIG se sincronizan principalmente mediante cables coaxiales. Los servidores IRIG pueden utilizar su propio reloj interno para generar las tramas con marca de tiempo, pero están conectados en mayoría a una fuente de tiempo fiable como un GPS o un reloj atómico. El hecho de enviar las marcas de tiempo codificadas directamente en la corriente y en distancias cortas permite conocer con exactitud el tiempo de transmisión así como el tiempo de resolución de los dispositivos que leen las tramas, ofreciendo así una gran robustez y precisión.
Tener más información sobre el NTP
Los grandes principios del protocolo NTP
El protocolo NTP (Network Time Protocol) es un protocolo de sincronización que se basa en UDP y utiliza el puerto 123. En el protocolo NTP, los roles son asimétricos: de hecho, un ordenador sincroniza su reloj con el de un servidor de referencia.
La primera versión documentada del protocolo, la RFC 958, se fecha en 1985. La documentación actual del protocolo NTP es la cuarta versión (RFC 5905). Sin embargo, se usa menos que la tercera versión (RFC 1305) que se usa por una mayoría de personas. Una versión simplificada de NTP ha sido introducida entre la publicación de la tercera y de la cuarta versión: SNTP (Simple NTP). SNTP es similar al NTP, pero con menos restricciones en cuanto a los algoritmos que se deben utilizar así como en el número de fuentes que deben sincronizarse con los niveles 0/1.
El protocolo define a la vez la arquitectura de red que implementar, los mensajes que se deben mandar entre clientes y servidores y todo un conjunto de algoritmos que utilizar por los clientes para que la sincronización se realice correctamente.
La arquitectura de una red NTP es arborescente. En la parte superior, en el nivel 0 llamado estrato 0 en la arquitectura NTP, se encuentran los relojes de referencia (GPS, reloj atómico, etc). Están conectados al servidor del estrato 1 mediante interfaces serie. El estrato i está conectado al estrato i+1 para transmitir el sellado de tiempo y permitir que continúe la sincronización.
Los servidores en un mismo estrato (homólogos) pueden conectarse entre sí para paliar los problemas de conexión con el estrato superior o simplemente para sincronizarse entre sí.
Los servidores NTP asumen alternativamente los papeles de cliente y de servidor en función del estrato con el que estén comunicando. La norma limita la arquitectura a 16 estratos pero en práctica, la mayoría de los clientes finales se sitúan entre los estratos 3 y 4.
El NTP proporciona una precisión de menos de un segundo. Sin embargo, a medida que aumenta el número de estratos y que nos alejamos del reloj de referencia, los dispositivos se vuelven menos precisos, puesto que cada estrato puede generar un pequeño desfase. La cuarta versión es más precisa que las versiones anteriores puesto que permite mantener un desfase inferior a 10 ms para una máquina conectada a través de Internet e incluso mantener un desfase inferior a 200s entre máquinas en una misma red local.
Puesto que existen servidores NTP públicos, no hace falta acceder directamente a un reloj de referencia para sincronizar su red mediante el protocolo NTP. No obstante, no es recomendable si además de una sincronización precisa también se quiere obtener una seguridad y fiabilidad máxima.
El protocolo PTP en pocas palabras
El PTP (Precision Time Protocol) es un protocolo de sincronización asimétrico (maestro-esclavo) que difunde un sellado de tiempo a través de una red para sincronizar los equipos.
En teoría, ofrece una precisión de nanosegundos; pero en práctica, alcanza una precisión de microsegundos, lo que todavía le convierte en un protocolo mucho más preciso que el NTP.
El PTP es más reciente puesto que su primera versión ha sido publicada en 2002 (norma IEEE 1588-2002 de la IETF «Grupo de Trabajo de Ingeniería de Internet»), la segunda en 2008 IEEE 1588-2008) y la tercera versión (la que se utiliza actualmente) en 2019. Tiene como objetivo reemplazar el NTP en los casos en los que este último no es suficientemente preciso. Cabe recordar que la norma IEEE de 2002 no es compatible con las ulteriores de 2008 y de 2019.
Técnicamente, el PTP es un protocolo que presenta una jerarquía maestro-esclavo. Los servidores PTP en el medio de la jerarquía alternan ambos papeles. El reloj maestro que se encuentra en la parte superior de la jerarquía se llama grandmaster. Se suele conectar a un reloj de referencia (reloj atómico o GPS por ejemplo) y se encarga de transmitir un mensaje de marca de tiempo al conjunto de la red. Sin embargo, el protocolo PTP no fuerza la conexión a un reloj de referencia y el grandmaster puede simplemente utilizar su reloj interno para sincronizar todos los equipos. Se selecciona el grandmaster de una red con un algoritmo llamado el best master clock algorithm (BMCA).
Comparar los diferentes protocolos
El hecho de comprender las especificidades de cada protocolo permite saber cuando utilizar el protocolo correcto para asegurar la sincronización horaria de sus equipos.
NTP ofrece una precisión más limitada pero no requiere ningún hardware específico o demasiado complejo para funcionar. De hecho, este último puede sincronizarse a través de Internet con servidores públicos, aunque no es recomendable por razones de seguridad.
Entonces, el NTP resulta ser una buena opción si la precisión no es crítica y si la información horaria se transmite de manera segura por un servidor de tiempo NTP local.
El PTP y el IRIG ofrecen niveles de precisión y de robustez mucho más superiores pero requieren hardware específico para funcionar. De hecho, el IRIG se basa en una modulación eléctrica. Así, es necesario tener el hardware adecuado para codificar y recibir la información horaria. El IRIG se suele utilizar a menudo en sectores en los que la sincronización horaria es crítica como las aplicaciones militares, el sector aeroespacial o las centrales eléctricas. El protocolo PTP también requiere hardware específico, como tarjetas para generar las marcas de tiempo y obtener una mayor precisión. Se debe privilegiar en casos en los que se requiere una sincronización de alta precisión pero también se necesita implementarla en el hardware de red.
De hecho, el IRIG suele sincronizar a menudo redes locales. El PTP también se debe privilegiar en aplicaciones como la transmisión de voz o de imágenes o la negociación de alta frecuencia, en los que la sincronización horaria es esencial.
Para concluir, elegir el proceso de sincronización horaria depende de las aplicaciones esperadas.
Con más de 150 años de experiencia en gestión del tiempo y presente en más de 140 países, Bodet Time es el líder francés en sincronización horaria y tiempo frecuencia. El diseño modular de nuestros servidores de tiempo Netsilon se adapta y evoluciona en función de las necesidades y aplicaciones y ofrece una sincronización horaria IRIG, PTP y NTP.