El algoritmo de Cristian (introducido por Flaviu Cristian en 1989) [ 1 ] es un método de sincronización de relojes que puede utilizarse en diversos campos de la informática distribuida, pero se emplea principalmente en intranets de baja latencia . Cristian observó que este sencillo algoritmo es probabilístico, ya que solo logra la sincronización si el tiempo de ida y vuelta (RTT) de la solicitud es corto en comparación con la precisión requerida. Además, presenta limitaciones en implementaciones con un único servidor, lo que lo hace inadecuado para muchas aplicaciones distribuidas donde la redundancia puede ser crucial.
Descripción
El algoritmo de Cristian funciona entre un proceso P y un servidor de tiempo S conectado a una fuente de referencia de tiempo. En pocas palabras:
- P solicita la hora a S en el instante t 0 .
- Tras recibir la solicitud de P , S prepara una respuesta y le añade la hora T de su propio reloj.
- P recibe la respuesta en el tiempo t 1 y luego establece su tiempo en T + RTT/2 , donde RTT=t 1 -t 0 .
Si el RTT se divide equitativamente entre la solicitud y la respuesta, la sincronización es perfecta. Sin embargo, debido a factores impredecibles, esta suposición no siempre se cumple. Un RTT más largo indica una interferencia generalmente asimétrica. Por lo tanto, el desfase y la fluctuación de la sincronización se minimizan seleccionando un RTT adecuado de entre un conjunto de múltiples pares solicitud/respuesta. La aceptación de un RTT en un momento dado depende de la deriva del reloj y de las estadísticas del RTT. Estas magnitudes se pueden medir durante la sincronización, lo que optimiza el método automáticamente.
Véase también
- Varianza de Allan
- Algoritmo de Berkeley
- Sincronización de relojes
- Protocolo de tiempo diurno , protocolo de sincronización horaria antiguo que utiliza el puerto TCP o UDP 13.
- ICMP Timestamp y ICMP Timestamp Reply , protocolo de sincronización horaria antiguo que utiliza ICMP
- Tiempo Atómico Internacional
- Grupo NTP , un conjunto de ordenadores de todo el mundo que proporcionan una hora muy precisa a través del Protocolo de Tiempo de Red.
- Uso indebido y abuso del servidor NTP
- ntpd , OpenNTPD y Ntpdate
- Protocolo de tiempo de precisión
- Sincronización
- Protocolo de tiempo , protocolo de sincronización horaria antiguo que utiliza el puerto TCP o UDP 37
- Servidor de hora
Referencias
- ↑ Cristian, Flaviu (1989), "Sincronización probabilística de relojes" (PDF) , Computación distribuida , 3 (3), Springer : 146–158 , doi : 10.1007/BF01784024 , S2CID 3170166
- Algoritmos distribuidos
- Sincronización