READINGS IN ECSE

ECSE-6140

Professor S. Kalyanaraman

 

Final Report

TCP/IP Congestion Management

 

Submitted by: Darren Challey

May 1, 2000


Introduction

Two methods have been proposed by S. Kalyanaraman and D. Harrison in Reference (4) for improving congestion control in TCP/IP. One method requires core support and the second method only requires ingress and egress node support. This report details the tools which were written to support testing of the algorithms which were written by the other team members: Amit Shenoy and Karan Gupta. The specification for what was needed was provided by the project leader David Harrison.

Downloads:

  1. UDP Client Source Code “UDP_cli.c
  2. UDP Server Source Code “arr_serv.c
  3. UDP Server Source Code “delta_serv.c
  4. Header File “dc_const.h
  5. Assembly Language Source Code “rdtsc.s” for accessing processor clock cycles

References:

  1. Stevens, “UNIX Network Programming”
  2. Pitts and Ball, “Red Hat Linux 6 Unleashed”
  3. Aitken and Jones, “Teach Yourself C in 21 days”
  4. Harrison and Kalyanaraman, “ Edge-to-Edge Traffic Control ... for the Internet

Software Functionality Overview

UDP packets are constructed and sent by UDP_cli.c to a specific IP address which is specified in the header file dc_const.h. The number of consecutive UDP packets sent is determined by the “LOOP” parameter in the header file. Each UDP packet is “time stamped” with the current time on the sending machine. The flood of UDP packets are sent through the shaper to be tested or across a bottleneck. There are two options for servers to receive these packets.

Server Option 1:

The first option is to establish the server arr_serv.c on the target machine. This server will calculate interarrival times for the UDP packets as they are received at the target machine. The interarrival time corresponds to the time between each successive packet received in terms of the clock on the target machine.

Figure 1 Interarrival Time Calculation used in arr_serv.c

The output from arr_serv.c to the screen is: