CS 558 - Computer Networks
Homework 4 - RTT unfairness
Due: See class webpage.
1. Performance Analysis of TCP using NS
In this project, you will use the NS simulator to study the performance
of the TCP Tahoe and TCP Reno protocol in a network configuration.
Construct the following network in NS:
- Make sure you create 5 TCP sinks !!!
- All TCP sources begin transmitting at time 0.01 sec.
- Run the similation using:
- All TCP connections using TCP Tahoe, and
- All TCP connections using TCP Reno
- Make each simulation run for 500 sec.
- Plot the Congestion Window Size of each TCP connection
in every 0.1 sec, for both TCP Tahoe and TCP Reno in a separate plot.
(You will have 10 plots, each plot will have 1 line graphs
corresponding to the CWND of each TCP connection).
- Plot the average throughput (not goodput)
of each TCP connection
in every 0.5 sec, for both TCP Tahoe and TCP Reno.
(You will have 10 plots, each plot will have 1 line graphs
corresponding to the CWND of each TCP connection).
Also, enter the average throughput for each flow in the corresponding
entry in the answer page
- NOTE:
Use the following network parameters in the simulation:
- Queue length of each link is 10 (packets)
- TCP's window_ value is 100000
- TCP's packetSize_ value is 552
2. Making plots from performance data
In this project, you need to gather data and plot it as an XY graph.
There is a very useful free plotting tool called gnuplot.
In order to make an XY plot, you need a data file containing (X,Y)
data points in the following format:
x1 y1
x2 y2
x3 y3
x4 y4
.. ..
When the data file is created, you can make an XY plot from the data
in the file using the following command:
plot "data-filename" using 1:2 title "Title" with lines 1
You need to obtain the plots in gif format to compile
a report in HTML (we will use the web-browser's built-in
capability to display figures).
See the following webpage on how to use gnuplot to
create plots in gif format:
3. Help Files
I have prepared a standard solution file that you can
use to show the plots (it's easier for me to grade
if everyone's solution look alike)
Here's how to get a copy of the skeleton file (and store
it in the right place):
- Create a directory named hw4 in your cs558
project directory (~/cs558/hw4)
- Copy the following file into the directory
~/cs558/hw4:
RIGHT click on this link and SAVE
After you have saved it in your
~/cs558/hw4 directory, you can take a look at the
HTML file using your browser (you must do this on
a local machine -
it is NOT accessible over the Internet
(it needs to remain private for obvious reasons).
Type this link in a web-browser:
file:/home/YOURID/cs558/hw4/hw4-RTT-ans.html
|
You should see the solution page with 20
missing
figure (gif files).
You need to make the following gif files:
- TCP-0-Tahoe-CWND.gif,
TCP-1-Tahoe-CWND.gif,
TCP-2-Tahoe-CWND.gif,
TCP-3-Tahoe-CWND.gif, and
TCP-4-Tahoe-CWND.gif:
plots the Congestion Window Size of each of the 5 TCP connections
for TCP Tahoe
- TCP-0-Reno-CWND.gif,
TCP-1-Reno-CWND.gif,
TCP-2-Reno-CWND.gif,
TCP-3-Reno-CWND.gif, and
TCP-4-Reno-CWND.gif:
plots the Congestion Window Size
of each of the 5 TCP connections
for TCP Reno
- TCP-0-Tahoe-TPut.gif,
TCP-1-Tahoe-TPut.gif,
TCP-2-Tahoe-TPut.gif,
TCP-3-Tahoe-TPut.gif, and
TCP-4-Tahoe-TPut.gif:
plots the throughput of each of the 5 TCP connections
for TCP Tahoe
- TCP-0-Reno-TPut.gif,
TCP-1-Reno-TPut.gif,
TCP-2-Reno-TPut.gif,
TCP-3-Reno-TPut.gif, and
TCP-4-Reno-TPut.gif:
plots the throughput of each of the 5 TCP connections
for TCP Reno
And enter the
average throughput
for each of the flows.
4. TCP Protocol Agents
- The OTcl class that implements TCP Tahoe is called
Agent/TCP (the base class of TCP, most TCP
protocols are built on top of Tahoe)
- The OTcl class that implements TCP Reno is called
Agent/TCP/Reno
5. Turn in
You must turn in the following items.
- Make an HTML page at the location:
file:///home/YOURID/cs558/hw4/hw4-RTT-ans.html
Replace YOURID with your Emory ID
|
that contain the 4 performance plots (see assignment above).
You don't need to turn in this webpage - all you need to do
is make the 4 GIF plots.
The URL file:///home/YOURID/cs558/hw4/hw4-RTT-ans.html
is the URL that I will enter into the browser when I grade
HW2.
YOU should try to enter this URL into a browser FROM a workstation in Emory
(it's a FILE URL,
so it won't work from outside through Internet,
you have to be on Emory's file system - good thing
too, if you can access it through the Internet,
your homework assignment would be accessible
by other students :-))
- The NS script (TCL script) that you used to obtain the performance data
for TCP Tahoe.
This file must be named as Tahoe.tcl
and must be turned in as hw4:
/home/cs45500/turnin Tahoe.tcl hw4
- The NS script (TCL script) that you used to obtain the performance data
for TCP Reno.
This file must be named as Reno.tcl
and must turned in as hw4a:
/home/cs45500/turnin Reno.tcl hw4a