Assignment 2: Network Simulation using ns-2

Due: Friday, 16 November, 2007

Introduction

In this assignment, your task is to compare the performance of RED when different configuration and parameters are used, using ns-2.

Requirements

Use the simulation settings, as defined in the scripts red.tcl, droptail.tcl, and common.tcl, provided by Sally Floyd on her website as the basis of this assignment.

Sally Floyd's script provides one data point for each configuration. For this assignment, change the simulation scripts so that for each configuration, run 20 times (using different seed), and plot the average values instead.

Unless otherwise specified, use the default parameters in the script for the following experiments.

You will need to submit the following plots for this assignment.

Figure 1
Plot a figure similar to Figure 5 in the paper, except that use data from the average of 20 runs for each data point.
Figure 2, 3, and 4
Using a minimum threshold of 3, plot the changes in throughput and delay when the maximum threshold changes from 4 to 12. Also, plot how the power (defined as the ratio of throughput over delay) changes with maximum threshold.
Figure 5, 6, and 7
Using the minimum threshold of 3, 9, 15, 21, and maximum threshold of 3*minimum threshold, plot the changes in throughput and delay when weight factor wq changes from 0.001 to 0.005. Also, plot how the power (defined as the ratio of throughput over delay) changes with the weight factor wq. (Each figure should have four curves, corresponding to four values of minimum threshold).
Figure 8
Plot a figure similar to Figure 1 above to compare two versions of RED, one using geometric random variables for dropping and the other using uniform random variables (See Section 7 of the paper). You will need to modify queue/red.cc for this comparison.
Figure 9
Implement RandomDrop policy (a good place to start is to study queue/queue.{cc,h} and queue/drop-tail.{cc,h}). Compare the performance of RandomDrop to RED and DropTail using a plot similar to Figure 1 above.

For each experimental results above, think about whether it matches your intuition and understanding of how the queueing policy works. Explain the results in your report.

You should automate your experiments as much as possible. Ideally you should type a command and get a resulting plot (similar to the figure5.com script provided by Sally Floyd).

You may use any tools you like to plot the figures. I prefer gnuplot, but you may use Matlab, Microsoft Excel, xgraph (included with ns-2), or any other tools.

You may use any scripting language to automate your simulation (shell scripts, awk, Perl, Tcl, Python, Ruby, Lua, etc.).

You may modify Sally Floyd's scripts as needed (for example, simplify the output format) but please do not change the simulation setup (e.g., link delay, number of nodes, TCP windows) unless it is required by the assignment.

Deliverable

You should submit a report (hardcopy, maximum 10 pages, single space, 11-pt font) that includes,

  • Figure 1 to 9 above
  • Analysis of why the figures looks the way they are (you may include additional plots to help you explain the results).

In addition, you need to submit into IVLE workbin, a zip or tar.gz file containing

  • a softcopy of your report
  • all your scripts (ns-2 scripts, post-processing scripts, plotting scripts) necessary to recreate the experiments.
  • a README file explaining how to recreate your experiments.
  • changes to ns-2 that you made.
PLEASE DO NOT SUBMIT THE WHOLE ns-2 SUBDIRECTORY. If you do, you automatically get 20 marks off the assignment.

Team

You should work in team of two for this assignment. It needs not be the same team as Assignment 1.

Assessment

I will evaluate the assignment based on the following.

  • Correctness (50%) -- Correct implementation of RandomDrop, implementation of RED variations, and running of simulations.
  • Analysis (40%) -- Analysis of the results you presented.
  • Automation (10%) -- How automated your simulation experiments are.

Useful Links

  • ns-2 homepage
  • ns-2 manual