|
|
|
|
|
by keithwinstein
2657 days ago
|
|
Here's a plug for our mahimahi tool (available in Debian and Ubuntu with an "apt install mahimahi", and at https://github.com/ravinet/mahimahi). The intention is to have a set of easy-to-use network emulators that can be configured easily from the command line and only affect the programs run inside them. Run "mm-delay 100" to enter a container that's connected to the outside world via a TUN device with 100 ms of delay on egress, and 100 ms of delay on ingress. Any program run inside the container sees an extra 200 ms of RTT to the outside world. We also have a tool for random packet loss (mm-loss), intermittent connectivity (mm-onoff), and a pretty sophisticated emulator for bottleneck links (mm-link) that supports various queue disciplines (e.g. CoDel), variable link rates (as in a cellular link), and nice 60 fps animations of link capacity and utilization and queueing delay in both directions. These tools can be nested arbitrarily (e.g. run mm-delay 100 mm-loss uplink 0.1 firefox). They've been used in a bunch of networking research studies. They are mostly intended for emulating cellular/challenged networks, and the CPU overhead is not great, so I wouldn't trust them if you care about emulating networks with speeds more than about 1 Gbps. |
|