Wireshark: ¿qué pasó?

Wireshark: ¿qué pasó?

Este problema de Wireshark me ha estado volviendo loco durante unas horas. ¿Que esta pasando aqui?

192.168.2.100 es un servidor Apache que sirve un archivo estático.

192.168.2.196 es un cliente integrado que descarga el archivo.

Parece que 192.168.2.196 está descargando felizmente el archivo y luego comienza a ignorar 192.168.2.100 y, por lo tanto, la conexión se detiene y finalmente finaliza.

¿Es esto correcto y por qué el cliente podría estar haciendo esto?

Imagen de Wireshark: haga clic aquí

Respuesta1

Los síntomas indican claramente que existe un cuello de botella en el procesamiento de recepción del lado del cliente.

El seguimiento muestra que el búfer de recepción en la pila de red del cliente (aparentemente LwIP) se está llenando. Específicamente, el tamaño de la ventana en los acuses de recibo del cliente se está reduciendo a medida que se reciben una serie de paquetes del servidor, hasta que el búfer de recepción se llena por completo y aparece un " ZeroWindow" se envía del cliente al servidor para solicitar que deje de enviar datos.

Por lo general, esto indica que la aplicación que lee desde el socket no está agotando el búfer de recepción lo suficientemente rápido como para permitir que la pila de red se mantenga al día con los paquetes que llegan.

Las frecuentes retransmisiones desde el servidor, combinadas con los ACK retrasados ​​del cliente, sugieren que las condiciones en el cliente también están impactando negativamente el procesamiento de paquetes de recepción de nivel inferior en la pila de red.

Mencionaste que el host del cliente era un dispositivo integrado y también comentaste que tu aplicación parece estar bloqueada en lwip_read(). La espera sugiere que otro recurso de IO o CPU o un cuello de botella en la programación podría estar impidiendo que su hilo de lectura obtenga suficiente tiempo de CPU para mantenerse al día con la transferencia de archivos. Sin embargo, los ACK retrasados ​​sugieren que puede haber un problema más amplio. Sin saber más sobre el dispositivo integrado, es difícil solucionar más problemas.

LwIP también tiene restricciones especiales relacionadas con el servicio de llamadas de red que podrían aplicarse a su implementación; consulteesta página de trampas de LwIP.

Espero que esta información sea útil para resolver su problema.

información relacionada