The goal of this assignment is to learn about a specific change to TCP that reduces transfer latency. In the past lesson you learned about persistent TCP connections which enable a web browser to reuse a connection for multiple data requests. However, many HTTP requests occur over new TCP connections for example because an image for a webpage is located on a separate content server or an ad is being loaded from a third party resource. This led researchers at Google to investigate reducing the setup costs for a TCP connection. They developed TCP Fast Open (TFO) which begins sending data during the TCP handshake thereby reducing the latency of a new connection by one RTT.
You will replicate the experiment from the original paper in Mininet to observe how TCP Fast Open improves round trip times for real websites. The test setup provided uses a modified Chrome binary to download web pages from Mininet hosts. The hosts act as web servers serving mirrored data from real websites. The tests run for different latencies with TCP Fast Open disabled and then enabled. TFO is a now merged in the Linux kernel so it is built into Ubuntu 13.04 which is installed on the virtual machine from assignment 1.
Update to the latest assignment code:
git commit -a -m "Saving work"
Install a VNC server, termcolor and an additional library:
sudo apt-get update
sudo apt-get install vnc4server
sudo apt-get install libnss3-dev
sudo pip install termcolor
.pagesfile with a list website URLS each on a single line similar to the
Paper.pagesfile. For simplicity, call the file
myURLS.pages. Then run the
fetch.pyscript to download the web pages, modify the
run.shscript to use your new
.pagesfile, and re-run the experiment:
./fetch.py --name myURLS
--- Modify run.sh script on lines 21 and 29 (change --name argument to myURLS) ---
httpssites as well. The Google and Udacity home pages work well as test sites. Also, if you shut down the virtual machine after step 4, be sure to restart VNC.
This rubric is here to help you understand the expectations for the assignment. It is the same rubric that the person evaluating your project will use. We recommend you look at the rubric before you begin working on your project and again before you decide to submit it.
|Criteria||Does Not Meet Expectations||Meets Expectations||Exceeds Expectations|
|Experiment log data|
|Output looks reasonable.||Log data does not pass the sanity check when it is submitted. Log data does not show improvement with TCP Fast Open.||Log data passes sanity check and shows noticeable improvement with TCP Fast Open.||There is no “Exceeds Expectations” option for this criteria.|
|Quiz responses demonstrate understanding of experiment.||Quiz responses are not submitted or show the student did not read the paper.||Quiz responses show the student clearly understands how TCP Fast Open works and read the associated paper.||There is no “Exceeds Expectations” option for this criteria.|
 Based on a reproducing network research post.