Simule un gran retraso de red y una ráfaga de paquetes después

Simule un gran retraso de red y una ráfaga de paquetes después

Estoy probando el códec Opus y la pila VoIP que lo utiliza. Tengo una utilidad de prueba sintética que envía internamente tráfico Opus RTP entre dos puertos en la interfaz loopback + esto escribe el audio resultante en archivos para permitir un análisis más detallado.

Usando la utilidad 'tc' de Linux puedo simular varios problemas de red.

Sin embargo, me limité a simular cosas como "retraso repentino de la red". Disculpa mi pobre ingles !

Esto debería parecer como si la red se detuviera durante 1 segundo y después de que todos los paquetes retrasados ​​se enviaran lo antes posible a sus objetivos.

¿Es posible implementar con la utilidad 'tc'?

Intenté ejecutar el comando 'tc' para retrasar 1000 ms durante el proceso de prueba sintética; pero no me da el efecto deseado.

¿Alguien puede darme un consejo?

Gracias :)

Respuesta1

Esto debería parecer como si la red se detuviera durante 1 segundo y después de que todos los paquetes retrasados ​​se enviaran lo antes posible a sus objetivos.

Eso es realmente posible... Deman tc:

netem
Network Emulator es una mejora de las funciones de control de tráfico de Linux que permite agregar retrasos, pérdida de paquetes, duplicación y más características a los paquetes que salen de una interfaz de red seleccionada.

... y deman tc-netem:

ranura
diferir la entrega de paquetes acumulados dentro de una ranura. Cada ranura disponible se puede configurar con un retraso mínimo para adquirir y un retraso máximo opcional.

... Entonces, puedes hacer algo como esto:

sudo tc qdisc add dev interface root netem slot 1000ms 1000ms

... ¿dónde interfaceestá el nombre de la interfaz de red deseada como se muestra, por ejemplo, en la salida de ip a.

Eso retendrá todos los paquetes transmitidos en la interfaz especificada 1000msy luego los liberará todos a la vez (en una explosión).

Avisoeso, delaypor otro lado, agregará un retraso de 1000msa cada paquete transmitido en la interfaz especificada.

información relacionada