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.
Check Piazza for updates.
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 easy_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.
 Based on a reproducing network research post.