CS 638 Lab 6: Pre-Lab

ObjectivesPre-LabProceduresPost-LabNotesWiki


Reading

ttcp man page
dummynet
Congestion Control
Flow Control
Some of the Theory behind TCP (read up to page 13)
TCP Specifics
Summary of TCP variants

Tasks

This lab is focused on understanding the behavior of TCP. As described in the overview, TCP has a variety of objectives including reliable, in order deliver of packets, flow control, congestion control, and the basic functions of the transport layer, which include multiplexing/demultiplexing between applications and the network. All of these functions combine to govern the transmission of packets between sender and receiver.

Reliability in TCP if facilitated through the transmission of ACK packets by receiver in response to data packets transmitted by the sender. Data and ACK packets include sequence numbers as a means for identification. Timeouts (and in the case of all but the Tahoe version of TCP, fast retransmit signaled by receipt of three duplicate ACKs by the sender) on the sender, trigger retransmission of lost packets. Details of reliability mechanisms in TCP can be found in the readings above.

The notion of flow control is to ensure that the sender does not transmit too many packets at a time such that packet are lost due to insufficient buffering on the receiver. Flow control in TCP is enabled by the receiver sending an explicit signal indicating the total number of bytes it can receive at a time. The receive window or RWND size is indicated during the three-way handshake packet exchange of TCP connection establishment. The total number of unacknowledged packets in flight between sender and receiver must never exceed RWND. Details of flow control can be found in the readings above.

The notion of congestion control is to make the number of unacknowledged packets in flight at any point in time sensitive to the congestion conditions on an end to end path. Specifically, the sending window is set to the minimum of the congestion window or CWND and RWND. The size of CWND is governed by a series of algorithms, the most basic of which are called Slow Start (SS) and Additive Increase, Multiplicative Decrease (AIMD). The details of these algorithms are explained in the readings and wind up being rather complex in practice. A key aspect of TCP congestion control is that congestion is signaled by lost packets i.e., if a sender identifies that a packet is lost (e.g., through timeout), it will reduce the size of CWND.

You will gain experience with TCP through observing it's behavior in several different experiments in this lab. The basic approach will be to construct a topology in Schooner, use different tools to generate traffic between end hosts and then trace this traffic using Ethereal. A non-goal of this lab is to give you experience with network programming, which is enabled through the primary network interface offered by operating systems to applications - namely, Sockets. Socket programming is an important focus of CS640 (Introduction to Networking) and CS639 (Web Programming).

Tools

In addition to the recommended readings above, you will need to refamiliarize yourself with the ethereal utility, which will be used to visualize the exchange of packets between end hosts in your experiments. Other tools you will use include:

The ttcp traffic generation utility.
The IP FireWall utility.
The Harpoon traffic generator.
The dummynet traffic shaper.
The Click Modular Router.

Topology

Two network topologies will be used in this lab:

Topology #1

This topology consists of the most simple network configuration: PC1 connected to PC2 via a single link. Use the Schooner GUI to create this topology.

Topology #2

The second topology will not be used in this lab due to time restrictions

Questions

Please enter the answers to these questions into your lab notebooks before you start the lab.

1. What is the notion of congestion control?

2. What is the notion of congestion avoidance?

3. What is the so-called "saw tooth" behavior of TCP?

4. Can the value of RWND change during a connection? Explain briefly why or why not.

5. Why is the use of a software router like Click useful for this lab?




 
 
Copyright © WAIL 2006