Lab: Congestion Control Part 1

In this lab, you will add congestion control to your reliable transport protocol. You will use the simulator to examine the correctness of your implementation.

TCP Tahoe

Implement congestion control using TCP Tahoe as your model. This should include the following features:

Graphing

Create a script that can produce the following type of graph:

You can use the TCP Plotting using Python GitHub repository for sample plotting code.

Tests

Use a series of tests to demonstrate that your congestion control algorithm works properly. Use a sequence plot graph to verify the correct behavior in each case.

As a guide, use the graphs shown in the SACK paper we covered in class.

Report

Write a formal, scientific report that includes the following:

Write using a formal, scientific report style. Your report should be written as if you are explaining your work to another CS student, and they need all of the details of what you did so that they can replicate your experiments.

Your report can be any length, as long as you thoroughly describe your project and results. The paper must use 11 point type, single spacing, and one column per page.

You must use LaTex to write your report. You can use this template for your report. To help you learn LaTeX, I suggest using the WikiBooks LaTex reference.

Submission

Your code should be located in a directory called lab3 in the top level:

bene/
  src/
  examples/
  lab3/

Turn in a tarball that includes all of your code (for the simulator, experiments, graphing, etc), and a PDF of your report:

tar -czvf bene.tgz bene

using Learning Suite.

Grading

This lab is worth 150 points, and will be graded using the following rubric:

To get full points, all experiments must work well and the report must be complete and written with a scientific style.