tylertreat / comcast

Simulating shitty network connections so you can build better systems.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feature Request - Throttle traffic based on domain. "Fast Lane/Slow Lanes"

thorsummoner opened this issue · comments

The documentation didn't appear to state that using this will, by default, make requests to YouTube and Netflix slower, seems like a critical missing feature.

It would be pretty cool if you could spec a bandwidth restriction per domain though, or based on other packet criteria. Though I totally understand if delving that deep into networking black magic is outside the scope of this project.

I believe Netflix has already decided to support this project, and thus has a fast-lane. No need to de-prioritize their traffic at present. Youtube on the other hand...

There's a lot of stuff I would like to do with this. I'm just really lazy.

I'm currently working on fast/slow lanes by way of adding a "target address" parameter (which as far as I am aware will accept CIDR format. Once working, I will expand it to target a list of domain names. More or less rewriting the entire tc wrapper.

It's currently in sort-of-working state currently on my own local repo, mainly held up by trying to learn how traffic control works on linux.

Then, I can expand this to support ipfw (and maybe add the missing support for pfctl, but I don't have any Macs to test with, let alone one running 10.10).

Possibly if @tylertreat could get in contact with me on IRC to discuss traffic control and maybe shed some light on things I may be missing? Would appreciate it.

Thanks for inspiring me to work on something :3

@term1nal Awesome! I setup a gitter chatroom for the repo. Feel free to direct any discussion there.

I would probably use this to throttle users instead of blocking the domain for them. That way they don't seek loopholes to use fecesbook/nuttit.com/instaporn but are just mad about our connection speeds to the site.

Just further update on this issue, my work on the TC wrapper is nearing completion. I've also tacked on adding of multiple target destination addresses (by list of single IPs and/or CIDRs), as well as destination ports. As it stands, this works on egress traffic only, I can at some point add support for ingress traffic as well.

Addressed in #21