The goal of this assignment is to learn about a modification to TCP called Multipath TCP or MPTCP for short. We will replicate a subset of the results of the research paper that presented MPTCP.
Multipath TCP allows a particular TCP flow to simultaneously send data across multiple paths to the receiver. This increases the flow's resilience to downed links across any particular path and allows for higher throughput by utilizing multiple network interfaces of a sender. For a example a cellphone could simultaneously send data via a MPTCP flow over both a wifi link and a 3G. If either signal deteriorates, the flow can survive and if both signals are good, MPTCP will take advantage of the combined bandwidth.
Mininet is a particularly useful tool for this experiment as MPTCP is not widely deployed. Using Mininet, we can safely test MPTCP without causing issues to real network traffic.
Update to the latest assignment code:
git commit -a -m "Saving work"
Note: If you haven't upgraded your version of Ubuntu and you're on version 13.04, you will need to run this command first:
sudo sed -i "s/(security.ubuntu.com\|mirrors.kernel.org)/old-releases.ubuntu.com/g" /etc/apt/sources.list
Install MPTCP into the virtual machine. Reboot the virtual machine after the second command:
Run the following test to ensure MPTCP is functional. The test will enable MPTCP and start two flows. The bandwidth should be around 20Mbps. If the bandwidth is approximately 20Mbps, MPTCP is correctly installed:
sudo ./test_mptcp.py --bw 10 --mptcp -n 2
topo_wireless_handoff.pymarked with a
TODO. Refer to the following diagram to setup the topology correctly. The delays listed are per link so a delay of 1ms on an Ethernet link would result in a 4ms RTT for the entire Ethernet connection (2 links, 1 from sender to switch, 1 from switch to receiver, 2ms in each direction). Note you will need to set the node names exactly as they appear in the diagram.
mptcpfollowed by a timestamp and within each folder a
rate.pngwith the throughput results.