I have a Linux box serving as a firewall/router for our home network. I live out in the boonies, so I have a relatively slow broadband connection:
Downstream Rate 7616 Kbps Upstream Rate 512 Kbps
Which is more realistically about 5000 Kbps down, 300 Kbps Up according to speedtest.net.
My kids like to play Steam, Skype, and Minecraft as well as multiplayer games on their Playstation 3. We like to watch Hulu and Netflix.
When our kids are gaming, it often kills our video streaming and, indeed, internet responsiveness in general. During such "outages" I often see hundreds of connections created by their gaming activities and found a way to limit this per host, which does help tremendously. A very simple IPTABLES rule to limit to 25 connections per host:
iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 25 -j REJECT
Has alleviated quite a number of "incidents" since, but we still have trouble with watching Hulu and Netflix whenever the kids are downloading some new game or uploading their latest home video to YouTube, so now I'm trying to figure out how to do some basic traffic shaping.
tc qdisc add dev eth0 root tbf rate 5000Kbit latency 50ms burst 1540
But it more or less killed Internet connectivity altogether. Did I calculate my numbers incorrectly or is this simply the wrong way to go about resolving my problem? Alternatively, are there other/better techniques for keeping our Internet responsive for Netflix/Hulu streaming? I'm still learning a good bit about QoS and traffic shaping, so please provide references if you know of some good resources documenting this topic.
I'm mostly working through this behemoth: http://lartc.org/lartc.html#LARTC.IPROUTE2 to try to figure things out.