12 ms·
Comcast: Simulating shitty network connections so you can build better systems
- dchest 4y ago> Here's a list of network conditions with values that you can plug into Comcast Here's an idea: take this list and embed it into the program so that you can execute it like this: comcast -use gprs
- lostdog 4y agoThe greatest part of this project is that if you ever get sued for trademark infringement, you can force their lawyers to have to explain why anyone could possibly confuse the product of Comcast Corp. with making your internet as flakey and slow as possible.
- versale 4y agoOn the other hand projects named this way are not easily googleable.
- omoikane 4y agoCurrently it's the top result for "comcast network tool", ranked above comcast's own github page. I recall at least one other project with this kind of naming sense: https://github.com/auchenberg/volkswagen https://github.com/auchenberg/volkswagen which was named after https://en.wikipedia.org/wiki/Volkswagen_emissions_scandal https://en.wikipedia.org/wiki/Volkswagen_emissions_scandal and is currently the top result for "volkswagen test library".
- daviddever23box 4y agoGrinning from ear to ear on that point...!
- encryptluks2 4y agoSimple, they already know Comcast is synonymous with flakey slow Internet and shitty customer service. But they already paid off congress and know there is nothing you can do about it.
- DonHopkins 4y agohttps://www.youtube.com/watch?v=CHgUN_95UAw https://www.youtube.com/watch?v=CHgUN_95UAw "So the next time you complain about your phone service, why don't you try using two Dixie Cups with a string? We don't care. We don't have to. We're the phone company." -Lilly Tomlin as Ernestine
- unsignedint 4y agoTo be honest, when I looked at this title, I thought Comcast made a tool and publicized the tool to simulate suboptimal network...
- Hydraulix989 4y agoThis is the type of confusion trademark law seeks to protect against.
- chaostheory 4y agoMaybe he can rename it to “comcrap”? Jokes aside it’s probably better to use a less controversial name.
- reaperducer 4y agoMaybe he can rename it to “comcrap”? Jokes aside it’s probably better to use a less controversial name. Perhaps he should rebrand it "Xfinity." That seems like a perfectly harmless name that is in no way associated with poor products and crap customer service.
- bee_rider 4y agoSince it is designed to simulate a poor network, Xfinite would be a funny name.
- juunpp 4y ago
- CawCawCaw 4y agocomcaste
- turdnagel 4y agoTo begin with, you've got a very narrow set of people who would even discover this project. Now intersect that with the people who will reliably miss context clues ("shitty network connections") to get a joke, and the set becomes even narrower.
- the_biot 4y agoNot really, they just need to point at the trademark registration. There is nothing to explain or be embarrassed about.
- sschueller 4y agoDid they trademark the use of the mark for "simulating a bad network". I don't think so.
- alisonkisk 4y agoThat's not a product category. They have registered the trademark for computer networking.
- cedilla 4y agoI don't know why this was dead - this is how it works: trademark protection extends to whole classes of productd, so called Nizza classes.
- perbu 4y agoTrademarks are supposed to be consumer protection regulation. They aren't there to protect the corporations. If I make some brown goo and call it "Pepsi" then Pepsico can sue me because I confuse their customers and not because this will cause losses for Pepsico. At least, this was the original intention. In today's more corporation-friendly world, more emphasis is being put on the corporations interests unfortunately.
- alisonkisk 4y ago
- r_hoods_ghost 4y agoCitation? Genuinely never heard this argument before.
- kodah 4y agoThere's an old paper on that networking, by design, is not reliable or efficient - which is more cogent than ever in large scale distributed systems. What Comcast would cite would likely be that, so I doubt it would reveal the quiet part said out loud about the reliability of Comcast's services. A couple citations I liked: https://queue.acm.org/detail.cfm?id=2655736 https://queue.acm.org/detail.cfm?id=2655736 https://blog.acolyer.org/2014/12/18/the-network-is-reliable/ https://blog.acolyer.org/2014/12/18/the-network-is-reliable/
- mh- 4y ago> cogent No, comcast. :) Jokes aside, that paper is very worth reading. And HN readers will recognize one of the authors as the creator of Jepsen, of distributed database testing fame.
- karmakaze 4y agoWell Canadian Tire Corp tried to claim ownership of the domain crappytire.com and lost. Looks like the domain was eventually bought out.
- DonHopkins 4y agoIf only Comcast customers had a way of simulating non-shitty network connections...
- taf2 4y agoFrom docs it looks like you can turn off the shitty network connection by executing comcast --stop
- mtgx 4y ago
- heavyset_go 4y agoSounds expensive.
- whateveracct 4y agoYou could also rebrand this program to comcast-simulator lmao
- bertil 4y agoI wish more companies cared about making their product accessible with poor connection, but also no connection at all. Google Maps is probably the most egregious example of that: you are likely to need it outside of your usual Wifi, and possibly where cellular coverage is poor. Why not offer reasonable off-line support? The Apple TV app is confusing too: they offer the option to download shows (like Netflix does) but the feature is essentially unusable.
- dmd 4y agoI’m real confused about you calling out Google Maps when it has fantastic offline support (which I use all the time).
- NavinF 4y agoHe’s probably talking about the web version. Under any other interpretation that comment makes no sense.
- samcrawford 4y agoI'm not so sure. If I load a saved map in Google Maps (e.g. someone has saved a route with markers and shared it with me), and then I go offline whilst viewing it, Google Maps on Android will show an error after a while and I'll lose the route and markers entirely. This occurs even if I've marked the area as an offline map. I guess it's just a case that they treat the saved routes in a different way. But it's really annoying for my use case (which is finding crewing points for long distance running events in the middle of nowhere with no mobile coverage).
- bertil 4y agoI was talking about Google Maps on iOS. There are countless instances where it will refuse to work without a connection; there's even a modal pop-up to scold you for not having a connection, rather than trigger a dedicated mode like other Google apps. You can't lock in a destination and have the routing work consistently until you are there. The journey will disappear at some point without a warning. You can't find it back without an active connection. Simply having the option to lock a journey and only delete it when expressly told so would be a major improvement. Sure you can download local maps. but that just saves some bandwidth. Neither Search nor Routing works offline. Without Routing, the app loses most of its uses. Not having Search wouldn't be a problem if you could pick a location on a map and ask: what's there? or even flag it––but you can't. You have to find the name otherwise and search for that, often zooming ridiculously close to get the location you are interested in to appear.
- thinkharderdev 4y agoGreat name!
- arein3 4y agoThe solution to drop random packets using iptables could be used to prank your linux using friends
- Avamander 4y agoIt's also fun against portscanners. A random split between reject and drop will cause almost all scanners to either assume packet loss or provide spammy output.
- chillax 4y agoThere's also toxiproxy - https://github.com/Shopify/toxiproxy https://github.com/Shopify/toxiproxy
- leetrout 4y agoToxiproxy is fantastic. I wish they supported a full configuration file in JSON or TOML or something but other than that it has been a lifesaver testing websockets.
- oceliker 4y agoWould it be possible to use this to target specific domains rather than IP blocks? I have been looking for a way to break my instant gratification browsing habits (twitter, reddit etc.) by introducing random delays into those websites, essentially making them barely usable, which works a lot better than blocking them outright. There are some existing browser extensions with a similar idea, but they usually only delay the initial load, so once you get through that barrier you are allowed to browse freely. I could manually do a DNS lookup and plug the IP address in, but I don't know enough about internet protocols to know whether that would work with Cloudflare etc.
- capableweb 4y agoIP/TCP (unsurprisingly) works over IPs, not domains, which is over DNS, so there are one step involved before actually making the requests (simplified obviously). With that said, you could try to limit things based on the IP range of the resolved IP of a domain. Other services the same company runs might be a casualty in this cross-fire, but maybe that's not a problem. Make this: $ comcast --device=eth0 --latency=250 --target-bw=1000 --default-bw=1000000 --packet-loss=10% --target-addr=8.8.8.8,10.0.0.0/24 --target-proto=tcp,udp,icmp Into this: $ comcast --device=eth0 --latency=250 --target-bw=1000 --default-bw=1000000 --packet-loss=10% --target-addr=$(whois $(dig +short google.com a) | grep -i cidr | cut -d ':' -f 2 | xargs) --target-proto=tcp,udp,icmp The `whois ... dig .. grep cidr` stuff gets a CIDR from the currently resolved IP address from a DNS query. So probably you want to add this as a systemd service or something, which restarts each five minutes or something (as what the dig command returns will change over time), and you probably want to add multiple domains (like the domains they use for APIs, CDNs and so on) as well.
- oceliker 4y agoJust gave it a quick test run - this works exactly as I hoped for, thank you so much!
- capableweb 4y agoI'm glad it helped you :)
- goodpoint 4y agoThis is unnecessary. You can use tc qdisc as written on the readme.
- the_biot 4y agoNot sure why you're getting downvoted, because you're right. This tool is literally a wrapper around that.
- jeroenhd 4y agoIt's a wrapper with a much less obtuse command line interface, unified across different architectures, covering iptables+tc, ipfw, and pfctl as much as it can. It's a helper tool to make the obscure qdisc syntax readable for when you want to intentionally slow down your network (rather than provide traffic shaping to make your crappy network more stable).
- jlund-molfese 4y agoThis tool provides a common interface for multiple OSes, which might be useful for someone who frequently switches between Linux and OS X or does development on a Mac but uses Linux in their pipelines.
- samatman 4y agoLove the project, likely to use it, and I wish more developers were compelled to use Southeast-Asian-island levels of latency, jitter, and bandwidth, at least once a week while writing websites. The name is choice, I almost hope you get a nasty letter so you can share it with the rest of us. Hard to search for though... Might I offer.... Concast?
- RedShift1 4y agoThere's bandwidth and latency simulator in the Chrome devtools, no extra tools needed.
- kyrra 4y agoThis tool is at the socket level, and used for developing distributed systems. The Chrome dev tool is just to demo the user experience of poor internet. They're very different use cases.
- fendy3002 4y agoClownCast
- dubswithus 4y ago[flagged]
- withinboredom 4y agoThere's nothing more annoying than recognizing that some developer wrote their own "timeout logic" when the socket is still transferring data, just very slowly. Pro-tip, don't implement your own timeout logic, just set a timeout on the socket.
- deleted 4y ago[deleted]
- PaulHoule 4y agoComcast is pretty good compared to Frontier. People with DSL don’t want to hear you bitch about your cable provider, particularly one that (relative to others) charges a premium price for a premium product.
- iameli 4y agoGenerally when a product doesn't work for half an hour every day, with no acknowledgement from support or fix, I would hesitate to use the word "premium." I've also lived with 12 Mbps DSL; at least it was rock solid 24/7.
- icedchai 4y agoThat's the big problem with cable / DOCSIS: it's totally inconsistent from one day to the next. The last time I had trouble, they indicated there was "upstream ingress" in the neighborhood. This caused significant packet loss and took literally months for them to track down. In my experience, unless it's a complete outage, cable companies do not give it a priority.
- DangitBobby 4y agoI bought a wireless home internet subscription and a router with WAN failover capabilities because I was tired of 10 minute outages 3 times a week. Great for you if Comcast provides you with premium product. They simply do not here. I'm not completely unsympathetic to people stuck with DSL since I grew up with dial-up and that's still all my parents can get (apart from wireless), but I'm absolutely entitled to and will continue to bitch about Comcast's service when relevant.
- jonathantf2 4y agoPF/OPNsense routers offer this feature in the settings, you can limit speed and add packet loss etc
- capableweb 4y ago"This feature" exists in a lot of hardware/software, but the context of which the tool is built for matters too. Doing this in the router would impact all devices connected to the router, right? Changing configuration on your router in order to test something locally on your computer also feels slightly overkill.
- rob_c 4y agoLoving the concept and the name. I wish more people used these tools to test their products outside of CI lab test like environments.
- game-of-throws 4y agoComcast rebranded themselves as Xfinity to try to shake their reputation. Maybe this project should be renamed too.
- kjs3 4y agoThey only rebranded the consumer side, and that was as I recall coincident with their move from being a 'cable company' to pushing bundled IP services. The business side is still branded Comcast. I don't think they much care about their reputation, at least not enough on it's own to rebrand. In many of their markets there isn't much in the way of an alternative other than the at-least-as-shitty AT&T.
- tenebrisalietum 4y agoNow we need a tool to simulate long time to resolution when you've proven and notified your service provider of an issue, and also happening to be the underlying LEC for the other service provider in your area, so when there's an upstream issue both go down (AT&T).
- LgWoodenBadger 4y agoAbout 15 years or so ago, we looked at buying a hardware appliance that would let you build and simulate virtual networks with all sorts of different characteristics. Packet loss, latency, etc. We developed software for retail point of sale systems, and some of the stores we had to support had all sorts of awful infrastructure, both inside the store and between the store and the “rest of the world.” I can’t remember the name, but I believe it was an Israeli company, and the device was programmed/configured through Visio (iirc).
- baruch 4y agoThat was Shunra, I worked there for a brief time. It was sold to HP at some point and I don't know what happened to the product afterwards.
- awestroke 4y agoIt was probably incorporated into HP's consumer printers
- bombcar 4y agoOften with amazingly crappy internet what you want are "one packet wonders" - do everything possible in single packets, so that if one gets through you win.
- luma 4y agoThese products were typically known as "WAN emulators" and were pretty commonly used in the exact situation you describe: developing large scale distributed systems that were going to be used over unreliable connections. This functionality is now available in the Linux kernel via netem and is accessible via the `tc` command.
- acosmism 4y agoi love comcast!
- butlerm 4y agoThis reminds me of an Amiga utility someone made called 'viacom' that when run would create a nice semi-transparent pattern of static interference all over the screen.
- k_sze 4y agoThere’s another tool called “clumsy” that I used some years ago.
- DeathMetal3000 4y agoYeah, that’s the one I use. Unlike Comcast here it works on Windows. http://jagt.github.io/clumsy/ http://jagt.github.io/clumsy/
- aaaaaaaaata 4y agoI enjoy this tool.
- pehtis 4y agoIf you are on macOS you can use the "Network Link Conditioner" System Preferences pane that is included with Xcode for the same effect. You can find that in the Additional Tools for Xcode download, in the Hardware folder.
- TaylorAlexander 4y agoTangent but I was always annoyed at how poorly google products work offline. One time I was using google maps to navigate to a remote address. Once I got close to the address google maps crashed and I re-opened the app. I had no cellular service. The app remembered the actual map data but did not remember the address I had just typed in to the program 15 minutes earlier. I had to guess what street address I was heading to! Why they designed the app to store all search history exclusively in the cloud and not keep a local copy is beyond me, but I presume when working at google they always have an excellent connection and hadn’t thought of what would happen if a user lost service. Being able to at least see the search history would have saved me some grief!
- mh- 4y agoI've experienced that same behavior too. But I also happen to know that, at least in the earlier days of android, they had sophisticated labs available for emulating poor network conditions and software for spoofing GPS on-device in the lab. Which just makes it more frustrating.
- lostgame 4y agoFor all the hate it gets, I can confirm that Apple Maps does not exhibit this behaviour, and I also believe Waze doesn’t, as well; though my memory is hazy on that one. Driving around in Northern Canada, as I am often wont to do with my partner; you’re without cell service at least half the time; and even when you do have cell service - data is very uncommon. My girlfriend and I ran into this issue twice with Google Maps, tested if Apple Maps exhibited the same behaviour, and since it hadn’t - neither of us have actually used Google Maps since. This is - of course - iOS-specific advice.
- coryrc 4y ago> Why they designed the app to store all search history exclusively in the cloud and not keep a local copy is beyond me It used to. It was intentionally removed. I say this as a customer who read the update notes, not as an employee of Google. I'll let you guess why they did. I have my opinion why and it is not flattering to the company, to say the least.
- mynegation 4y agoI remember there is some kind of provision in the copyright law for satire in the performance art. There was a cafe set up once for few days called “Dumb Starbucks” and that was not deemed copyright infringement. Not a lawyer, this is not a legal advice.
- cosmotic 4y agoIf anything, it would have been trademark infringement.
- captainkrtek 4y agoThis is the first search result if you google “github comcast” which is amazing since comcast does also have their own open source repos on github.
- hackernj 4y agoI don't need this software, because Comcast is my ISP.
- jwillmer 4y agoOn Android we use Throttly to mess with the network: https://play.google.com/store/apps/details?id=me.twocities.throttly https://play.google.com/store/apps/details?id=me.twocities.t...
- beeandapenguin 4y agoFor any frontend folks looking to use packet-level throttling over simulation with lab testing tools such as Lighthouse, I highly recommend throttle from the sitespeed.io folks. Inspired by comcast, but installable in Node. https://github.com/sitespeedio/throttle https://github.com/sitespeedio/throttle
- luma 4y agoThe 2.6 Linux kernel includes the ability to create this sort of havoc on your network interfaces via netem[1]. Using the `tc` tool you can add latency, jitter, packet loss, packet reordering, corruption, duplication, or rate limiting. You can apply this to an entire interface or have it only apply to single IPs or ranges of IPs as it works through the existing QOS framework in Linux. Combined with a routing interface and you can leverage this to create a wan emulator for external hosts without much trouble. This is incredibly useful when smoke testing large scale distributed systems or for test/development of protocols intended to be used over dicey connections. [1] https://www.linux.org/docs/man8/tc-netem.html https://www.linux.org/docs/man8/tc-netem.html
- jeroenhd 4y agoThat's pretty much what this tool does, except that it also supports alternative command lines available on BSDs and macOS. The README even shows how to use tc and iptables to simulate a bad network!
- fredley 4y agoI used to work with someone who would frequently explode on group video calls, usually with the anger directed at a single victim. I worked out that if it happened to me, I could use the OSX link conditioner (built in to XCode) to degrade the connection realistically. Coming back after he'd finished his tirade with a 'sorry, my internet capped out, could you repeat that' took a lot of the heat out of the situation.
- distances 4y agoSidenote, but I have never ever witnessed someone getting angry at another person in a meeting, remote or in person. I don't even know how I'd react except being flabbergasted at the unprofessionalism.
- fredley 4y agoI haven't otherwise, this was quite the experience. Quite soon after the first incident I started planning my exit. Attrition was very high at that company...
- mobiledev2014 4y agoOh boy, I have. It was the president of the company. I lined up a job and quit so fast
- BrandoElFollito 4y agoMany people are talking about sueing or c&d - I wonder why such projects are not hosted in countries where it does not matter (say, China) I even wonder what would happen if it was hired in Europe, what would comcast do. Hire lawyers in Europe to represent them? On the basis of a US law?
- anikdas 4y agoAnother tool that is built into linux is tc[1] [1]https://man7.org/linux/man-pages/man8/tc.8.html https://man7.org/linux/man-pages/man8/tc.8.html
- mrtweetyhack 4y ago
- heywoodlh 4y agoI would love to hear from any regular user of Comcast (or tools similar to it) what their actual workflow looks like for using it to improve their systems?
- footlose_3815 4y ago[dead]
- soobrosa 4y agoJust live in Berlin instead.