stringtranslate.com

Sincronización de reloj

La sincronización de relojes es un tema de la ciencia informática y la ingeniería que tiene como objetivo coordinar relojes que de otro modo serían independientes . Incluso cuando se configuran inicialmente con precisión, los relojes reales diferirán después de cierto tiempo debido a la deriva del reloj , causada por relojes que cuentan el tiempo a velocidades ligeramente diferentes. Hay varios problemas que ocurren como resultado de las diferencias en la velocidad del reloj y varias soluciones, algunas de las cuales son más aceptables que otras en ciertos contextos. [1]

Terminología

En la comunicación en serie , la sincronización de reloj puede referirse a la recuperación de reloj que logra la sincronización de frecuencia, a diferencia de la sincronización de fase completa . Dicha sincronización de reloj se utiliza en la sincronización en telecomunicaciones y la detección automática de velocidad en baudios . [2]

El funcionamiento plesiócrono o isócrono se refiere a un sistema con sincronización de frecuencia y restricciones flexibles en cuanto a la sincronización de fase. El funcionamiento sincrónico implica una sincronización más estricta basada en el tiempo, tal vez además de la frecuencia.

Problemas

Como resultado de las dificultades para gestionar el tiempo a escalas más pequeñas, existen problemas asociados con el desfase horario que adquieren mayor complejidad en la computación distribuida , en la que varias computadoras necesitarán obtener la misma hora global. Por ejemplo, en los sistemas Unix, el comando make se utiliza para compilar código nuevo o modificado y busca evitar la recompilación del código sin cambios. El comando make utiliza el reloj de la máquina en la que se ejecuta para determinar qué archivos fuente necesitan ser recompilados. Si las fuentes residen en un servidor de archivos separado y las dos máquinas tienen relojes no sincronizados, el programa make podría no producir los resultados correctos. [3]

La sincronización es necesaria para una reproducción precisa de contenido multimedia . La sincronización del reloj es un componente importante de los sistemas de audio por Ethernet .

Soluciones

En un sistema con un servidor central, la solución de sincronización es trivial: el servidor dictará la hora del sistema. El algoritmo de Cristian y el algoritmo de Berkeley son soluciones potenciales al problema de sincronización del reloj en este entorno.

En la computación distribuida, el problema se vuelve más complejo porque no es fácil conocer la hora global. La solución de sincronización de relojes más utilizada en Internet es el Protocolo de Tiempo de Red (NTP), que es una arquitectura cliente-servidor en capas basada en el paso de mensajes del Protocolo de Datagramas de Usuario (UDP). Las marcas de tiempo de Lamport y los relojes vectoriales son conceptos del reloj lógico en la computación distribuida.

En una red inalámbrica , el problema se vuelve aún más desafiante debido a la posibilidad de colisión de los paquetes de sincronización en el medio inalámbrico y la mayor tasa de deriva de los relojes en los dispositivos inalámbricos de bajo costo. [4] [5]

Algoritmo de Berkeley

El algoritmo de Berkeley es adecuado para sistemas en los que no hay un reloj de radio . Este sistema no tiene forma de asegurarse de la hora real, salvo manteniendo una hora promedio global como hora global. Un servidor de hora obtendrá periódicamente la hora de todos los clientes de hora, promediará los resultados y luego informará a los clientes sobre el ajuste que se debe realizar en sus relojes locales para lograr el promedio. Este algoritmo resalta el hecho de que los relojes internos pueden variar no solo en la hora que contienen, sino también en la frecuencia del reloj .

Sincronización mutua de redes mediante muestreo de reloj

La sincronización mutua de redes por muestreo de reloj (CS-MNS) es adecuada para aplicaciones distribuidas y móviles. Se ha demostrado que es escalable en redes en malla que incluyen nodos no adyacentes vinculados indirectamente y es compatible con IEEE 802.11 y estándares similares. Puede tener una precisión del orden de unos pocos microsegundos, pero requiere conectividad inalámbrica física directa con un retraso de enlace insignificante (menos de 1 microsegundo) en los enlaces entre nodos adyacentes, lo que limita la distancia entre nodos vecinos a unos pocos cientos de metros. [6]

El algoritmo de Cristian

El algoritmo de Cristian se basa en la existencia de un servidor de tiempo. [7] El servidor de tiempo mantiene su reloj mediante un reloj de radio u otra fuente de tiempo precisa, y luego todos los demás equipos del sistema permanecen sincronizados con él. Un cliente de tiempo mantendrá su reloj realizando una llamada de procedimiento al servidor de tiempo. Las variaciones de este algoritmo permiten realizar cálculos de tiempo más precisos al tener en cuenta el tiempo de propagación de radio de la red .

Sistemas de navegación por satélite

Además de su uso en la navegación, el Sistema de Posicionamiento Global (GPS) también se puede utilizar para la sincronización de relojes. La precisión de las señales horarias del GPS es de ±10 nanosegundos. [8] El uso del GPS (u otros sistemas de navegación por satélite ) para la sincronización requiere un receptor conectado a una antena con una vista despejada del cielo.

Códigos de tiempo del grupo de instrumentación de rango intermedio

Los códigos de tiempo IRIG son formatos estándar para transferir información de sincronización. Los estándares de frecuencia atómica y los receptores GPS diseñados para sincronización de precisión suelen estar equipados con una salida IRIG. Los estándares fueron creados por el Grupo de Trabajo de Telecomunicaciones del Grupo de Instrumentación Inter-Range (IRIG) del ejército de los Estados Unidos, el organismo de normalización del Consejo de Comandantes de Campo. El trabajo sobre estos estándares comenzó en octubre de 1956, y los estándares originales fueron aceptados en 1960. [9]

Protocolo de tiempo de red

El Protocolo de Tiempo de Red (NTP) es un protocolo muy robusto, ampliamente utilizado en Internet. Probado a lo largo de los años, generalmente se lo considera el protocolo de sincronización de tiempo distribuido de última generación para redes no confiables . Puede reducir los desfases de sincronización a tiempos del orden de unos pocos milisegundos en Internet pública y a niveles inferiores a milisegundos en redes de área local .

También se puede utilizar una versión simplificada del protocolo NTP, el Protocolo simple de tiempo de red (SNTP), como protocolo de sincronización primaria/secundaria sin estado de disparo único puro , pero carece de las características sofisticadas de NTP y, por lo tanto, tiene niveles de rendimiento y confiabilidad mucho más bajos.

Protocolo de tiempo de precisión

El Protocolo de Tiempo de Precisión (PTP) es un protocolo maestro/esclavo para la entrega de hora altamente precisa a través de redes de área local.

Sincronización de transmisión de referencia

El algoritmo de sincronización de tiempo de transmisión de referencia (RBS) se utiliza a menudo en redes inalámbricas y redes de sensores. En este esquema, un iniciador transmite un mensaje de referencia para instar a los receptores a ajustar sus relojes.

Sincronización de infraestructura de transmisión de referencia

El protocolo Reference Broadcast Infrastructure Synchronization (RBIS) [10] es un protocolo de sincronización maestro/esclavo, como RBS, basado en un paradigma de sincronización receptor/receptor. Está diseñado específicamente para su uso en redes inalámbricas IEEE 802.11 configuradas en modo infraestructura (es decir, coordinadas por un punto de acceso). El protocolo no requiere ninguna modificación en el punto de acceso.

Ethernet sincrónico

Ethernet síncrona utiliza Ethernet de manera sincrónica , de modo que cuando se combina con protocolos de sincronización como PTP en el caso del Proyecto White Rabbit , se logra una precisión de sincronización de subnanosegundos.

Redes inalámbricas ad hoc

La sincronización se logra en redes inalámbricas ad hoc mediante el envío de mensajes de sincronización en forma de múltiples saltos y cada nodo se sincroniza progresivamente con el nodo que es el remitente inmediato de un mensaje de sincronización. Algunos ejemplos incluyen el Protocolo de sincronización de tiempo de inundación (FTSP), [4] y Harmonia, [5] ambos capaces de lograr la sincronización con una precisión del orden de microsegundos.

Huygens

Investigadores de Stanford y Google presentaron Huygens, un algoritmo de sincronización de reloj de extremo a extremo basado en sondas. Huygens se implementa en software y, por lo tanto, se puede implementar en centros de datos o en entornos de nube pública . Al aprovechar algunos aspectos clave de los centros de datos modernos y aplicar algoritmos de estimación y técnicas de procesamiento de señales novedosos, el algoritmo Huygens logró una precisión de decenas de nanosegundos incluso con una carga de red alta. [11] Los hallazgos de esta investigación se están probando en aplicaciones del mercado financiero. [12]

Véase también

Referencias

  1. ^ Tanenbaum, Andrew S .; van Steen, Maarten (2002), Sistemas distribuidos: principios y paradigmas , Prentice Hall , ISBN 0-13-088893-1
  2. ^ Norman Matloff (3 de septiembre de 2001), Transmisión en una línea serial (PDF) , consultado el 17 de abril de 2018
  3. Marco Platania (3 de junio de 2018). "Sincronización del reloj" (PDF) . pág. 11.
  4. ^ ab Maróti, Miklós; Kusy, Branislav; Simón, Gyula; Lédeczi, Ákos (2004). "El protocolo de sincronización del tiempo de inundaciones". Actas de la segunda conferencia internacional sobre sistemas de sensores integrados en red . SenSys '04. Nueva York, NY, Estados Unidos: ACM. págs. 39–49. doi :10.1145/1031495.1031501. ISBN 1581138792.S2CID 9897231  .
  5. ^ ab Koo, Jinkyu; Panta, Rajesh K.; Bagchi, Saurabh; Montestruque, Luis (2009). "Una historia de dos relojes sincronizados". Actas de la 7.ª Conferencia de la ACM sobre sistemas de sensores integrados en red . SenSys '09. Nueva York, NY, EE. UU.: ACM. págs. 239–252. doi :10.1145/1644038.1644062. ISBN 9781605585192.S2CID8242938  .​
  6. ^ Rentel, Carlos H.; Kunz, Thomas (marzo de 2005), "Un algoritmo de sincronización mutua de redes con muestreo de reloj para redes inalámbricas ad hoc", IEEE Wireless Communications and Networking Conference , 1 , IEEE Press: 638–644, doi :10.1109/WCNC.2005.1424575, S2CID  1340072
  7. ^ Cristian, F. (1989), "Sincronización probabilística de relojes", Computación distribuida , 3 (3), Springer: 146–158, doi :10.1007/BF01784024, S2CID  3170166
  8. ^ "Transferencia de tiempo GPS de vista común". Instituto Nacional de Estándares y Tecnología . Archivado desde el original el 28 de octubre de 2012.
  9. ^ Josh Matson (mayo de 2013). "Elección del protocolo de sincronización horaria correcto e incorporación del módulo 1756-TIME en su aplicación" (PDF) . Rockwell Automation . Consultado el 13 de agosto de 2019 .
  10. ^ Cena, G.; Scanzio, S.; Valenzano, A.; Zunino, C. (junio de 2015), "Implementación y evaluación del protocolo de sincronización de infraestructura de transmisión de referencia", IEEE Transactions on Industrial Informatics , 11 (3), IEEE Press: 801–811, doi :10.1109/TII.2015.2396003, S2CID  17867070
  11. ^ Explotación de un efecto de red natural para una sincronización de reloj escalable y de grano fino. 2018. págs. 81–94. ISBN 9781939133014.
  12. ^ John Markoff (29 de junio de 2018). "La división del tiempo en nanosegundos es precisamente lo que quiere Wall Street". New York Times .

Lectura adicional