1. Mininet for network emulation (http://mininet.org/): Emulation allows you to run real end-host implementations within a scaled down network. Think of it like running a real-world experiment but under scaled down link rates. 2. ns-3 for network simulation (https://www.nsnam.org/): Simulation allows you to run simplified end-host and router algorithms within a virtual environment where time is handled by a simulation engine. You can use as high or as low a link rate as you wish, and the simulation time will go up or down accordingly. 3. CAIDA datasets of packet traces (http://www.caida.org/data/overview/): CAIDA contains packet traces (and some other kinds of networking traces) that you can use to evaluate a new algorithm on a stream of pre-recorded packets. 4. http://pantheon.stanford.edu/ is an infrastructure that allows you to test out a new congestion control algorithm in a variety of real-world scenarios (e.g., a server machine in India communicating with an Amazon EC2 node close by.) 5. Amazon EC2 (https://aws.amazon.com/ec2/?sc_channel=PS&sc_campaign=acquisition_US&sc_publisher=google&sc_medium=ec2_b&sc_content=ec2_e&sc_detail=amazon%20ec2&sc_category=ec2&sc_segment=175055296304&sc_matchtype=e&sc_country=US&s_kwcid=AL!4422!3!175055296304!e!!g!!amazon%20ec2&ef_id=Wmv6YgAAALcTy1Ha:20180201053833:s) Amazon's well-known cloud computing service (Google and Microsoft have similar offerings as well). This lets you rent out VMs by the second from Amazon. You can rent out a set of VMs within the same Amazon data center and use this as a virtual cluster for running networking experiments. 6. Mahimahi (http://mahimahi.mit.edu/): A network emulator similar to but simpler than Mininet, but isn't designed for all the use cases that Mininet covers.