Lab Exercises

Lab 1

This lab consists of collecting and analyzing several TCP packet traces. These traces should be collected using tcpdump and will demonstrate a variety of TCP behaviors.

The traces should be collected using the ttcp testing tool. On the receiving machine (normally machine 3), use

    ttcp -r -s

to start up a ttcp receiver. On the sending machine (normally machine 1), you can start up the sender using
    ttcp -t -s b-20

where the last argument is the hostname or IP address you wish to connect to. Depending on which hostname you choose, you will take one of the 6 virtual network paths which have been configured in the test network.

Prior to starting up a test, you will need to start up a tcpdump session. These traces can be collected at both the sender and the receiver (and for that matter on the router too). Both are useful, and they will show you different things. You should specify the

-i eth0
option, and may also wish to specify the
host b-20
so you only collect data on the particular connection you are using.

Once you have collected your first trace, get a feel for packet traces and TCP.

Use tcpdump -r trace -x -n | more to print out the contents of a trace file. Identify the 3-way SYN handshake. Look at the use of sequence numbers for data and ACKs. Note that the SYN and FIN each take a byte of sequence space. Note the use of delayed ACKs by the receiver.

For each trace perform the following analysis:

  1. Process the trace with tcptrace. This will produce a set of output files for use with xplot.
  2. View the output files with xplot.
  3. Find the minimum and typical RTT for each connection. This does not have to be precise.
  4. Find the average bandwidth utilization of the connection.
  5. Attempt to estimate the bandwidth available to the connection.
  6. Identify TCP performance problems with this connection, and think about possible improvements to fix these problems.

In addition to looking at the traces in the test lab, try collecting a trace to your home site. In order to do this, you'll need to install ttcp on a machine there. The source for ttcp is available on the lab machines; copy it over and give it a try!

In order to do this exercise, you will need to log in to one of the FreeBSD lab workstations. Use ssh to connect from your NT workstation to the FreeBSD machine.

For help on tcptrace, try tcptrace -h.

will produce a full set of plots for a given trace.

will plot the output. You will need to set your X DISPLAY environment variable to point to your NT workstation in order to view the plots.

You can zoom xplot by using the left mouse button to select a region. Clicking the left button unzooms one level. Middle button drags/scrolls the plot. Right button exits. Shift-Left-button produces a .PS file which you might be able to print.