We have a linux router providing internet connectivity to several PCs. It's currently using shorewall to help make the iptables setup easier. Is there a way I can set it such that any individual host is prevented from using the entire line? I'm thinking setting the limit at 80%: So any one PC can't use more than 80% of bandwidth, thus if someone is downloading/uploading large files, the connection isn't completely overwhelmed.
Take a look at the Linux advanced routing and traffic shaping HOWTO, which has a section bandwidth management. It looks like the HOWTO is unmaintained, but it's still a good place to start. The Traffic control HOWTO also has good information.
Shorewall allows limitatin per source aswell as per destination IP. For details see the official homepage http://www.shorewall.net/ConnectionRate.html