I'm sharing a cheap 3 mbps ADSL Internet connection with a house mate, using a WRT54G v4 router with Linksys stock firmware. We each pay 50% of the Internet bill.
However, my house mate is a P2P streaming video addict. Being a low bandwidth connection on the cheapest plan that is sufficient for light Web browsing and emailing, he would let his P2P s/w run 24 hours downloading and buffering HD movies and TV shows while he sleeps or even when he goes out.
Sharing the connection with him, my Internet DL speed drops to 8 KB/sec as reported by IE9. Each click on a hyperlink in the Web browser takes 20 to 30 seconds to start processing, and each Web page takes 2 to 3 minutes to load, sometimes even time out. The P2P s/w that my house mate is running basically saturates and bombards the router with 20 to 30 concurrent connections downloading fragments from all sort of IPs at different ports. So my HTTP requests have to queue and wait until a connection is freed up by the P2P s/w.
Using the stock firmware, I disabled PnP to prevent my house mate's P2P s/w from allowing downloads from other users. Previously the P2P s/w even opened up listening ports using PnP. Then I set my house mate's desktop PC Ethernet address and LAN port to Low to throttle its speed somewhat, plus give HTTP (80) and HTTPS (443) port High priority. Based on the router connection log, I looked at what ports the P2P s/w used and set those ports to Low priority.
However, either my house mate or the P2P s/w figured out that HTTP and HTTPS port have higher priority / speed, it started using them for P2P traffic as well. So now even throttling by port is ineffective since it can't differentiate traffic from normal Web browsing and P2P bulk traffic.
Thus, I'm thinking of switching to Tomato 1.28 / TomatoUSB firmware if it can implement better QoS. Specifically, can Tomato limit the following:
- Maximum number of concurrent connections (Else the router will be saturated)
- Maximum bandwidth per IP / MAC address (either a fixed hard limit e.g. xx Kbps or a percentage of the bandwidth available e.g. 50%)
Since I'm paying half of the bill, when I need my Internet, it's only fair I should get 50% of the bandwidth for my web page downloading?
Any advice or recommendation for handling bandwidth hog are welcome too. Thanks.