Speedbump - proxy TCP con latencia variable
(github.com/kffl)- Un proxy TCP escrito en Go que permite simular distintas latencias de red variables
Ejemplos básicos de uso
- Crear una nueva instancia que escuche en el puerto 2000 para hacer proxy del tráfico TCP hacia localhost:80, con una latencia base de 100ms, amplitud de onda sinusoidal de 100ms (latencia adicional máxima de 200ms, mínima de 0) y un período de 1 minuto:
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80 - O bien, al ejecutar speedbump usando la imagen de contenedor kffl/speedbump:
docker run --net=host kffl/speedbump:latest --latency=100ms --sine-amplitude=100ms \ --sine-period=1m --port=2000 localhost:80 - Crear una nueva instancia con una latencia base de 300ms y una latencia en forma de diente de sierra con amplitud de 200ms y período de 2 minutos, como se muestra en el gráfico de abajo:
speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80 - Es posible ejecutar simultáneamente la suma de varias latencias.
- Speedbump puede usarse como biblioteca de Go mediante el paquete
lib.
Opinión de GN⁺:
- Speedbump es una herramienta útil para simular latencias de red y puede ayudar a probar y optimizar el rendimiento de aplicaciones basadas en red.
- Al estar escrito en Go, resulta familiar para desarrolladores de Go y ofrece funciones para simular fácilmente diversos patrones de latencia.
- Es de código abierto y se distribuye bajo la licencia Apache 2.0, por lo que podría seguir mejorando con contribuciones de la comunidad.
1 comentarios
Comentarios en Hacker News
tcpara agregar latencia a una interfaz específica, y también funciona bien en contenedores Docker. Puede que ya venga instalado en muchos sistemas.tc qdisc add dev eth0 root netem delay 100ms