Pregunta

Uno de nuestros clientes experimenta un problema con nuestra aplicación de streaming (Win32). Parece que los paquetes UDP (RTP) que deben ser enviadas por la aplicación con algún intervalo constante (por ejemplo, 20 ms) son en realidad enviado con un deltas enormemente variables (15ms 25ms - dicen - 10 ms - 30 ms). Este es el único cliente que experimenta el problema por lo que la tarjeta de red o de otra infraestructura relacionada con la red OS es nuestra primordial sospechoso.

La pregunta es qué tipo de configuración de red puede introducir ese problema (AV?, Calidad de servicio?)

Y cómo puedo medir el tiempo entre realidad llamando a la función "Enviar" y el momento en que el paquete fue efectivamente entregada a la red? ¿Hay alguna herramienta disponible para el mismo.

¿Fue útil?

Solución 3

Los chicos el problema era en realidad las funciones de temporización de las ventanas de hecho resultar que el sueño () puede tener una resolución de más de 15 ms. a menos que se establezca programtically a uno de 1 ms. Así que no guardan relación lo que tan nunca a NIC.

Otros consejos

Sospecho cualquier problema de red puede causar este problema.

No hay concepto de QoS (calidad de servicio) con UDP básica (incluso hasta el punto de que se puede perder paquetes, tienen duplicados, etc.). La tarjeta de red tiene que hacer cola los paquetes de escribir en la red, y por lo tanto no se puede garantizar entregas, ya que está haciendo cola los paquetes de diferentes aplicaciones.

Routers pueden priorizar, así, y que afectarán a la regularidad de estos paquetes.

EDIT: Usted ha señalado la tarjeta de red local, así la re anteriormente. enrutadores no se aplica en esta situación.

En resumen no hay razón alguna para esperar que lo anterior es que no sea aceptable nada.

Si usted está diciendo que usted está midiendo esto directamente en la tarjeta de red del ordenador en realidad la generación de los paquetes (es decir, por lo que puede descontar todas las influencias de la red), entonces una posible causa es la carga en el propio ordenador.

Si hay muchas aplicaciones que se ejecutan en el equipo, especialmente los interactivos y los que tienen un sesgo fuerte interacción con el usuario (que tienden a tener prioridad de la mayoría de los programadores), entonces usted puede encontrar que su aplicación la creación de los mensajes es simplemente encontrar difícil para competir por el tiempo que necesita.

Incluso si todos los equipos de los clientes tienen cargado el mismo software, lo que las aplicaciones que se ejecutan realmente y lo que están haciendo con ellos pueden tener una influencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top