Tengo una aplicación que consiste en numerosos sistemas que utilizan clientes UDP en ubicaciones remotas. Todos los clientes envían paquetes UDP a una ubicación central para su procesamiento. En mi aplicación, es crítico que la ubicación central sepa a qué hora el paquete fue enviado por la ubicación remota.UDP Delay Potential
Desde una perspectiva de diseño, ¿sería "seguro" suponer que la ubicación central podría marcar el tiempo de los paquetes a medida que llegan y usarlos como el "tiempo enviado"? Dado que la aplicación usa UDP, ¿los paquetes deberían llegar inmediatamente o no llegar? La otra opción sería configurar algún tipo de sincronización de tiempo en cada ubicación remota. La desventaja de esto es que entonces tendría que asegurar continuamente que la sincronización de tiempo funciona en cada uno de los cientos de ubicaciones remotas.
Mi pregunta es si la marca de tiempo de los paquetes UDP en la ubicación central para determinar el "tiempo de envío" es una falla potencial. ¿Es posible experimentar cualquier retraso con UDP?
¿Qué precisión necesita que sea? ¿Hasta el minuto? ¿Segundo? ¿Milisegundo? –
Bajar al segundo. – Mike
No sé nada sobre la programación de la red, así que lo estoy lanzando como una opción, pero me pregunto si podría suponer que hay un retraso y compensarlo fácilmente. Algo así como un procedimiento de handshake ... así que cuando un cliente remoto se conecta a la ubicación central, recibe un pin 1000 veces y usted mantiene un Dictionary? Estoy seguro de que no es una gran solución, pero parece mucho mejor que suponer que no hay demoras. –
NickHalden