3 ms·
From my experience working with netem and tc, it seemed like a great tool for testing purposes but I could not find any good documentations on it. As a result,
by pwnna 9y ago
From my experience working with netem and tc, it seemed like a great tool for testing purposes but I could not find any good documentations on it. As a result, I never really fully understood the relationship between qdisc, netem, the filter chains, and so on. At the time I read [1] (and chapters after it) but I wasn't able to comprehend it as I think I just lack the in depth networking knowledge needed.
Does anyone know of any good resources to learn this stuff more systematically?
Now that said (and without being too self-promotional), I did manage to make an OpenWRT package[2] that allows WiFi clients to select different speeds/latencies/packet loss settings to emulate different connections (3G, bad/lossy connections, etc). This was particularly good for testing web apps on devices that don't have the ability to emulate networks and it provides a simpler way to do it than the official way by Apple/Google, imo.
[1]: http://lartc.org/howto/lartc.qdisc.terminology.html http://lartc.org/howto/lartc.qdisc.terminology.html
[2]: https://github.com/shuhaowu/trafficcop https://github.com/shuhaowu/trafficcop
- kevhito 9y ago> ... but I could not find any good documentations on it. Completely agree. I wanted to set up some simple traffic shaping on gcp and aws nodes my students will be using for some networking projects. I've used both netem and tc in the past, years ago, but I found the documentation still seems just as abysmal. The netem documentation in particular is impenetrable. It seems to sit at just the anti-sweet spot between being "low level", explaining in detail how the implementation actually accomplishes things, and "high level", explaining abstractions and concepts of how one might use the tool. The user is left with a mishmash of both, with no way to see how all the various extremely picky implementation details fit together into any kind of coherent usable system. In the end, I am left with the feeling that the code is probably a collection of hacks and spaghetti with no clear vision or goal of how anything works, and the documentation is just a reflection of that.