CS 638 Lab 6

Students will be gain experience with with the transport layer and the Transport Control Protocol (TCP)
ObjectivesPre-LabProceduresPost-LabNotesWiki


Lab 6 Introduction

This lab focuses on the transport layer (layer 4) and the Transport Control Protocol (TCP). The transport layer plays a critical role in networking since unlike layers 1 - 3, transport is the first layer that has any notion of an end-to-end connection, i.e., communication between end hosts. While TCP is the dominant transport protocol is use in the Internet today, it is not the only tranport protocol - the other commonly used transport is the User Datagram Protcol (UDP).

The basic capability that is provided by the transport layer is multiplexing/demultiplexing between the network layer and applications (since multiple applicaitons may require the network at the same time). The mechanism use to enable multiplexing/demultiplexing is port numbers - which are associated with applications. Like the layer below, packets passed down from applications are encapsulated with a transport layer header that specifies the port number of both the source and destination application. UDP headers do not include much more information than port numbers, while TCP headers have a good deal of additional information.

TCP offers a variety of functions beyond multiplexing/demultiplexing. These include connection management, flow control, congestion control and guarantee reliable, in-order delivery of packets. Guaranteed delivery of packets (obviously desirable for most applications) is enabled through acknowledgement packets (ACKs) returned by the receiver, and timeout and other mechanisms on the sender that will trigger resending of packets presumed to be lost in the network. Congestion control is a compelling capability added to TCP in 1989 by Van Jacobson. It modulates the transmission of packets by the sender such that if congestion in the network is identified (through lost packets), the sending rate is significantly reduced. This enables the network to recover from congestion and resume stable operation. Since 1989, many new congestion control algorithms have been suggested, but the dominant versions in use to day are still largely based on Jacobson's algorithms.

Students will be introduced to the basic concepts of the transport layer, and will conduct experiments that demonstrate several different features of TCP. TCP is a protocol that is implemented in operating systems that run on end hosts, and is not typically realized on devices that reside within the network (i.e., on paths between end hosts). This means that source code for TCP implementations is accessable and can be examined by you directly (e.g., in Linux or BSD), unlike other protocols that we have studied thus far. Expertise in TCP - at least in terms of how it behavies - is important since the protocol plays such a critical role for both applications and in managing congestion in the network.

This lab will be conducted entirely via Schooner. A number of new tools and utilities will be introduced in this lab, including the Click Modular Router and the Harpoon traffic generator. This lab will be less complex but is due at the same time as Lab #7 so please start early. Lab #6 will be the only lab in which transport and TCP are covered, so if you would like to experiment with transport in other ways, please see Prof. Barford for ideas.


Objectives

  • Become familiar with basic transport layer concepts.

  • Become familiar with sliding window-based flow control.

  • Observe how the Reno and Vegas versions of TCP manage congestion.

  • Gain experience with the Click Modular Router and the Harpoon traffic generator.


 
 
Copyright © WAIL 2006