¿Existe algún método para simular alta latencia?

Respuestas:

14

Puedes hacer esto usando netem. Desde su página de inicio :

Emulando retrasos en la red de área amplia

Este es el ejemplo más simple, solo agrega una cantidad fija de retraso a todos los paquetes que salen de la Ethernet local.

# tc qdisc add dev eth0 root netem delay 100ms

Ahora, una simple prueba de ping para alojar en la red local debería mostrar un aumento de 100 milisegundos. El retraso está limitado por la resolución del reloj del núcleo (Hz). En la mayoría de los sistemas 2.4, el reloj del sistema funciona a 100 Hz, lo que permite retrasos en incrementos de 10 ms. En 2.6, el valor es un parámetro de configuración de 1000 a 100 Hz.

Los ejemplos posteriores solo cambian los parámetros sin volver a cargar qdisc

Las redes de área amplia reales muestran variabilidad, por lo que es posible agregar una variación aleatoria.

# tc qdisc change dev eth0 root netem delay 100ms 10ms

Esto hace que el retraso agregado sea de 100 ± 10 ms. La variación del retardo de la red no es puramente aleatoria, por lo que para emular también existe un valor de correlación.

# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%

Esto hace que la demora agregada sea de 100 ± 10 ms con el siguiente elemento aleatorio dependiendo del 25% del último. Esto no es una correlación estadística verdadera, sino una aproximación.

Distribución diferida

Típicamente, el retraso en una red no es uniforme. Es más común usar algo parecido a una distribución normal para describir la variación en el retraso. La disciplina netem puede tomar una tabla para especificar una distribución no uniforme.

# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal

Las tablas reales (normal, pareto, paretonormal) se generan como parte de la compilación iproute2 y se colocan en / usr / lib / tc; Por lo tanto, es posible con cierto esfuerzo hacer su propia distribución basada en datos experimentales.

Chris Down
fuente
3
Genial, e tcincluso está presente en los sistemas SLES y RHEL actuales.
Nils