sockets - ¿Cuál es la mejor manera de sincronizar los tiempos con la precisión de milisegundos Y la precisión entre las máquinas?
synchronization gps (9)
Aquí hay un software de 10 años que se sincroniza dentro de una centésima de milisegundo. (Mi equipo lo escribió cuando NTP no era lo suficientemente bueno para nuestro laboratorio).
Del resumen: "Un reloj distribuido para PC básicas conectadas en red. Sin hardware adicional, este reloj correlaciona los datos del sensor de varias PC con latencia y fluctuación en un promedio de 10 microsegundos, peor caso de 100 microsegundos".
Descripción: http://scholar.google.com/citations?view_op=view_citation&citation_for_view=QmbeOvsAAAAJ:5nxA0vEk-isC
Código fuente: http://zx81.isl.uiuc.edu/clockkit/
Por lo que entiendo, los cristales en PC son notorios por la inclinación del reloj. Si los relojes siempre se tuercen, ¿cuál es la mejor manera de sincronizar relojes entre máquinas con precisión y precisión de milisegundos? Por lo que he encontrado, NTP y PTP son posibles soluciones, ¡pero me preguntaba si alguien tenía alguna experiencia en stackoverflow.com!
Entiendo que NTP es la elección popular, pero me pregunto si alguien ha tenido alguna experiencia con PTP (IEEE1588)
Como ya ha sugerido, NTP es la solución estándar de la industria para este problema, pero requiere conectividad a Internet o una fuente de estrato 0 (un reloj de hardware preciso, como un receptor de GPS con una interfaz de computadora).
Si está usando conectividad a Internet, considere usar el grupo NTP .
He investigado (leído en Google) sobre este tema últimamente y esto es lo que he aprendido hasta ahora:
Para obtener una precisión de milisegundos (o mejor), necesita soporte de hardware. Marca de tiempo de fuente GPS o hardware (y una buena fuente de tiempo) en PTP.
El sellado de tiempo de hardware en PTP se realiza con NIC compatible: Intel los tiene.
Sin hardware, la precisión entre NTP y PTP es similar.
(No se utilizó PTP antes) He leído que NTP es más fácil de configurar.
Mi experiencia limitada con la fuente de tiempo del GPS (en serie) varía. Funciona muy bien si puede hacer que funcione, pero hay un dispositivo que tenemos en un centro de datos que nunca logré que funcione ...
Si sus máquinas están instaladas, pregúntele a su DC qué pueden proporcionar, para que no tenga que decidir. :RE
HTH
Las soluciones basadas en NTP o SNTP pueden funcionar muy bien, pero depende en gran medida de qué tan bien se implemente el cliente.
Ciertamente, la respuesta a esta pregunta no es utilizar el servicio horario predeterminado de Windows si desea una precisión de segundo segundo. Es notoriamente deficiente mantener una base de tiempo estable en una máquina y normalmente excederá las correcciones y es casi inestable, especialmente cuando las máquinas tienen bases de tiempo bastante imprecisas para empezar, lo cual es común. Supongamos que el estándar incorporado en las herramientas de Windows puede mantener las precisiones de manera confiable a solo unos segundos entre todas las máquinas y normalmente veo oscilaciones de hasta 30 segundos entre las máquinas, incluso si modifica la configuración del registro.
La herramienta freeware Achron es una solución bastante buena para entrar en el tipo de rango de más / menos 500 milisegundos. Hacerlo mejor requerirá una solución más industrial, como algo de Greyware
NTP es definitivamente el camino a seguir. Básicamente, olvídalo, siempre y cuando lo dejes salir del cortafuegos en tu maestro local (que generalmente es el cortafuegos o enrutador).
No puede sincronizar máquinas al nivel de milisegundos mediante el intercambio de datos, porque cualquier intercambio de datos en sí mismo tarda al menos milisegundos en ocurrir y, por lo tanto, arruina su resultado. Incluso los protocolos que intentan medir primero cuánto tarda una transferencia de datos y luego enviar la información de tiempo (teniendo en cuenta el retraso medido) son un poco mejores que el promedio, pero aún no son buenos ya que no todas las transferencias de datos tardan el mismo tiempo ( solo haga ping constantemente a un servidor en Internet y vea cómo cada ping tiene un retraso diferente).
La única forma de sincronizar realmente dos computadoras en el rango de milisegundos es haciendo que ambos obtengan el tiempo de la misma fuente a través de un método de transferencia que no tiene un retardo desconocido o en constante cambio. Por ejemplo, si ambos reciben una señal de satélite, eso transmite la hora. La señal siempre tendrá un retraso constante (de satélite a tierra) y ambos la reciben casi en el mismo nanosegundo.
Alemania, por ejemplo, tiene un tiempo controlado por radio. En algún lugar del país hay un reloj atómico (que tiene el tiempo correcto en nanosegundos durante cientos de años) y algunos emisores transmiten permanentemente la hora actual en una frecuencia determinada en todo el país. Existen relojes de alarma e incluso relojes de pulsera que pueden recibir este tiempo y sincronizarse permanentemente con él (bueno, no de manera permanente, la mayoría de los modelos lo hacen solo una vez cada 24 horas para ahorrar batería). Dichos dispositivos receptores también existen para computadoras y vienen con software que puede sincronizar permanentemente el reloj de su computadora con esa señal horaria.
Hasta donde sé, el GPS también envía información de tiempo (o eso, o el tiempo se puede calcular de alguna manera a partir de la información del GPS, no estoy muy familiarizado con el protocolo GPS). Por lo tanto, conectar un receptor GPS a ambas computadoras probablemente también las sincronice al milisegundo. Sin embargo, si la sincronización se realiza a través de Internet, no espere una mejor sincronización que una computadora con un tiempo máximo de 20 milisegundos.
Para actualizar sobre el comentarista,
NTP no es tan preciso como la gente le encanta reclamar aquí:
El NTP generalmente puede mantener el tiempo dentro de decenas de milisegundos a través de Internet público, y puede alcanzar una precisión superior a un milisegundo en redes de área local en condiciones ideales.
Fuente: Wikipedia
Prefiero mantenerlos todos sincronizados sin ninguna red involucrada y mantenerlos sincronizados con la hora GMT oficial y aquí el GPS es probablemente la única forma de obtener resultados realmente precisos en todas las máquinas (y eso no solo hasta el ms, en realidad hasta microsegundos).
Simplemente ejecute el daemon NTP estándar.
Tiene opciones para recibir información de varios dispositivos GPS y hablar con los servidores de red.
Editar: Me refería a http://www.ntp.org/ , no al que viene con Windows.
No tengo ninguna sugerencia sobre qué clientes NTP son mejores para Windows, pero para las máquinas Unix no hay una razón real para no ejecutar NTP.
Tenga en cuenta también que el reloj del sistema de hardware (es decir, el incorrecto) solo se lee cuando la máquina arranca; si está hablando de máquinas servidor, no perderá tiempo debido a ellas.
Uso NTP en toda la red de mi empresa y funciona bastante bien. La clave es tener un servidor autorizado en una red local y hacer que todas las máquinas de la red se sincronicen con él. Lo mejor es tener un reloj de radio instalado en ese servidor. NTP es excelente porque no solo corrige el reloj de vez en cuando, sino que también calcula y corrige la frecuencia del reloj, lo que lo hace más preciso.
Una vez que tuve la configuración de NTP en la red, abrí como cinco sesiones de VNC a un servidor diferente y me quedé mirando el reloj. Los relojes en todos los servidores estaban sincronizados con milisegundos, y esto es justo después de la instalación. Se vuelve más preciso a medida que se ejecuta.