9 ms·
Comcast: Simulating shitty network connections so you can build better systems
- deleted 12y ago[deleted]
- knd775 12y agoUpvote for the name.
- ejdyksen 12y agoIf you're on Mac OS, you can also install the Network Link Conditioner from the Apple dev tools, which is a prefpane that serves the same purpose: http://nshipster.com/network-link-conditioner/ http://nshipster.com/network-link-conditioner/
- athenot 12y agoAnd on the command line, you can use the dummynet(4) command (can be useful to automate testing under various network conditions).
- cordite 12y agoWould something like this be DMCA'd or taken down because of the name? (Not that it is violating copyright by its contents)
- bobmagoo 12y agoI had that thought as well. From poking around various IP law sites, DMCA is purely for copyright infringement, and can possibly open you up to more liability if you try to use it for trademark claims (what this would be), see http://www.lexology.com/library/detail.aspx?g=13f9814f-b56e-4314-8e1b-95215ce60a6d http://www.lexology.com/library/detail.aspx?g=13f9814f-b56e-... for an example. If Comcast wanted to take this down, it would be through a trademark infringement claim. (IANAL, etc, etc)
- Florin_Andrei 12y agoSo... the project is infringing on Comcast's ownership of shitty networks?
- dublinben 12y agoThe DMCA doesn't apply to trademarks. This probably wouldn't violate Comcast's trademark anyway, as they operate in different markets.
- MatthewWilkes 12y agoNetworking and infuriating call centres?
- deleted 12y ago[deleted]
- ot 12y agoI wonder if the author can invoke the freedom of satire.
- TheCraiggers 12y agoTechnically, no. However, it wouldn't be the first (or last) time that a DMCA takedown was issued for the wrong reasons. I can't remember specifics, but I seem to recall DMCAs issued for name conflicts before.
- troymc 12y agoI was confused if this was something from the real Comcast, so it seems to be a clear case of trademark infringement (but it's not my call, and I may be wrong). If GitHub agrees, then it would be a violation of their Terms of Service [1], section A.8: "You may not use the Service for any illegal or unauthorized purpose. You must not, in the use of the Service, violate any laws in your jurisdiction (including but not limited to copyright or trademark laws)." [1] https://help.github.com/articles/github-terms-of-service/ https://help.github.com/articles/github-terms-of-service/
- deleted 12y ago[deleted]
- kozhevnikov 12y agoThere is also clumsy with what possibly is the best demo gif ever made. https://jagt.github.io/clumsy/ https://jagt.github.io/clumsy/
- digi_owl 12y agoTamper mode was downright hilarious.
- 14113 12y agoRegardless of how good the tool is - that was an excellent demonstration clip! Within ~30 seconds I knew exactly what the tool did, why it was cool, and what I might want to use it for. Startup landing pages could learn a lot from that single gif.
- azdle 12y agoI'm curious if anyone knows of tools like this that are more deterministic? I'm in the process of writing a library at work that is basically implementing the CoAP protocol from the ground up and having something that I can script to force the same packets to be lost or delayed is something that I would find very useful for testing. I've been using Apple's network link conditioner, but when I do discover a problem, it can take a long time for the same scenario to happen again which makes testing the fix quite difficult. I'm currently trying to think through how I'd write this to make the filters easy to setup [0], but if anyone knows of something that already exists, please let me know. [0] https://github.com/Azdle/dolos https://github.com/Azdle/dolos
- blueskin_ 12y agoOn linux, tc can do similar things, such as dropping a percentage of packets or adding random delays. http://linux.die.net/man/8/tc http://linux.die.net/man/8/tc
- lucb1e 12y agoAs said in the readme: > you can use tc which supports some additional options. $ tc qdisc add dev eth0 root netem delay 50ms 20ms distribution normal $ tc qdisc change dev eth0 root netem reorder 0.02 duplicate 0.05 corrupt 0.01 > To reset: $ tc qdisc del dev eth0 root netem
- Florin_Andrei 12y agoYeah, I used to do stuff like this with tc directly back in the day, but I could never remember the options. This wrapper seems to make it a bit more obvious what goes where.
- scott_karana 12y agoFrom TFA :) > On Linux, we use iptables and tc. Comcast is merely a thin wrapper around these controls.
- poor_too_ 12y agoyep, https://github.com/tylertreat/Comcast/blob/master/throttler/throttler.go#L84 https://github.com/tylertreat/Comcast/blob/master/throttler/...
- api 12y agoNice. It'd be neat to include options to simulate other pathological conditions often encountered in the field like: - Multiple layers of NAT - overlapping un-synchronized timeouts are one thing ... but the REAL fun comes in when intermediate layers have the same IP ranges as IPs you are trying to reach on the "outside" of the NAT sandwich. All kinds of "interesting" things can happen, like the "software laser": http://catb.org/jargon/html/S/software-laser.html http://catb.org/jargon/html/S/software-laser.html - Stateful NATs/firewalls with bizarrely short connection / UDP association timeouts or that randomly forget connection state - Shitty NATs/routers that go into bizarre failure modes when there are too many open connections, like forgetting early ones because they remember connections via a small ring buffer - People who block all ICMP "because security." - NAT + short DHCP leases = musical external IP addresses - Small MTUs (<1500) like those imposed by PPPoE and other nasty encapsulation protocols, sometimes without ICMP errors for big packets because some jackhole blocked ICMP "because security." All these things are common in the field. WHYWHYWHYWHYWHY
- Spooky23 12y agoMy favorite enterprise network pathologies: - Randomly block specific ports "because security" - Limit RPC port ranges to some random small number. - Strange network optimizations. Example: Optimize TCP Window Size to support NT4 clients on 56k frame relay circuits. - Very Slow DNS response - Optimize core switching rules to fully utilize switch CPU. Avoid configurations that take place in an asic. - Long DHCP Leases + Undersized DHCP scopes.
- api 12y agoI also forgot TCP through TCP tunnels, which causes strange timing and flow control behaviors due to never actually dropping packets on congestion and double-ACKing.
- wallflower 12y agoIt makes me wonder at how Skype manages to tunnel though almost anything.
- 12y ago
- chatmasta 12y agoPeople talk about "fuck you money," meaning the amount of money you need to make before you can never work again. Personally, my "fuck you money" isn't money per se, but the fall of Comcast. When I build enough value in the world to displace Comcast, I will retire. We need to see more work in the areas of mesh networking, layer-3 routing, and consumer networking in general. This tool is a good step. Personally I'm hacking on some openwrt routers right now -- I recommend everyone try it. The documentation is dense, with a friendly community writing it.
- Fuxy 12y agoYou know your company sucks when its name has become synonymous with high latency, dropped packets and a all round shitty network. Unfortunately i suspect they will just send a trademark claim to Github to get it removed.
- paulrosenzweig 12y agoThis seems like satire to me. Could that save it like "Dumb Starbucks"? https://en.wikipedia.org/wiki/Dumb_Starbucks https://en.wikipedia.org/wiki/Dumb_Starbucks
- todd3834 12y agoI don't think Dumb Starbucks was saved. They just didn't ride it out long enough to find out. Who knows what would have really happened though
- slg 12y agoThe problem is that fair use and satire are defenses that must be argued. They don't automatically stop you from being sued. It can results in a lot of upfront costs and hoops to jump through before you are actually granted your fair use exception. You have to be pretty committed to your joke to actually fight something like this to the end. Although if I were Comcast, I would ignore this entirely. I wouldn't want to risk the Streisand Effect bringing attention to this type of thing.
- yincrash 12y agoWas this made in response for more real version of https://theonion.github.io/comcastifyjs/ https://theonion.github.io/comcastifyjs/ ?
- nwilkens 12y agoSmartOS has this nice utility - ipdadm which does something similar. ipdadm - administer the Internet packet disturber https://smartos.org/man/ipdadm https://smartos.org/man/ipdadm
- spiritplumber 12y agoI wonder if this can be used to simulate speed-of-light delay for a Mars mission.
- exabrial 12y agoIn the words of the great poet Macklemore: "This is fucking awesome"
- bas 12y agoThis is a beautifully-named project.
- xtrumanx 12y agoGoogle Chrome's device mode has a subset of this functionality where you can make Chrome throttle the connection simulating different conditions (GPRS, DSL, offline, etc.). Access device mode by clicking the smartphone icon on the top left of the Developer Tools (F12) right next to the Elements tab.
- bduerst 12y agoIt's very useful. I discovered this the other day when testing some client side scripts. I was able to simulate a 3G mobile connection and determine which parts were causing the intolerable load times.
- SEJeff 12y agoYou really shouldn't do something like this without at the very least mentioning Kyle Kingsbery and the Jepesen test suite he wrote to validate how distributed datastores actually follow CAP or not. For any devops / sysadmin / systems engineer: I highly suggest reading this if not only to understand failure conditions better: https://aphyr.com/tags/jepsen https://aphyr.com/tags/jepsen The entire "Call Me Maybe" blog series is because that is Carly Rae Jepsen's stupid pop song, for which he named his test suite after. That and Kyle's posts are absolutely hilarious to read. Seriously, read them.
- mpu 12y agoWritten in Go for nothing, you might as well hack a cheap shell script.
- deleted 12y ago[deleted]
- scott_karana 12y agoWho cares? It also could have been written in Perl, csh, C, APL, Pascal, or Fortran, and it would work exactly the same. Can we stop shitting on cool things just because the technology being used is "trendy", or you're sick of hearing about it?
- nexneo 12y ago`--device=eth0 --latency=250 --bandwidth=1000 --packet-loss=0.1` This could have been named `--i-am-in-india`
- GrinningFool 12y agoNice, and the detailed README is appreciated. I do have to wonder if the name won't cause you trouble though...
- copsarebastards 12y agoI don't need to simulate this, I have actual Comcast service.
- farresito 12y agoI have a feeling that we will see an incoming DMCA soon.
- farresito 12y agoGetting downvoted. The lack of humor in Hacker News is astonishing.
- jpetersonmn 12y agoId change the name, not because of Comcast coming after you, but I guess it's just not very clever IMO. Good luck on the project though. :)
- jvehent 12y agoI don't need this, I have comcast. $ sudo ping -i 0.02 8.8.8.8 [...] 64 bytes from 8.8.8.8: icmp_seq=578 ttl=53 time=15.5 ms ^C --- 8.8.8.8 ping statistics --- 579 packets transmitted, 364 received, 37% packet loss, time 13854ms rtt min/avg/max/mdev = 15.009/19.308/50.884/6.152 ms, pipe 2
- YuriNiyazov 12y agoIt's so weird to hear so much complaining about Comcast here. My stats with that same command: --- 8.8.8.8 ping statistics --- 615 packets transmitted, 612 packets received, 0.5% packet loss round-trip min/avg/max/stddev = 21.332/35.875/95.576/11.248 ms I have never seen it be anything different.
- sarciszewski 12y ago> I have never seen it be anything different. If you parse this statement literally, it has amusing consequences.
- FireBeyond 12y agoComcast Business connection in Olympia WA: ``` --- 8.8.8.8 ping statistics --- 538 packets transmitted, 530 packets received, 1.5% packet loss round-trip min/avg/max/stddev = 13.706/27.511/101.208/11.207 ms
- mchristoff 12y agoThis is great. I would love mobile support.
- alexcasalboni 12y agoVery nice. How's this better/different than Crapify? https://www.npmjs.com/package/crapify https://www.npmjs.com/package/crapify
- mml 12y agoDid this with dummynet on FreeBSD around 1999. Made it a bridge though, so everyone on the test network could "enjoy" 28.8kbaud dialup experience! Great fun. Called it "the molasses network", which is what they should change the name to before Comcast smokes them.
- pc2g4d 12y agoPrediction: name of this project will be different within 12 months due to trademark infringement.
- dangerboysteve 12y agoThe project name is pure gold!