cs533 Project 2

Network Performance versus TCP Receiver Window Size

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:

  1. Bulk download. For example, a file download.
  2. Interactive session. For example, remote login and edit a file. For this class of application, we are interested in the performance of the interactive session in the presence of a bulk download (ie- when a bulk download is happening in the background).

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:

  1. Network level. Possible metrics include throughput, capacity, round-trip time, ...
  2. Application level. Possible metrics include download time, response time, time to complete task, ...

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:

  1. Design - describe your measurements, including: a) how you generated your workload (ie- what programs/scripts you ran and what they did); b) how many runs of each workload you performed; c) how you measured and recorded your data; d) what the system conditions were like beyond the boundary of the system you were measuring; e) and any other details you think are relevant.
  2. Setup - describe your system settings, most notably operating system version, but also your network access type. Make sure to include processor speeds, RAM, and any other hardware information that may be relevant.
  3. Analysis - depict your results clearly using a series of tables and graphs. Use appropriate data presentation techniques. Provide appropriate statistical analysis.
  4. Conclusions - Briefly describe what the results mean and what you think is happening and any subjective opinions you may have.


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 window
and 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

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.

Return to the 533 Home Page

Send all questions to (claypool at cs.wpi.edu).