Project for EECS122 - Spring 05

Time Line:

    4/13:  Project Description is out
    4/22: The document that describes your API is due (see project description)
    5/05:  Project due 

Contest Results are Out

The projects have been really awesome. Good job!
Here are the results of the contest (listing of clients with under 40 seconds download time for portland.mp3).


Download Time
(for portland.mp3)

Team Members


35.03 s

TCP developers :)


36.65 s

Noaa Avital, Jike Chong


37.66 s

Joshua Chang, Ranjeet Jhutti, Jeffrey Woo


38.03 s

Maung Y. Aung, Joo Young Lee


38.27 s

Guang Li, Dawson Tan, Tina Tung


39.16 s

Hy Thai, Yu Lisa Wu


39.44 s

Whitney Chiu, Kan Shun Sit



    5/04:  I have noticed that many groups have been misunderstanding the semantics of slow start. CWND is not doubled at
                the receipt of every packet, but at the receipt of CWND packets. To achieve this, CWND is incremented by one
                with the receipt of every packet (not doubled!), and thus after CWND packets, the window size doubles. Here is
                an example of what your slow start should look like:
               - client sends request for ADU 0 (CWND=1)
               - client receives PN#0 from server, slides window, and increments CWND by 1. Since CWND was 1 before, it has now doubled.
               - client sends request for ADU 1 and 2 within the same packet (CWND=2)
               - client receives PN#1, slides window, and increments CWND by 1.
               - client sends a request for ADU's 3 and 4 (CWND=3)
               - client receives PN#2, slides window, and increments CWND by 1.
               - client sends a request for ADU's 5 and 6 (CWND=4), and so on.
             Note that when slow start is followed, two new packets are requested for every packet received. Do not hardcode this
             behavior into your client -- it should do it automatically if you are incrementing your window properly. The main difference
             between slow start and congestion avoidance is how CWND is incremented. Whereas in slow start, CWND is incremented by
             one with the receipt of each packet (thus doubling after the receipt of an entire window), in congestion avoidance, CWND is
             incremented by one only after the receipt of an entire window's worth of packets.
             In summary: if your requests look like (0), (1, 2), (3, 4, 5, 6), (7, 8, 9, 10, 11, 12, 13, 14), etc.,
        then you are not doing slow start correctly. If they look like (0), (1, 2), (3, 4), (5, 6), ..., then you are.

    5/04:  When you are done, please email the project and final design report to daspek *at* Be sure to include
               a list of all your group members' names and SID's.
    5/04:  The interview signup sheets have been posted outside of Prof. Walrand's office. Sign up for a time that all of
                your group members can attend.
    5/04:  To check the md5sum of the files you transfer using WebTP,
download this. **use the 'gmd5sum' command.**
It's compiled to run on the sparc machines. If you want the source, get it here
    5/04:  You can now download the server source code by requesting, if you think it will help you.
    4/29:  Remember to make your client robust. Use the newly added servers below to test your client as you finish it.
    4/28:  Guidelines for the final report (due Thursday, May 5) are here
    4/24:  Marghoob will hold extra office hours 2-3p on Tue, Apr 26 in 197 Cory
    4/23:  You may start testing your code on the servers listed in the 'Servers' section below
    4/18:  The due dates for both the API design and the project have been pushed back to 4/22 and 5/05, respectively







Does not intentionally drop any packets


Drops one packet intentionally, near the start (to take you out of slow start)


Only accepts packets from you if your checksum is correct.


Corrupts some of the data packets (the checksum won't pass when you receive them).


"Mystery Bug" -- if you're not careful, some parts of the file you receive may be wrong, even though the checksum passes. Think about how this can happen and what you can check to prevent it. Everything may look okay after you download it, but check the md5sum of your file against the posted one to see if your client is vulnerable.


Available Files:   





1226   (1.2k)



1726   (1.7k)



3177   (3.2k)



563106   (550k)



1586053   (1.6M)



2108384   (2.1M)



Last updated by Daron on 5/04/05