Mininet: Emulating a network on your laptop
mininet.github.com
mininet.github.com
Also, could you run virtualization software like Dynamips inside Mininet?
An existing use for this sort of thing is as a prototype environment for a software defined network. See 'Live Migration of an Entire Software Defined Network' for an example of use.
If you're a distributed systems developer, you can use Mininet to create a topology and emulate the interaction of 100s of, say, bittorrent clients.
If you're a graduate student in networking, you can use Mininet to experiment with your new routing protocol and compare it against existing ones such as OSPF, BGP, etc.
You can also use it to put existing research papers to the test: http://reproducingnetworkresearch.wordpress.com
The Chicago Tribune actually released a tool to do load testing with AWS instances: http://blog.apps.chicagotribune.com/2010/07/08/bees-with-mac...
Most of the assignments built around cnet were of the form of "Here is a network protocol that is half-completed. Write the transport layer", or "here is a fully completed network protocol that works with this topology. Now we introduce wireless nodes, modify the protocol to support wireless mobility".
Our assignments were similar, I remember doing stuff with link state and distance vector routing, implementing parts of a tcp state machine and others.
If you want a "real" network GNS3 is so much better.
I was kind of sad when Linux didn't really have anything close to it.
[1] http://www.linuxfoundation.org/collaborate/workgroups/networ...