Jörn Altmann Page 1 2/26/2003

Project 2 Description, EECS 122 Spring 2003

Project is due at noon on Tuesday, March 18th, 2003.

This document describes the simulation project that you have to complete. The project requires a good understanding of QoS control mechanisms that can be used to improve the service quality of a network. The mechanisms that are considered in this project are TCP flow control, router congestion control, and application QoS control. You have to simulate different scenarios in which control mechanisms are applied at different protocol levels and locations (end systems or network). You also have to analyze different aspects of the control mechanisms as well as their interference with each other.

Updates and Q&A summaries can be found at http://www.eecs.berkeley.edu/~ct-ee/ee122/proj2.html.

Project Deadlines

The submission of the solutions has to be done via the online submission system. The submission deadline is at noon on Tuesday 3/18/2003. Information about the submission procedure can be found at http://inst.eecs.berkeley.edu/for-instructors.html (then go to “Student Accounts” and
”Submit Homework on-line”).

Each group will need to sign up for an evaluation meeting lasting 15 minutes. The sign up period is between Monday, 03/03/2003 and Friday, 03/07/2003. There will be a sign-up list available at 301 Cory.

Grading Procedure

The grading of the project will be based on an evaluation of your written, submitted report and an interview that your group (2 people) will hold with the TAs. In this meeting, you will be asked to explain the effects of the control mechanisms shown in the graphs and that you described in your report. The maximum number of points is based on the information provided in your report. We will subtract some points if you can not answers related to the information provided in your report.

Total number of points for the simulation project: 10%

2% written reports with graph printouts

8% Explanation/Understanding of graphs

8% Explanation/Understanding of graphs

2% Explanation and Understanding of graphs of task 1

2% Explanation and Understanding of graphs of task 2

1% Explanation and Understanding of graphs of task 3

1% Explanation and Understanding of graphs of task 4

2% Explanation and Understanding of graphs of task 5

2% Explanation and Understanding of graphs of task 6

We will ask questions about the graphs showing the simulation results of all six tasks. Everyone in the group should know the mechanisms and effects shown in the graphs. We may pick any of the graphs and ask questions to anyone in the group. Inability to answer these questions will result in lower evaluation. It is a good idea to discuss the graphs with your partners and help one another understand the issues and basic ideas.

Requirements

The project requires little understanding of ns2 (network simulator) and tcl programming. Tcl scripts and gnuplot scripts are provided for the first six tasks. You are required to answer basic question about how the parameter and values of TCP or UDP flows as specified within the Tcl scripts. The optional task 7 requires Tcl script programming.

You have to download all six Tcl scripts from the website http://www-networking.eecs.berkeley.edu/~altmann/lectures/ee122/ee122projects.html . You also have to download the corresponding gnuplot scripts from the same website. Store the Tcl script and the gnuplot script in the same directory on your computer. Afterwards, you can start the simulation by typing, for example, “ns project2_task1.tcl.” After the simulation run, you will find several new files in the same directory: project2_task1.nam is the output file, which will be read by nam (animator); The remaining files (such as project2_task1_gpout1.tr) are tracefiles, which will be read by gnuplot to generate the graphs. You can start gnuplot independently from ns by typing for example “gnuplot project2_task1_gpout1.tr”. nam can be started by typing, for example, “nam project2_task1.nam”.

Description of Tasks

This section describes the six tasks that you have to solve. The tasks require understanding of end-to-end control mechanisms, router control mechanisms, and application control mechanisms. You have to prepare a report explaining the graphs of task1 to task6. Your explanation has to address three areas: the description of effects and mechanisms seen, a discussion of the advantages and disadvantages of the observed behavior, and a suggestion for an improvement. The question below are just a help for you to analyze the graphs.

Task 1: Analyze the behavior of TCP Tahoe under different system load.

You need to run a Tcl script (project2_task1.tcl) that generates three graphs showing the behavior of a TCP flow under different background traffic. Throughput and packet loss are shown as a function of time. The measurements are made at node0 and at node2 of the simulated network (see figure below). You have to explain all the graphs in a written report. In your report, you have to address the following questions about Graph 1.1, Graph1.2, and Graph1.3:

  1. What is happening in the beginning (0 to 0.5 seconds time interval) of the TCP flow?
  2. How is the capacity of the link (link2-3) between node2 and node3 shared among the flows in the time interval 1 to 4 seconds?
  3. What can be observed in the time interval 4 to 4.5 seconds?
  4. What can be observed in the time interval 4.5 to 6 seconds?
  5. What can be observed in the time interval 6 to 9 seconds? How is the capacity split between the TCP flow and the UDP flows?
  6. Although a 9Mbps UDP flow starts at 9seconds, a change in the behavior can only be observed with a delay. Why?
  7. How is the capacity split up between the different flows over time? Give an explanation.
  8. What can be observed in the time interval 9 to 14 seconds?
  9. What can be observed in the time interval 14 to 16 seconds?
  10. Compare the number of lost packets of the UDP flows and the TCP flow in Graph1.2 and Graph1.3. Why do they differ that much?

The propagation delay of each link of the simulated network is 10ms. All links have a capacity of 10Mbps. The network that you simulate looks as follows:


The following events happen during the simulation (tcl script notation):

1.  $ns at 0.0 "$ftp start" #TCP flow sends data at max 4Mbps ((max window size times packet size) / RTT) between node0 and node3

2.  $ns at 1.0 "$cbr0 start" #start a UDP flow at constant bit rate (CBR) between node0 and node3 at 2Mbps.

3.  $ns at 2.0 "$cbr0 stop" #stop flow

4.  $ns at 2.0 "$cbr1 start" #start a UDP flow at constant bit rate (CBR) between node0 and node3 at 4Mbps.

5.  $ns at 3.0 "$cbr1 stop" #stop flow

6.  $ns at 3.0 "$cbr2 start" #start a UDP flow at constant bit rate (CBR) between node0 and node3 at 6Mbps.

7.  $ns at 4.0 "$cbr2 stop" #stop flow

8.  $ns at 4.0 "$cbr3 start" #start a UDP flow at constant bit rate (CBR) between node0 and node3 at 8Mbps.

9.  $ns at 9.0 "$cbr3 stop" #stop flow

10.  $ns at 9.0 "$cbr4 start" #start a UDP flow at constant bit rate (CBR) between node0 and node3 at 9Mbps.

11.  $ns at 14.0 "$cbr4 stop" #stop flow

12.  $ns at 16.0 "$ftp stop" #stop flow

Task 2: Analyze the different flavors of TCP

You need to analyze flows of different flavors of TCP (Tahoe, Reno, Vegas) and explain how the behavior differs. You need to run a Tcl script (project2_task2.tcl) that generates a graph showing the throughput of TCP Tahoe, TCP Reno, and TCP Vegas. A report has to be written, comparing and explaining the different behavior. In your report, you have to address the following question:

  1. Which events are shown in Graph2.1?
  2. How does the behavior of the TCP versions differ?
  3. Graph2.2 shows the window size. Which congestion control mechanisms can you recognize? Please explain.
  4. Why are the curves of the queue size of node2 different? Please explain Graph2.3.

The propagation delay of each link of the simulated network is 10ms. The network that you simulate looks as follows:


The following events happen during the simulation (tcl script notation):

1.  $ns at 0.0 "$ftp1 start" #TCP Tahoe flow sends data at max 4Mbps between node0 and node3

2.  $ns at 4.0 "$ftp1 stop" #stop flow

3.  $ns at 5.0 "$ftp2 start" #TCP Reno flow sends data at max 4Mbps between node1 and node3

4.  $ns at 9.0 "$ftp2 stop" #stop flow

5.  $ns at 10.0 "$ftp3 start" .#TCP Vegas flow sends data at max 4Mbps between node1 and node3

6.  $ns at 14.0 "$ftp3 stop" #stop flow

Task 3: Analyze how TCP Tahoe splits the available bandwidth according to the RTT

You need to run a Tcl script (project2_task3.tcl) that generates a graph showing how two TCP flows with different round trip times split the available capacity according to the round trip time (RTT). You have to prepare a reportexplain the graph in a report. In your report, you have to answer the following questions about Graph 3.1:

  1. Do the two TCP flows interfere with each other?
  2. How is the reason for the low bandwidth allocation of one TCP flow?
  3. How could this problem be resolved?

The link capacity of all links is 10Mbps. The network that you simulate looks as follows:


The following events happen during the simulation (tcl script notation):

1.  $ns at 0.0 "$ftp1 start" #TCP Tahoe flow sends data at max 4Mbps between node1 and node3.

2.  $ns at 4.0 "$ftp2 start" #TCP Tahoe flow sends data at max 4Mbps between node0 and node3

3.  $ns at 10.0 "$ftp2 stop" #stop flow

4.  $ns at 10.0 "$ftp1 stop" #stop flow

Task 4: Analyze the correlation between access speed and throughput

You have to examine how TCP allocates capacity to users with different access speeds to the Internet. You need to run a Tcl script (project2_task4.tcl) that generates a graph showing the throughput of two TCP flows with different access link capacity. In your report, you have to address the following questions about Graph 4.1:

1.  Why is the throughput of the TCP flow in the time interval 0 and 4 less than 4 Mbps?

2.  What is the ratio of the allocated capacity between the two flows?

3.  Does TCP split the capacity in a fair way?

4.  Can this behavior be suppressed?

The propagation delay of all links is 10ms. The network that you simulate looks as follows:


The following events happen during the simulation (tcl script notation):

1.  $ns at 0.0 "$ftp1 start" #TCP Tahoe flow sends data at max 2Mbps between node1 and node3.

2.  $ns at 4.0 "$ftp2 start" #TCP Tahoe flow sends data at max 4Mbps between node0 and node3

3.  $ns at 10.0 "$ftp2 stop" #stop flow

4.  $ns at 10.0 "$ftp1 stop" #stop flow

Task 5: Analyze how a router with congestion control mechanisms (RED) can improve service quality

The service quality of the network can be improved if routers have congestion control mechanisms such as RED, CBQ, FQ, etc. implemented. For this task, you have to analyze the behavior of ECN enabled TCP flows if a router supports RED. You have to run a Tcl script (project2_task5.tcl) that generates three graphs (Graph5.1, Graph5.2, Graph5.3) showing how the throughput, window size, and queue size of three TCP flows (Tahoe, Reno, Vegas) changes. You have to prepare a report explaining the graphs. Please address the following questions?

  1. How can you explain the differences to Graph2.1, Graph2.2, and Graph2.3?

The propagation delay of all links is 10ms. The network that you simulate looks as follows:


The following events happen during the simulation (tcl script notation):

1.  $ns at 0.0 "$ftp1 start" #TCP Tahoe flow sends data at max 4Mbps between node0 and node3

2.  $ns at 4.0 "$ftp1 stop" #stop flow

3.  $ns at 5.0 "$ftp2 start" #TCP Reno flow sends data at max 4Mbps between node1 and node3

4.  $ns at 9.0 "$ftp2 stop" #stop flow

5.  $ns at 10.0 "$ftp3 start" .#TCP Vegas flow sends data at max 4Mbps between node1 and node3

6.  $ns at 14.0 "$ftp3 stop" #stop flow

Task 6: Analyze how an application can improve quality of service

An application (e.g. web browser) can improve the service quality by opening several TCP connections at a time instead of just one. The Graph6.1, which has be generated by using Tcl script (project2_task6.tcl), shows the performance improvement of such an approach. Non-altruistic Internet users can benefit from this approach, resulting in slower performance for somebody else. In your report, you have to address the following questions.

  1. How much is the improvement?
  2. How can such an unfair behavior be avoided?

The capacity of all links is 4Mbps and their propagation delay is 10ms. The network that you simulate looks as follows:


The following events happen during the simulation (tcl script notation):

5.  $ns at 0.0 "$ftp5 start" #TCP Tahoe flow sends data at max 4Mbps between node0 and node3.

6.  $ns at 0.0 "$ftp1 start" #TCP Tahoe flow sends data at max 4Mbps between node1 and node3

7.  $ns at 0.0 "$ftp2 start" #TCP Tahoe flow sends data at max 4Mbps between node1 and node3

8.  $ns at 0.0 "$ftp3 start" #TCP Tahoe flow sends data at max 4Mbps between node1 and node3

9.  $ns at 0.0 "$ftp4 start" #TCP Tahoe flow sends data at max 4Mbps between node1 and node3

10.  $ns at 10.0 "$ftp4 stop" #stop flow

11.  $ns at 10.0 "$ftp3 stop" #stop flow

12.  $ns at 10.0 "$ftp2 stop" #stop flow

13.  $ns at 10.0 "$ftp1 stop" #stop flow

14.  $ns at 10.0 "$ftp5 stop" #stop flow

Optional Task 7:

Modify the Tcl script of task 6 such that there are four TCP flows from node0 to node3. How will the Graph change?

Graphs:

Task1: