Project 2

CS/EE 555

Fall 2001

Due November 2, 2001

Link to Project1

Description

In this project you will implement several approaches to round-trip-time and timeout computations as described in Chapter 5 of the textbook. As in Project 1, we will again be using UDP packets, but this time to simulate the network layer instead of the link layer..

The primary goals of this project:                                                                                              

As in Project 1 you will again use two programs connected by an emulator which I am providing. Your P1 programs should be a good starting point.

Your sender should, for each experiment, send 100 sequence-numbered packets. The receiver should return an ACK (containing the sequence number) for each packet it receives. If the sender times out before receiving the ACK for a particular packet it resends the packet.

For each sequence number, record the estimated round-trip time before sending, the sampled RTT for that packet, the timeout used, and the estimated deviation (for the Jacobson-Karels algorithms).

The emulator is again running on moomoo and you should use the emulator_connect program from project 1 to connect to it, but change the emulator port number to 2565 (instead of 2555). Use param_set 0. The emulation is of a network path with a varying delay. For the first 33 packets (in each direction) the delay is Gaussian with a mean of .100 seconds and a standard deviation of .020 seconds. For next 33 packets the delay is Gaussian with mean .200 seconds and std deviation .020, then 34 packets of the first distribution again, then the whole thing repeats. Note that if you do not use stop and wait (you should use stop and wait), this may lead to reordering of packets! [Note: if you would like to experiment with a network with less variability in the delay you can use param_set 1 which has similar behavior but the standard deviations are much smaller. Using param_set 1 is not part of the assignment.]

Experiments

The required experiments involve sending 100 packets over the emulated network using the original TCP RTT and timeout algorithm, the Karn-Partridge algorithm and the Jacobson-Karels algorithm both with and without packet timestamps (4 experiments in all). For each algorithm provide one or more graphs showing the estimated roundtrip time, the timeout setting, and the estimated deviation (for the J-K algorithms) as a function of the packet number. In each case, start with an estimated roundtrip time of 100ms. In your write-up of each experiment also note how many packet retransmissions occurred due to timeouts and mark where they occurred on your graphs.

What to turn in

Notes