- Notifications
You must be signed in to change notification settings - Fork36
TCP proxy for simulating variable, yet predictable network latency 🌐⏳
License
kffl/speedbump
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The easiest way to install speedbump is to download pre-built binaries for your platform that are automatically attached to eachrelease underAssets. If you wish to build speedbump from source, clone this repository and rungo build
. Alternatively, you can run speedbump as a container using thekffl/speedbump image.
Spawn a new instance listening on port 2000 that proxies TCP traffic to localhost:80 with a base latency of 100ms and sine wave amplitude of 100ms (resulting in maximum added latency being 200ms and minimum being 0), period of which is 1 minute:
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80
or when running speedbump using thekffl/speedbump container image:
docker run --net=host kffl/speedbump:latest --latency=100ms --sine-amplitude=100ms \ --sine-period=1m --port=2000 localhost:80
Spawn a new instance with a base latency of 300ms and a sawtooth wave latency summand with amplitude of 200ms and period of 2 minutes (visualized by the graph below):
speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80
It is possible to run speedbump with multiple latency summands at once:
Output ofspeedbump --help
:
usage: speedbump [<flags>] <destination>TCP proxy for simulating variable network latency.Flags: --help Show context-sensitive help (also try --help-long and --help-man). --host="" IP or hostname to listen on. Speedbump will bind to all available network interfaces if unspecified. --port=8000 Port number to listen on. --buffer=64KB Size of the buffer used for TCP reads. --queue-size=1024 Size of the delay queue storing read buffers. --latency=5ms Base latency added to proxied traffic. --log-level=INFO Log level. Possible values: DEBUG, TRACE, INFO, WARN, ERROR. --sine-amplitude=0 Amplitude of the latency sine wave. --sine-period=0 Period of the latency sine wave. --saw-amplitude=0 Amplitude of the latency sawtooth wave. --saw-period=0 Period of the latency sawtooth wave. --square-amplitude=0 Amplitude of the latency square wave. --square-period=0 Period of the latency square wave. --triangle-amplitude=0 Amplitude of the latency triangle wave. --triangle-period=0 Period of the latency triangle wave. --version Show application version.Args: <destination> TCP proxy destination in host:post format.
Speedbump can be used as a Go library via itslib
package. Checklib
README for additional information.
Copyright Paweł Kuffel 2022, licensed under Apache 2.0 License.
Speedbump logo contains the Go Gopher mascot which was originally designed by Renee French (http://reneefrench.blogspot.com/) and licensed under Creative Commons 3.0 Attributions license.
About
TCP proxy for simulating variable, yet predictable network latency 🌐⏳
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.