CS 925 Advanced Computer Networks

Assignment 2


Due: Thursday, February 22, 2024, 2:10 pm (start of the class)

Problem:

The purpose of this assignment is to study throughput performance of TCP under varying packet loss and network latency. You are expected to use your bandwidth testing tool that you developed and tested in the previous assignment.

In this assignment we will use a network emulator/impairment injector (Albedo Net.Storm) placed between enp2s0f3 interfaces of rb1 and rb2. The results of your observations should be presented as a throughput vs loss graph where each of the curves represents performance for a specific value of the network latency. It is a part of the assignment to find ranges of the independent variables (loss and latency) that illustrate well the TCP performance.

The network emulator can be obviously set to only one particular setting at a time, so to make sure that your experiments do not run at the same time as those of different students, you are required to use Portable Batch System (PBS), specifically its qsub command.

There are two commands available on rb1 to set the network impairments (set-netstorm, run the command without parameters to see details of how to use it) and to verify that the set impairments were actually applied (check-netstorm). You do not have to do that but it is a good sanity check at least at the start. Since your jobs can be interleaved with those of other students, you need to set the parameters at the start of each job and must not rely on settings to be retained from one run to another.

It is not terribly complicated to find out how to bypass the job queuing system, however, doing so would be a conduct violation. Similarly, there is nothing that prevents your from submitting a large number of jobs at once, effectively blocking the other users. I sincerely hope that we won't run into problems with this. If you want to see where you are, command qstat will display the current state of the job queue. A job can be removed from the queue using command qdel (obviously, you can only delete your own jobs).

Deliverables:

Paper that describes your findings and code committed to the class repository.

Submission instructions:

Upload your submission as a single PDF file using Canvas (mycourses.unh.edu). Any source code used in the assignment must be committed to the course Git repository. More details can be found in the standard assignment submission instructions.