The selfhosting community is an interesting and useful part of the Internet dedicated to removing one’s own services and data from the cloud and hosting it on their own servers, often on hardware that can be physically touched. With that kind of network usage, it’s not uncommon for people to build their own routers, firewalls, and other network support systems from the ground up. And, if you go deep enough, maybe even a home lab dedicated to testing and improving the network’s various layers. This piece of software helps simulate network latency to more accurately assess quality of service, performance, and the optimization of one one’s own networks.
The tool, called Speedbump, allows a network administer to quickly build a test network where characteristics of the network such as base latency and wave shape and size can be set up. From there, a TCP proxy sends the network traffic through the virtual network, adding in a set amount of delay to anything traveling on the network. It can be installed (or built from source) on an existing installation or used from within a Docker terminal, so there are plenty of options depending on preference. It’s also available as a library for any programs written in Go.
While this certainly has applications for home labs where self-hosting services is done at a high level, this could have professional applications as well. For troubleshooting simpler network issues we’d always recommend this tool which allows a more comprehensive network test than the standard “ping” command, and if you haven’t heard of selfhosting before it’s probably time to read this primer on it and build a hobby web server from scratch.
The pingms tool’s website and repo have both been scrubbed.
latency won
Looks like its been carried forward by someone else as msmbs http://www.msmbps.com/
Another speed/performance tool worth having in your toolbox is https://iperf.fr/. It’s also able to run on bare metal or on an RTOS (ex. https://docs.zephyrproject.org/latest/connectivity/networking/api/zperf.html.)
I sure wish all website designers, and especially the big boys (Google, Microsoft) would test their cloud-hosted products with tools like this. Latency kills productivity when using things like Google docs, and web pages that do many fetches are like watching paint dry. It’s distracting when you’re always second-guessing whether that mouseclick or keystroke registered. It doesn’t have to be this way.
The Linux kernel provides netem (https://man7.org/linux/man-pages/man8/tc-netem.8.html) which can provide latency emulation at the link layer (so more than just TCP like speedbump). It can also simulate other link impairments such as limits on data rate, packet loss, corruption, duplication, and reordering.