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).
Rank |
Download Time |
Team Members |
0. |
35.03 s |
TCP developers :) |
1. |
36.65 s |
Noaa Avital, Jike
Chong |
2. |
37.66 s |
Joshua Chang, Ranjeet Jhutti, Jeffrey Woo |
3. |
38.03 s |
Maung Y. Aung, Joo
Young Lee |
4. |
38.27 s |
Guang Li, Dawson Tan, Tina Tung |
5. |
39.16 s |
Hy Thai, Yu Lisa
Wu |
6. |
39.44 s |
Whitney Chiu, |
Comments:
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* gmail.com. 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 WebTPserver.java, 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
Servers:
Host |
Port |
Comments |
daspek.com |
12201 |
Does not intentionally drop any packets |
daspek.com |
12202 |
Drops one packet intentionally, near the start (to take you out of slow start) |
daspek.com |
12203 |
Only accepts packets from you if your checksum is correct. |
daspek.com |
12204 |
Corrupts some of the data packets (the checksum won't pass when you receive them). |
daspek.com |
12205 |
"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:
Name |
Size |
md5sum |
timeserver.c |
1226 (1.2k) |
8f0957d9bb5e13d0187b70d7d768fdcd |
timeclient.c |
1726 (1.7k) |
713d4e2973fc5f9773158ebfcb0f6914 |
timecliserv.c |
3177 (3.2k) |
ecb8a421321abfb7762ac1c0472747ae |
WebTPJournal.pdf |
563106 (550k) |
97293d96c3186ebf3a6719dd190df1b1 |
portland.mp3 |
1586053 (1.6M) |
28eea1a3879fa09f7e9857b134cf300f |
rainydrive.avi |
2108384 (2.1M) |
b84a1a25ce6eee79a5359719b89d38c4 |
Last updated by Daron on 5/04/05