Hoy en día, es poco frecuente encontrar una aplicación en la que sólo intervenga una sola máquina. La mayoría de las tareas llevadas a cabo implican la comunicación entre diferentes equipos. A partir del momento en el que máquinas deben comunicar entre sí, es importante que sus relojes estén sincronizados para que puedan ponerse de acuerdo sobre el orden y la duración de los eventos.
La sincronización horaria de una red informática permite asegurar que todas las máquinas que deben comunicar entre sí tengan la misma hora. El hecho de tener relojes precisos y sincronizados garantiza comunicaciones simplificadas que no fallan, aumenta la seguridad de la red al permitir por ejemplo tener registros más precisos o evitar fallos relacionados con la reproducción de mensajes de red.
Para sincronizar una red horaria, hace falta seguir los siguientes pasos: recuperar una fuente de tiempo como reloj de referencia, distribuir la hora de referencia en la red y corregir el desfase de los relojes presentes en la red.
Reloj de referencia y distribución horaria en la red
La primera tarea que llevar a cabo para asegurar la sincronización horaria de una red es elegir un reloj de referencia. Un reloj de referencia debe tener un alto nivel de precisión y de estabilidad. De hecho, su hora permitirá actualizar todos los relojes de una red. Los relojes de referencia suelen ser a menudo relojes atómicos o GPS. Estos dos tipos de relojes proporcionan marcas de tiempo altamente precisas y son muy estables en el tiempo. Sin embargo, se debe elegir un servidor público o definir su propio reloj de referencia. Obviamente, sale más barato elegir un reloj de referencia público, pero puede plantear un problema de seguridad. Cualquier opción que elija, siempre se recomienda utilizar varios relojes de referencia ya que ningún material es infalible y una avería o un desfase siempre puede ocurrir, incluso en equipos con este nivel de precisión. El hecho de utilizar varios relojes de referencia permite protegerse mejor contra posibles averías así como mantener la precisión de la sincronización temporal en una red.
Una vez que uno tiene un número suficiente de fuentes de tiempo, es importante distribuir la hora de referencia en la red para sincronizar los equipos. Por ello, existen diferentes protocolos de sincronización horaria, y los que más se utilizan son el NTP, SNTP, PTP e IRIG. La elección del protocolo de sincronización horaria depende del nivel de precisión requerido por las aplicaciones en la red y de la dificultad/coste que supone la implementación de dicho protocolo.
NTP
El protocolo NTP (Network Time Protocol) es uno de los primeros protocolos de sincronización horaria. Hoy en día, se utiliza ampliamente y ha conocido numerosas evoluciones para mejorar su rendimiento y seguridad (la versión actual es la cuarta versión). El protocolo NTP es un protocolo jerárquico con un reloj de referencia arriba de la pirámide en estrato 0 y cada servidor conectado al menos a un servidor de estrato i es un servidor de estrato i+1. No se recomienda tener redes NTP demasiado lejos en la jerarquía puesto que afecta de manera significativa la precisión de la sincronización horaria. Existen numerosos servidores de estrato 1 o 2 públicamente accesibles, para sincronizar su red. NTP es un protocolo muy fácil de implementar. Sin embargo, sólo ofrece una precisión de milisegundos. Aunque este nivel de precisión es suficiente para un gran número de aplicaciones, existen otras que requieren un nivel de precisión superior.
SNTP
SNTP (Simple Network Time Protocol) es una versión simplificada del protocolo NTP que no permite obtener el mismo nivel de rendimiento en términos de precisión pero que es más sencillo gracias a los algoritmos utilizados para actualizar los relojes de los equipos de red.
PTP
El protocolo PTP (Precision Time Protocol) es un protocolo de sincronización horaria que permite alcanzar un nivel de precisión teórico de nanosegundos en redes locales. Esto hace del PTP el protocolo de referencia para las aplicaciones que tienen necesidades importantes de precisión como los sectores de la telecomunicación o de las finanzas. PTP funciona en modo maestro/esclavo para identificar el reloj principal, es decir, el que sincroniza los demás relojes de la red. La primera fase del protocolo consiste en identificar los relojes patrón (los que tienen los mejores parámetros entre un conjunto de parámetros definido), para que puedan distribuir su hora a toda la red que se les asigne.
IRIG
IRIG (Inter-Range Instrumentation Group) es una familia de protocolos que ofrece niveles de precisión variables y cuyos todos miembros ofrecen una gran robustez. Sin embargo, los protocolos IRIG necesitan hardware específico y no han sido diseñados para operar a largas distancias. Se debe privilegiar el uso de estos protocolos en entornos en los que se privilegian la robustez y la seguridad como las aplicaciones militares o el sector aeroespacial. Los servidores de tiempo IRIG distribuyen continuamente marcas de tiempo a una frecuencia que depende del protocolo preciso elegido.
Más información sobre la diferencia entre los protocolos NTP, PTP e IRIG
comparar los protocolos de sincronización
Actualizar los relojes de la red
Esta etapa consiste en saber cómo actualizar el reloj a partir de la hora recibida. Esta etapa es imprescindible y depende del protocolo que se ha seleccionado previamente. De hecho, cada protocolo define diferentes algoritmos que utilizar, para saber cómo actualizar un reloj. Puesto que el objetivo siempre es ofrecer el mejor nivel de precisión, los diferentes algoritmos filtran las diferentes fuentes de tiempo para seleccionar la más adecuada para actualizar los relojes de la red. Siempre con el objetivo de mejorar la calidad de la sincronización de la red, otros algoritmos eliminan el ruido en los mensajes recibidos en el momento en el que las marcas de tiempo circulan en la red.
Las correcciones de los relojes de una red pueden llevarse a cabo progresivamente para evitar un salto demasiado brusco si se ha introducido un desfase significativo entre el reloj local y el de referencia. En efecto, el hecho de corregir un desfase significativo directamente podría acarrear el fallo de las aplicaciones que se basan en la hora del reloj corregido.
Todos estos mecanismos son transparentes para el usuario puesto que dependen del protocolo de sincronización horaria elegido.
También es importante preocuparse por las problemáticas de seguridad de la sincronización temporal. De hecho, un gran número de aplicaciones se basan en una sincronización temporal precisa: se trata entonces de un vector de ataque que puede generar fallos en las aplicaciones. La mayoría de los protocolos de sincronización permiten asegurar la seguridad de las comunicaciones para garantizar que agentes externos no puedan interferir con la sincronización horaria.
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 un líder francés en sincronización horaria y en tiempo frecuencia. El diseño modular de nuestros servidores de tiempo Netsilon se adapta y evoluciona según las necesidades y las aplicaciones, y ofrece una sincronización horaria mediante los protocolos IRIG, PTP y NTP.
¿Tiene un proyecto? ¿Necesita asistencia?