dummynet is a live network emulation tool, originally designed for testing 
networking protocols, and since then used for a variety of applications 
including bandwidth management. It simulates/enforces queue and bandwidth 
limitations, delays, packet losses, and multipath effects. It also implements 
various scheduling algorithms. dummynet can be used on the machine running the 
user's application, or on external boxes acting as routers or bridges.