Background
The goal of this assignment is to experience the contrast between performing the performance analysis of a computer network through emulation (as done in assignment 1) and simulation. It is typical to assess new algorithms with simulation, and validate the simulation through a real-world or emulation study.
Motivation
Simulation is usually used for evaluating new mechanisms before they become available for emulation; also if an algorithm is theoretically intractable and if a mechanism needs large-scale validation. The latter is quite typical in industry, where an ISPs may use a high-end commercial simulator to assess the impact of a network upgrade on the overall network performance. This is probably the only drag-and-drop usage scenario for network simulators; most other uses concern testing and comparison of algorithms and involve programming.
Task
Compare the downloading performance of 2 of Linux's TCP variants using the simulator ns2
You can use your own complete installation of ns2, or you can compile and run it on one of the computers that we provide for this task.
- Adapt one of ns2's test setups (found in ns-2.34/tcl/test of your NS2 installation) to simulate the 3-machine setting used in Assignment 1. Test scripts that are meant for comparing TCP New Reno and TCP Cubic exist. Keep in mind that a download operation is characterized by an application that tries to move data as quickly as possible.
- Configure the simulation. Use a bandwidth of 10 Mbps, a latency of 100ms and no random packet loss or jitter. Note that every simulated link has latency; the total latency should be 100ms.
- Parameter 1: Select identical TCP variants on the end hosts for each test run. You must test the variants New Reno and CUBIC.
- Parameter 2: For various tests, change the queue length on both outgoing interfaces.
- Parameter 3: Measure the download performance between server and client with a varying number of concurrent TCP connection, which are used for separate concurrent downloads. Note that research indicates that you should expect interesting differences only if the number of concurrent connections is very small.
- Perform tests to answer the following 2 questions:
- How do the simulated performance results compare to the emulated performance results that you achieved in Assignment 1?
- How does the temporal detail change that answer?
- Write a report. ?Choose appropriate means of presenting the answers to these questions graphically. The report must be no longer than 6 pages.
Assignment
Solve the task in a group of two (or alone). Present your experiences and results orally in the course INF507x on September 30, 8:15. It is mandatory to write a report that in the specified format and deliver it by September 29, 8:15, using Devilry. Keep in mind that (a) it is possible to update the report until November, and (b) you will be asked to choose 4 out of 6 reports for evaluation.
It is mandatory to present your group's results on September 23 (your group must present 5 out of 6 times). You should not prepare a formal presentation (like a Powerpoint foilset); however, you must show the measurement results that are included in your report and that you discuss in class. The discussions in class are supposed to help you improve your report for final delivery. It is recommended that you have a web page or a PDF document that is web-accessible from an arbitrary computer.
Machines
To approach this assignment, you need 1 machine. ns2 runs as a process in user space and requires no virtual machines. However, its compilation depends on a variety of other tools; downloading the ns2-allinone package provides you with most of them. ns2 runs on all Unix variants; the current ns2-allinone package seems to prefer gcc-4.4 (and not the latest compiler, gcc-4.5).
When you use the machines that we provide, you must log into oslo.ndlab.net, and from there, continue via ssh to one of the simulation machines, inf5071-10 / -11 / -12 / -13 / -14 / -15. Download ns2-allinone, extract everything, but configure and compile only the ns2 subdirectory. You don't need the rest (unless you want to test graphical output with nam for your enjoyment). NOTE: When you configure ns2 on the machines that we provide, you must call
CC=gcc-4.4 CXX=g++-4.4 ./configure
The latest gcc doesn't work and we removed it from the computer.
The machines that we provide are now available. You can reserve access to them through our booking system at http://booking.ndlab.net after receiving a user ID and password. Time-sharing on these machines is possible. This will obviously not change the simulation results.
Report
The written report has up to 6 pages in ACM format (see right column). It is expect that such a report includes: a description of the assignment, a description of the testbed, an explanation of the metrics that were chosen to present the measurement results visually, graphs showing the results, an interpretation of the graphs.
The results must be based on the own tests.
The report is evaluated by writing quality, by the trustworthiness and correctness of the results. The evaluation does not consider whether related work (citations of other papers) is included. It is not necessary to cite existing work in this report.
Just a warning. I have now wasted one workday trying to build ns2 on Ubuntu 11.04. I'm probably doing something stupid, but i reccomend against doing the same mistake.
Think this did it for me(If I remember correctly):
http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.34/
sudo apt-get install gcc-4.4 g++-4.4
extract the ns-allinone-2.34 where you want it and cd into it
CC=gcc-4.4 CXX=g++-4.4 ./install
Log in to comment