¿Cómo se las arreglan los servidores NTP para ser tan precisos?
Muchos de nosotros hemos tenido el problema ocasional de que nuestras computadoras y otros dispositivos conservan la configuración de tiempo precisa, pero una rápida sincronización con un servidor NTP hace que todo vuelva a estar bien. Pero si nuestros propios dispositivos pueden perder precisión, ¿cómo pueden los servidores NTP mantenerse tan precisos??
La sesión de Preguntas y Respuestas de hoy nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, un grupo de sitios web de preguntas y respuestas impulsado por la comunidad..
Foto cortesía de LEOL30 (Flickr)..
La pregunta
El lector superusuario Frank Thornton quiere saber cómo los servidores NTP pueden ser tan precisos:
Me he dado cuenta de que en mis servidores y otras máquinas, los relojes siempre se desvían, por lo que tienen que sincronizarse para seguir siendo precisos. Cómo los relojes del servidor NTP evitan la deriva y siempre son tan precisos?
¿Cómo los servidores NTP logran ser tan precisos??
La respuesta
Michael Kjorling, colaborador de Superusuarios, tiene la respuesta para nosotros:
Los servidores NTP dependen de relojes de alta precisión para un cronometraje de precisión. Una fuente de tiempo común para los servidores NTP centrales son los relojes atómicos o los receptores GPS (recuerde que los satélites GPS tienen relojes atómicos a bordo). Estos relojes se definen como precisos, ya que proporcionan una referencia de tiempo muy exacta.
No hay nada mágico en el GPS o en los relojes atómicos que les haga decir exactamente qué hora es. Debido a cómo funcionan los relojes atómicos, son simplemente muy buenos, ya que una vez se les ha dicho a qué hora es, acuerdo Tiempo exacto (ya que el segundo se define en términos de efectos atómicos). De hecho, vale la pena señalar que la hora del GPS es distinta de la UTC que estamos más acostumbrados a ver. Estos relojes atómicos a su vez están sincronizados con el Tiempo Atómico Internacional o TAI para no solo indicar con precisión el paso del tiempo, sino también la hora.
Una vez que tiene una hora exacta en un sistema conectado a una red como Internet, es una cuestión de ingeniería de protocolo que permite la transferencia de tiempos precisos entre hosts a través de una red no confiable. En este sentido, un servidor NTP Stratum 2 (o más alejado de la fuente de tiempo real) no es diferente de la sincronización de su sistema de escritorio con un conjunto de servidores NTP.
Para cuando tenga algunos tiempos precisos (obtenidos de los servidores NTP o de otra parte) y sepa la velocidad de avance de su reloj local (que es fácil de determinar), puede calcular la velocidad de deriva de su reloj local en relación con el " paso del tiempo. Una vez bloqueado, este valor se puede usar para ajustar continuamente el reloj local para que informe valores muy cercanos al paso preciso del tiempo, incluso si el reloj local en tiempo real es altamente inexacto. Mientras su reloj local no sea altamente errático, esto debería permitir mantener la hora exacta durante algún tiempo, incluso si su fuente de tiempo en sentido ascendente no está disponible por algún motivo.
Algunas implementaciones de clientes NTP (probablemente la mayoría de las implementaciones de ntpd daemon o del servicio del sistema) hacen esto, y otras (como el ntpdate complementario de ntpd que simplemente ajusta el reloj una vez) no lo hacen. Esto se conoce comúnmente como archivo de deriva porque almacena de forma persistente una medida de la desviación del reloj, pero estrictamente hablando, no tiene que almacenarse como un archivo específico en el disco.
En NTP, el Estrato 0 es, por definición, una fuente de tiempo precisa. El Estrato 1 es un sistema que utiliza una fuente de tiempo del Estrato 0 como su fuente de tiempo (y por lo tanto es un poco menos preciso que la fuente de tiempo del Estrato 0). El Estrato 2 nuevamente es ligeramente menos preciso que el Estrato 1 porque está sincronizando su tiempo con la fuente del Estrato 1 y así sucesivamente. En la práctica, esta pérdida de precisión es tan pequeña que es completamente insignificante en todos los casos, excepto en los más extremos..
¿Tienes algo que agregar a la explicación? Apaga el sonido en los comentarios. ¿Quieres leer más respuestas de otros usuarios de Stack Exchange con experiencia en tecnología? Echa un vistazo a la discusión completa aquí.