In
homework 2 you would be exploring the operation of the TCP protocol. As in homework 1 all the questions in
homework 2 would also be based on traces captured on a real network. You would be using Ethereal to analyze the
traces as well as plot the characteristics of the TCP traces.
Ethereal
has tools (see Tools menu) to perform TCP stream analysis. You can click on any TCP packet and invoke
the TCP stream analysis to plot the characteristics of that TCP stream. For this homework, we would be using the time
sequence graph (Stevens), throughput graph and the RTT
(round-trip time)graph. Please make
note that the time sequence graph by default shows the relative sequence
numbers. Hence the size of data in
bytes can be directly read off the time sequence graph. Ethereal allows you to zoom in to specific
portions of the graphs. Each graph
opens along with a control window. The
control window can be used to perform various operations such as zoom in, zoom
out, change graph type, set magnification factor for zoom, use
cross-hairs. Exploring the various
options would make it easier to answer the questions.
Sending
streams between two machines connected in a LAN using the following tools have
generated all the traces. Packets were
captured using a tool called tcpdump.
The TCP and UDP streams were generated using ttcp. NistNet is an emulation tool used to
adjust network characteristics such as delay, bandwidth, drop rate etc. The traces can be downloaded from here.
1.
Load the trace file trace1.cap in
Ethereal to answer the following questions.
Sending a stream of packets for 5 second through a TCP connection opened
from orkid to orchid using ttcp generated this trace file. NistNet was used to fix the bandwidth of
orchid to be 2.88 Mbps and to introduce a delay of 10 ms from orkid to orchid.
a. Plot
the time sequence graph of the TCP stream.
How many bytes of data are transferred from the source to the
destination? How do you compute
this? What is the elapsed time for this
data transfer? Therefore, what is the
average throughput of this connection?
b. Plot
the throughput graph of the TCP stream.
What is the expected throughput of this connection? Does it match with your computation in
question a? The bandwidth of this
connection was set to 2.88 mbps. How
much of this bandwidth has been utilized? Why?
c. Plot
the RTT graph of the TCP stream.
Estimate the average delay in the network (ignore the ACK response time)
by zooming in to the graph. Using the
achieved throughput you found in 1b compute the size of the TCP send window
needed to fully utilize the channel.
Warning: The follow TCP stream does not give correct statistics because only the first 96 bytes of each packet were captured by tcpdump.
2.
Load the trace file trace2.cap in
Ethereal to answer the following questions.
Sending a stream of packets for 1 second through a TCP connection opened
from orkid to orchid using ttcp generated this trace file.
a. Look
at the time sequence graph and the packets of the TCP stream. Look at the stream of packets received in
the first 20 ms. Do you see any evidence of packets arriving out of order?
Where?
b. Look
at the same graph and the first 100 ms. How many of the packets sent during
this time was not received the first time; can you point out which ones? What is the value of TCP timeout to detect
lost packets? How do you know?
c. Look
at the same graph and the first 250 ms. Why is the stream of packets interrupted
at about 25 ms? What is the size of the
send window (in bytes) at this time?
How did you measure this?
3.
Load the trace file trace3.cap in Ethereal to
answer the following question. These packets
were captured at the sender side of the connection between orkid and
orchid. The connection was blindly
terminated after about 3.5 seconds.
From the time sequence graph, explain in a few words what happens after
the connection is severed.
4.
Load the trace file trace4.cap in Ethereal and
answer the following questions. For
this trace a stream of TCP packets were sent from orkid to orchid for 1
second. The delay from orkid to orchid
was set to be 10 ms using NistNet. The
complete Ethernet bandwidth of 10 Mbps was available between the two nodes.
a. Plot
the time sequence graph and zoom in to the first 200ms of the trace. What do you see? Give approximate sizes for the first 5 send windows and explain
your observation briefly in words.
b. Plot
the time sequence graph and look at the complete trace. The curve is not a straight line, as you
would have observed in other traces.
Instead we have 4 similarly shaped segments in the curve. What events do you believe cause these kinks
in the curve? What happens every time
this event occurs?
c. Look
at the throughput graph along with the time sequence graph. What happens to the throughput when the
events mentioned in question 4b occur?
Do you see a specific drawback of TCP?
Could you give an example scenario where the performance of TCP would
suffer enormously? Why?
5.
The traces for these questions have been taken
with two parallel streams at the same time.
These traces illustrate the bandwidth sharing features of TCP.
a. Load
the trace file trace5.cap in Ethereal and plot the time sequence graph. A second parallel TCP session was started
for duration of 8 seconds as the fist stream was sending data. Both the sessions are directed to the same
address and same port number. Why is
this possible? What is the effect of
introducing the second session to the first session? Measure the average throughput (slope) perceived by each of the
sessions at different times. What is
the ratio of bandwidth sharing between the two streams?
b. Load
the trace file trace6.cap in Ethereal and plot the time sequence graph. A second parallel UDP session sent a burst
of data for 1 second as the first stream was sending data. What is the effect of introducing the second
stream to the first session? Why does
this happen? Even though the UDP stream was sent for only 1 second, the effect
appears to have lasted for several seconds.
Assuming that the bandwidth was set to be 2.88 mbps, can you explain why
this happens?
A printed copy of the
solutions must be submitted in the class on 6th March. Students unable to attend the class may
submit a printed copy before the class commences by slipping it under the door
of Rama’s office Upson 5154. Students
are permitted to discuss the questions with each other but each student must
individually write up the solutions.
Also, the names of the discussants must be mentioned in the
submission.