Hacker News new | past | comments | ask | show | jobs | submit login
Clumsy, an open-source utility for simulating broken networks on Windows (jagt.github.io)
93 points by egeozcan on Nov 13, 2014 | hide | past | web | favorite | 19 comments

Reliable network interaction on mobile is enormously difficult if you are trying to deploy code globally: each MNO mangles your packets in its own special way. Good to see tools like this, wish there were more, but the other half of the picture is empirical data on how particular pathological networks behave (I don't mean "EDGE", I mean "EDGE in poor coverage on MTN in Afghanistan"). Haven't found any real information, even in general terms, along these lines. Pointers welcome.

This area would be a great place for someone like Internet.org to add value, and they've announced some related work, but nothing seems real yet.

Awesome. They should have presets to simulate Edge/3G connections with varying speeds, package losses, drops etc.

If you're looking for this for a webapp, the DevTools in Chrome now have presets for Edge/3g/4G (and offline) that tackle both latency and throughput. The added benefit is they only affect that one tab, so the others are still running at max speed.

Screenshot: http://i.imgur.com/n0aFXo6.png

That just slows down the connection. The point of Clumsy is to allow you to add lag, have packets arrive out of order, etc.

There's also NetBalancer.com and NetLimiter.com with some similar functionality, though not open source.

Nice, I have found some hard to reproduce bugs using tools like this. On Mac OS X and iOS, there's the Network Link Conditioner which is built into iOS and part of the developer tools package on MAC OS X I believe (installed as a Preference pane).

People mention netem[1] on Linux, looks like it adds the same repertoire of network degradation, through the command line.

[1]: http://www.linuxfoundation.org/collaborate/workgroups/networ...

Yep, although it is quite a bit simpler: NLC does bandwidth, delay and drop (which clumsy calls throttle, lag and drop), it does not reorder, duplicate or tamper with packets.

It also applies to all network communications, it can't be applied to specific links or connections. On the other hand it's very, very easy to use.

OS X has DummyNet installed (belieie this is what NLC uses)

You can configure DummyNet to shape traffic for specific IPs/ MAC addresses etc. - ifpw is you friend.

Nice, this tool will help software engineers to make their software more robust. Far too often apps are only tested under ideal conditions and then fail when only a bad network connection, for example bad mobile reception, is available.

In particular, a lot of applications will work fine if there is no network access, or if there is great network access, but will crash and burn when, for example, it can access url A but not url B. (the network equivalent of "if not exists(file): fallback() else: file.open()")

Weird things also happen when a request is fired but NOTHING happens - no failure, no response. It's what happens when you connect to one of those annoying paid airport wifi APs (and don't pay). No failure, no response, just a black hole for packets.

Worked great on Win8.1 64-bit. This will be very useful. Thank you!

>64bit Windows users are strongly recommanded to download the 64bit build.

typo - s/recommanded/recommended/

A toggle for "one or more people are running torrents" would be nice.

It seems like consumer grade routers are mostly to blame for "torrents == connection dead".

It would be fairly simple to simulate a saturated upstream though.

Not sure why this is needed, the network stack is usually broken on Windows out of the box.

good pranking material

My first thought was, "great for testing videoconferencing software", but pranks are a good second ;)

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact