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:


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.


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.


Write a formal, scientific report that describes each of your tests. Include your graphs in your report and discuss whether you got the expected results.

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.

Your report must match the LaTex style shown in this template. If you choose to use LaTeX, I suggest using the WikiBooks LaTex reference.


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.


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.