Bandwidth Shaping
The Linux Wonder Shaper
APconnections - Bandwidth Arbitrator
Trickle - trickle is a portable lightweight userspace bandwidth shaper. it can run in collaborative mode (together with trickled) or in stand alone mode. trickle works by taking advantage of the unix loader preloading. essentially it provides, to the application, a new version of the functionality that is required to send and receive data through sockets. it then limits traffic based on delaying the sending and receiving of data over a socket. trickle runs entirely in userspace and does not require root privileges.
Bandwidth Testing
From an acquaintance ...
I just ran across a program to do some pretty high quality bandwidth testing. It is called TTCP. There is a client for both Windows and most ports of UNIX. Adam, if you look around the web a bit, I'm sure you'll find a port for Linux as well. Basically, this program uses a TCP port. You set up the client on two machines and configure one as a sender and one as a receiver. A buffer (aka a slab of dummy data), is copied into memory and then sent several times from the sender to the receiver. The receiver throws away the data when it arrives but does record that it received the data. This tests pure TCP performance without involving things such as the hard disk, etc. Testing a full 100Mb link may overwhelm the processor though. Many versions of Cisco IOS have the TTCP command as a hidden priviledged mode command. If you choose to use a router as an endpoint for a test, you may want to bump up the TCP window from 4K to 32K with the command "ip tcp window-size ..."
Also, the UNIX version allows you to test with UDP rather than TCP. This eliminates TCP windowing behavior.
The Unix Software
http://renoir.csc.ncsu.edu/ttcp/ (I believe this is a dead tool)
http://dast.nlanr.net/Projects/Iperf/ (I think this is a similar but maintained tool)
Cisco Documentation
Where's the Windows Software?
Well since I don't use Windows much that would be up to you to add
-- Adam.