Me di cuenta de que en mis servidores y otras máquinas el reloj siempre se mueve, por lo que debe sincronizarse para mantenerse preciso.
¿Cómo los relojes del servidor NTP no se desvían y siempre permanecen correctos?
Me di cuenta de que en mis servidores y otras máquinas el reloj siempre se mueve, por lo que debe sincronizarse para mantenerse preciso.
¿Cómo los relojes del servidor NTP no se desvían y siempre permanecen correctos?
Respuestas:
Los servidores NTP se basan en relojes de alta precisión para el cronometraje de precisión. Una fuente de tiempo común para los servidores centrales de NTP son los relojes atómicos o 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 sobre el GPS o los relojes atómicos que les hagan decir exactamente qué hora es; Debido a cómo funcionan los relojes atómicos, simplemente son muy buenos, ya que una vez se les ha dicho qué hora es, siguen diciendo la hora exacta (ya que el segundo se define en términos de efectos atómicos ). De hecho, vale la pena señalar que el tiempo de GPS es distinto del UTC que estamos más acostumbrados a ver. Estos relojes atómicos a su vez están sincronizados contraHora Atómica Internacional o TAI para no solo decir con precisión el paso del tiempo sino también el tiempo.
Una vez que tiene una hora exacta en un sistema conectado a una red como Internet, es cuestión de ingeniería de protocolos que permite la transferencia de tiempos precisos entre hosts a través de una red poco confiable. A este respecto, un servidor NTP del estrato 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 unas pocas horas precisas (obtenidas de los servidores NTP o en otro lugar) y conozca 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 la "precisión exacta" " 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; siempre que su reloj local no sea muy errático, esto debería permitir mantener la hora exacta durante algún tiempo, incluso si su fuente de tiempo ascendente no está disponible por algún motivo. Algunas implementaciones de clientes NTP (probablemente la mayoría de ntpd
las implementaciones de servicios de sistema o daemon) hacen esto, y otras (como el compañero de ntpdntpdate
que simplemente pone el reloj una vez) no. Esto se conoce comúnmente como un archivo de deriva porque almacena persistentemente una medida de la deriva 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 precisa 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í. 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.
En el cronometraje de la red, la especificación que le dice cómo un servidor obtiene su fuente de tiempo se llama Nivel de Estrato. Cuanto más bajo sea el nivel, mejor será el tiempo de ese servidor.
Los dispositivos de nivel 0 del estrato no están conectados directamente a la red. Son el dispositivo de cronometraje en sí mismo, y deben conectarse a una computadora para obtener el tiempo real. Esta computadora se convierte en un servidor NTP de nivel 1 de Stratum.
Una computadora que se conecta a un nivel de Estrato 1 también puede convertirse en un servidor de tiempo, pero luego sería un nivel de estrato 2. A medida que las computadoras se conectan a servidores de tiempo, cuanto más bajo sea su nivel de estrato, más preciso puede ser su mantenimiento de tiempo.
Los dispositivos de nivel 0 del estrato incluyen relojes atómicos que participan en TAI (hora atómica internacional)o sincronizado con él, y los receptores de señal horaria enviados por dicho reloj. Los más comunes son los receptores de cronometraje GPS con una interfaz apropiada que incluye la señal GPS PPS. La señal PPS, cuando el GPS tiene un buen bloqueo en varios satélites, envía un pulso por segundo, y el borde de ataque de ese pulso está dentro de los nanosegundos del inicio real de ese segundo. Dependiendo de la especificación del receptor GPS, la señal PPS puede ser más o menos precisa. Esto se debe a que cada satélite GPS tiene un reloj atómico. Una vez que el receptor GPS ha encontrado su propia posición y la ubicación de los satélites GPS que está escuchando, puede corregir la propagación de RF y darle un tiempo casi tan preciso como tener un reloj atómico justo en el receptor GPS.
Entonces, los servidores de nivel 1 de Stratum se conectan a relojes atómicos o receptores GPS, y los servidores NTP se conectan a ellos. Incluso conectarse a un servidor de nivel 2 o 3 de estrato con ajustes frecuentes proporcionará a su computadora una precisión de tiempo medida en nanosegundos. Pero si necesita una mejor sincronización, conéctese a un servidor de nivel uno de estrato o compre un receptor GPS de cronometraje apropiado y conviértase en una fuente de nivel uno de estrato.
Todos los relojes se desvían hasta cierto punto, depende de la fuente de la señal de sincronización y de qué tan bien se rastrea. En una PC, este es el HPET en estos días, pero la PC puede perder la cuenta de cuántos tics han pasado si se sobrecarga.
Es probable que los servidores NTP con los que habla su máquina también estén perdiendo tiempo, sin embargo, vuelven su tiempo a una mejor fuente.
En última instancia, las mejores fuentes son los relojes de alta precisión como los relojes atómicos. Puede pensar en NTP como una red de máquinas, cada una tendrá una serie de fuentes en las que se basa el tiempo y sesga su propio tiempo a lo que se considera más preciso.
Esto se rige por una fuente que declara su estrato. Un reloj atómico o GPS es el estrato 0, y la autoridad sobre qué hora es. Cada capa a partir de eso es el siguiente estrato - estrato 1, y verificará una serie de fuentes de estrato 0 junto con sus pares en el mismo nivel, para verificar la cordura de las fuentes de tiempo.
Es probable que esté hablando con una fuente de tiempo de estrato 2 o 3.
Lo que escribieron los demás es cierto: un servidor Stratum 1 obtiene su tiempo de un dispositivo Stratum 0. No sé en qué intervalos de tiempo sucede eso, pero creo que son bastante precisos allí.
Un servidor Stratum n con n> 1 obtiene su tiempo a través de NTP desde un servidor Stratum n-1. Eso significa que se sincroniza a intervalos regulares. Al iniciar el servicio NTP, la sincronización ocurre en intervalos bastante cortos y, con el tiempo, los intervalos comienzan a aumentar. Finalmente, el intervalo es tan grande como 1024 s, aproximadamente 17 minutos.
Lo que no se ha abordado es la pregunta ¿qué sucede entre ese momento? Bueno, hay una instalación llamada archivo de deriva . Ayuda a NTP a monitorear cualquier deriva entre el reloj local y el reloj de referencia. La frecuencia del reloj local se ajusta de acuerdo con la deriva detectada, de modo que la hora también sea precisa entre las encuestas del servidor.
Otra implementación de NTP podría usar otras instalaciones, pero una cosa es común: la necesidad y la capacidad de ajustar la frecuencia del reloj.