MULTIPATH-TCP ASSIGNMENT In this assignment, you will experiment with multipath-TCP and see whether there are performance benefits. Each student should submit an individual assignment; you may collaborate with 1-2 others, but please collect individual results in the Testing section. If you are working with any collaborators, please include their names in your writeup. Note: According to UC campus guidelines, you may NOT sniff Internet traffic of other users. Therefore, please perform these experiments off-campus, or use a personal router (e.g., in your lab) on-campus. CONFIGURATION 1. Download and install MPTCP on your client machine using apt-repository: http://multipath-tcp.org/pmwiki.php/Users/AptRepository I have tested it with Ubuntu 16.04.2 and the latest MPTCP kernel, 4.1.38.mptcp. I would suggest starting with a native Ubuntu installation (virtual machines can get a bit hairy). 2. Configure the routing tables: http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting I suggest you use Ethernet and WiFi as your two different interfaces. Note that the automatic scripts generally has not worked for me. You can write your own script using the commands given. Use "ip route show" to get the needed information (IP address + netmask, gateway). 3. Enable MPTCP by setting the appropriate variables: http://multipath-tcp.org/pmwiki.php/Users/ConfigureMPTCP. The main ones are net.mptcp.mptcp_enabled and net.mptcp.mptcp_path_manager. Test your basic setup and see if both interfaces are working simultaneously: http://amiusingmptcp.de/ or “curl http://www.multipath-tcp.org”. If Chrome is not displaying the graphs properly, try Firefox, or hit refresh a few times. 4. We have set up a MPTCP-enabled web server at: mptcp.cs.ucr.edu. There are several available files on the server that we will use: -http://mptcp.cs.ucr.edu/ubuntu.iso -http://mptcp.cs.ucr.edu/cnn.html -http://mptcp.cs.ucr.edu/foxnews.html Check using Wireshark that you are able to download these files / view these pages using both interfaces simultaneously. TESTING 1. Does MPTCP improve file transfer performance? Try (partially) downloading the Ubuntu ISO three times: once with MPTCP, once with WiFi-only, and once with Ethernet-only. Record the trace using Wireshark. To plot the results, use Statistics > I/O Graph and set the filters appropriately to display the relevant traffic (i.e., with Wireshark filter ip.src==XXX and ip.dst==YYY). Create three plots: (1) MPTCP: plot the total throughput, the amount sent over WiFi, and the amount sent over Ethernet. (2) Ethernet-only. (3) WiFi-only. Questions: Does MPTCP increase the total throughput? How does the traffic split using MPTCP compare to the single-path scenarios? 2. Does MPTCP improve web browsing performance? Try viewing the CNN and Fox News websites in Google Chrome. Use More Tools > Developer Tools > Network to record the waterfall graph. Repeat each website three times, and for each trial, record the page load time ("DOMContentLoaded" and "Load" in the bottom right of the screen). Create a table of these results. Also, count the number of objects requested over each interface using Wireshark (hint: use Wireshark filter http.request.method=="GET”). Add these results to the table. Questions: Does MPTCP help reduce the page load time? Why or why not? How does the fraction of objects requested correlate to the throughput from the previous step? 3. Is MPTCP TCP-friendly? Recall that TCP-friendliness is a measure of whether MPTCP competes fairly with other single-path TCP users. Setup another client to do a file transfer (e.g., a friend's laptop, or your phone) on either WiFi or Ethernet. Start the MPTCP client’s file transfer, and after 10 seconds, start the download by the single-path client. Create a plot of the throughput of the MPTCP client over time (include both total, WiFi portion, and Ethernet portion). Also record the average throughput of the single-path client with and without the MPTCP client present. (If the single-path client is using WiFi, you do not need to use Wireshark to measure the throughput over time — the average speed will do. This is because it is a bit complicated to set up Wireshark to decrypt other clients' WiFi traffic.) Questions: How does the MPTCP client's throughput change when the single-path user joins? Comparing their throughputs, is the MPTCP client TCP-friendly? How does the other interface of the MPTCP client adapt when the single-path client joins?