Its not load balacnig, its standard routing.
You can get routers that do QoS (quality of service)/shaping, but that only affects outoging packets which you have control over. You may want to give VOIP packets the highest priority or ftp the lowest priority.
You dont have fine-grained control over what packets are coming in. You may have n inward TCP connections open but you are not guaranteed of 1/n bandwidth for each.
You cant try
- limiting inward bandwidth at the application level eg the --limit-rate= option of wget
- build your own router with shaping eg
http://www.opalsoft.net/qos/DS.htm or better still
www.openbsd.org and
http://www.openbsd.org/faq/pf/index.html
- increasing tcp buffers to reduce latency; heres what I do
echo 262144 > /proc/sys/net/core/wmem_max
echo 262144 > /proc/sys/net/core/rmem_max
echo 1 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/tcp_window_scaling
echo 1 > /proc/sys/net/ipv4/tcp_sack
echo 8388608 > /proc/sys/net/core/wmem_max
echo 8388608 > /proc/sys/net/core/rmem_max
echo "4096 87380 4194304" > /proc/sys/net/ipv4/tcp_rmem
echo "4096 65536 4194304" > /proc/sys/net/ipv4/tcp_wmem
echo 65536 > /proc/sys/net/core/rmem_default
echo 65536 > /proc/sys/net/core/wmem_default
ifconfig eth0 txqueuelen 1000