stringtranslate.com

El algoritmo de Cristian

El algoritmo de Cristian (introducido por Flaviu Cristian en 1989) [1] es un método para la sincronización de relojes que se puede utilizar en muchos campos de la informática distributiva, pero se utiliza principalmente en intranets de baja latencia . Cristian observó que este algoritmo simple 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. También sufre en implementaciones que utilizan un solo servidor, lo que lo hace inadecuado para muchas aplicaciones distributivas 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:

  1. P solicita la hora a S en el momento t 0 .
  2. Después de recibir la solicitud de P , S prepara una respuesta y agrega la hora T de su propio reloj.
  3. P recibe la respuesta en el momento t 1 y luego establece su tiempo en T + RTT/2 , donde RTT=t 1 -t 0 .

Si el RTT se divide en partes iguales entre la solicitud y la respuesta, la sincronización está libre de errores. Sin embargo, debido a influencias impredecibles, esta suposición no suele ser cierta. Los RTT más largos indican interferencias que, por lo general, son asimétricas. De este modo, se minimizan el desfase y la inestabilidad de la sincronización seleccionando el RTT adecuado de un conjunto de muchos pares de 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 cantidades se pueden medir durante el proceso de sincronización, lo que optimiza el método por sí mismo.

Véase también

Referencias

  1. ^ Cristian, Flaviu (1989), "Sincronización probabilística de relojes" (PDF) , Computación distribuida , 3 (3), Springer : 146–158, doi :10.1007/BF01784024, S2CID  3170166