Cómo medir y minimizar la pérdida de paquetes UDP

Cómo medir y minimizar la pérdida de paquetes UDP

A veces me encuentro con la voz entrecortada cuando llamo a través de una aplicación VOIP. Dado que todas las aplicaciones VOIP utilizan UDP para la transmisión de datos, ¿existe alguna herramienta en Linux para medir la cantidad de pérdida de paquetes y medir el rendimiento de la red?

¿Cuál podría ser el motivo general de la pérdida de paquetes UDP y qué medidas debo tomar cuando hay una gran pérdida de paquetes?

Respuesta1

Uno de los principales culpables de la pérdida de UDP, especialmente en las LAN, es el desbordamiento del búfer. Esto puede suceder en el conmutador o en los servidores de envío o recepción. Un mecanismo que puede utilizar en Linux para verificar la pérdida de paquetes es ejecutar el siguiente comando:

watch -n 1 -d 'cat /proc/net/udp'

Esto mostrará un resultado similar al siguiente, donde la última columna es la cantidad de paquetes descartados:

Every 1.0s: cat /proc/net/udp                                                                                                                                 Mon Sep 28 15:01:00 2015

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops
11362: 00000000:3443 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 18224 2 ffff880808040000 0
19543: 00000000:D438 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 3809742 2 ffff8808060c8400 0
30819: 00000000:0044 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 12644 2 ffff88100f2b0400 0

Luego puedes probar varios trucos diferentes para intentar solucionarlos (nuevamente usando Linux como ejemplo):

  • asegúrese de que la aplicación que consume los datos tenga suficiente CPU disponible,
  • asegúrese de que los subprocesos que realizan las E/S estén lo más cerca posible del dispositivo de red
  • asegúrese de que los tamaños del búfer udp sean lo suficientemente grandes para acomodar los datos (nuevamente, puede observar la salida del comando watch para ver si las columnas tx_queueo rx_queuecrecen), y luego aumente los búferes udp usando sudo sysctl -w 'net/ipv4/udp_mem=xxx yyy zzzz', o sysctl -w 'net/core/rmem_default=????', o sysctl -w 'net/core/wmem_default=????'(tenga en cuenta que xxx ,yyyy,zzz están definidosaquí

En una autopromoción descarada, he creado un producto llamadoAdministrador de subprocesos de Pontus Visionque continuamente sintoniza esto automáticamente.

Respuesta2

¿Cuál podría ser la razón general de la pérdida de paquetes UDP?

Congestión (demasiados paquetes) con falta de QOS (paquetes aleatorios descartados, VoIP no manejado con prioridad) y/o equipo defectuoso (calidad de línea, etc.). Para lo primero, obtenga equipo con capacidad QOS, para lo segundo verifique las líneas (hardware, interruptores, lo que sea) por ser malo.

Para una conexión a Internet, necesita enrutadores QOS en ambos extremos, los cuales no tendrá (a menos que su proveedor ofrezca VoIP, entonces probablemente tenga la infraestructura disponible). Dicho esto, dado que su canal descendente suele ser mucho más grande que el canal ascendente, un enrutador local que priorice sólo el canal descendente normalmente es "suficientemente bueno".

Sin embargo, la mala calidad de la línea es un problema difícil de manejar.

Respuesta3

Si está sufriendo una pérdida de paquetes UDP, es casi seguro que también esté sufriendo una pérdida de paquetes TCP. La diferencia es que TCP retransmitirá los paquetes perdidos y UDP no. Las aplicaciones VoIP no pueden retransmitir porque si lo hicieran la información ya no sería buena.

Voy a asumir que sus llamadas VoIP se realizan a través de Internet. QoS puede ser necesario, pero no servirá de nada si su conexión a Internet no funciona correctamente. Utilizar estaprueba de pérdida de paquetespara comprobar que funciona. Le indicará dónde se está perdiendo el paquete, es decir, en el ISP o en su sitio local.

Si encuentra problemas en su sitio local, entonces es hora de revisar su módem de cable o DSL para ver si tiene una buena relación señal-ruido, potencia de salida y atenuación (DSL).

información relacionada