CSCI 342: Networks

Semester: Spring 2013
Room: Kng 227
Class Time: Mon/Wed/Fri 2:30pm-3:20pm
Office Hours: Monday,  3:30-4:30pm
Thursday, 4:30-5:30pm
or by appointment
Professor: Cynthia Taylor
email: ctaylor AT oberlin edu
Please include "cs342" in the subject.
Office: King 229
Phone: x58424

Homework 6 - FAST Reliable Delivery over an Unreliable Link

Homework Description

The sample code for this lab is available here.

This homework is continuation of hw5 with addition of pipelining. You can either use your solution of hw5 or the template.

To simulate an unreliable link in a single computer, you still need to run mininet. Like homework 5, run the following command and change the delay, loss and buffer size parameter.

sudo mn --link tc,delay='10ms',loss=5,max_queue_size=10 -x
At a high level, your job is to change the reliable transport protocol implementation in the template so that the following example execution always produces the correct result.

In one terminal (say h2), you run the receiver in the following way, and it produces output as shown below.

./hw5_receiver BASEPORT > RECEIVED_FILE
# later on, this happens...
File received, exiting.

In a separate terminal of h1, you run the sender:
cat ORIGINAL_FILE | ./hw5_sender 10.0.0.2 BASEPORT
Sent 1020544 bytes in 25 seconds: 35 kB/s
Estimated RTT: 1029 ms

A few things to pay attention to:

Finally:

Hints

Grading

The grading script is availabe here. Note that these files must be in the same directory as your program to work.

The script runs 10 times for each case and regard it as success if more than 7 throughput are faster than the threshold.

[SUCCESS] buf=2 loss=0% threshold=14 [1]: 1 [throughput(kB/s)= 37.0 32.5 28.3 27.8 42.3 28.2 28.5 27.6 28.8 28.4] mean=30.94 kB/s
[SUCCESS] buf=2 loss=5% threshold=2.1 [1]: 1 [throughput(kB/s)= 14.8 13.8 16.7 21.5 9.8 15.2 14.0 7.4 9.4 13.3] mean=13.59 kB/s
[SUCCESS] buf=10 loss=0% threshold=80 [1]: 1 [throughput(kB/s)= 151.2 151.1 151.5 151.3 151.1 151.3 151.9 151.1 151.5 151.5] mean=151.35 kB/s
[SUCCESS] buf=10 loss=5% threshold=10 [1]: 1 [throughput(kB/s)= 19.0 28.4 38.1 21.7 20.5 17.4 11.3 15.6 27.0 14.8] mean=21.38 kB/s
[SUCCESS] buf=100 loss=0% threshold=85 [1]: 1 [throughput(kB/s)= 162.4 162.3 162.3 162.3 162.2 161.3 162.3 162.4 162.3 162.3] mean=162.21 kB/s
[SUCCESS] buf=100 loss=5% threshold=10 [1]: 1 [throughput(kB/s)= 31.5 48.8 33.8 19.9 28.4 37.5 32.7 40.0 28.5 46.6] mean=34.77 kB/s

Total score: 6

This script is NOT how I will be determining your final grades for this assignment. However, it should give you a good idea of how your program is performing.

Handin

We will be using Handin to turn in all assignments. Turn this in for class 342, assignment 6.