Speedbump - un proxy TCP prenant en charge une latence variable
(github.com/kffl)- Un proxy TCP écrit en Go, capable de simuler diverses latences réseau variables
Exemples d’utilisation de base
- Créer une nouvelle instance écoutant sur le port 2000 pour proxifier le trafic TCP vers localhost:80, avec une latence de base de 100 ms, une amplitude sinusoïdale de 100 ms (latence supplémentaire maximale de 200 ms, minimale de 0) et une période d’1 minute :
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80 - Ou lors de l’exécution de speedbump avec l’image de conteneur kffl/speedbump :
docker run --net=host kffl/speedbump:latest --latency=100ms --sine-amplitude=100ms \ --sine-period=1m --port=2000 localhost:80 - Créer une nouvelle instance avec une latence de base de 300 ms, et une latence en dent de scie d’amplitude 200 ms et de période 2 minutes, comme montré dans le graphique ci-dessous :
speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80 - Il est possible d’exécuter simultanément l’addition de plusieurs latences.
- Speedbump peut être utilisé comme bibliothèque Go via le package
lib.
Avis de GN⁺ :
- Speedbump est un outil utile pour simuler la latence réseau, et peut aider à tester et optimiser les performances des applications basées sur le réseau.
- Écrit en Go, il est familier aux développeurs Go et offre des fonctionnalités permettant de simuler facilement divers schémas de latence.
- C’est un projet open source sous licence Apache 2.0, avec un potentiel d’amélioration continue grâce aux contributions de la communauté.
1 commentaires
Avis sur Hacker News
tcpour ajouter de la latence à une interface donnée, et cela fonctionne aussi très bien dans des conteneurs Docker. Il est possible qu’elle soit déjà installée sur de nombreux systèmes.tc qdisc add dev eth0 root netem delay 100ms