Due date: Friday, February 27th, by 11:59pm
You are to evaluate the effects of the TCP receiver window size on performance with regards to two classes of applications:
For each application class, you are to define the workload and the parameters. For example, for a bulk download application, you might define the size of the download to be a parameter or the round-trip time of the server while an interactive session may have a certain number words of text to be written.
For each workload, you are to define performance metrics at two levels:
Then, you are to evaluate performance for different system configurations. Specifically, different settings for the TCP receiver window. You should look at at least three receiver window system settings: small (1 or 2 Kbytes), medium (16 Kbytes), and large (64 Kbytes).
Your work will culminate in a report which must contain the following sections:
The Enabling High Performance Data Transfers Web site has good background information on TCP tuning, including the role of receiver windows.
The broadband.com Networking Forum FAQ has some good information on access networks, in general.
To set the receiver window size on Windows, you can use Dr. TCP.
To set the receiver window size on Linux, you can use:
/proc/sys/net/core/rmem_max - maximum receive windowand do something like:
echo 2048 > /proc/sys/net/core/rmem_max(as root or using "sudo") to set the receiver window size to 2048 bytes.
If you are using Windows, MS Excel has good support for drawing graphs. You might try this tutorial http://www.urban.uiuc.edu/Courses/varkki/msexcel/graphs/Default.html to get started.
If you are using Unix, gnuplot has good support for drawing graphs. You might see http://www.gnuplot.info/ for more information.
Remember, TCP throughput is inversely proportional to the
round-trip time. Thus, if you download a file that is "far" away, the
bottleneck to performance may not be your last-mile network
connection. This is ok, but you should characterize that round-trip
time (in fact, you may want to make round-trip time a parameter for
your workload characterization). You can get an estimate of the
round-trip time experienced by a TCP connection by using the
ping
command (available on Windows or Linux).
You might look at the slides for this project (ppt).
Hand-in a report (your report should be in pdf or postscript or text but not MS Word or any other native document format).
Tar up (with gzip) your files, for example:
mkdir proj2 cp * proj2 /* copy all your files to submit to proj2 directory */ tar -czf proj2.tgz proj2
then attach proj2.tgz to an email with "cs533_proj2" as the
subject. Type elm -scs525_proj2 < proj2.tgz
to send it,
if that is easier.
Send all questions to (claypool at cs.wpi.edu).