Princeton University
Computer Science Dept.

Computer Science 461
Distributed Computing and Networking

Spring 1999
 

Assignment 1

Due: February 16, 1999

Using the Getting Started with the x-kernel document as a guide, configure an instance of the x-kernel that includes TCP, UDP, IP, ICMP, ARP, VNET, ETH, and SIMETH. The x-kernel is installed on the Department file server in directory /xkernel. Run the resulting kernel on a pair of Linux PCs. Measure the latency and throughput of UDP and TCP on this platform.

To measure round-trip latency, use UDP and TCP to send and receive messages of size 1-byte, 100-bytes, 200-bytes, 300-bytes, ..., and 1000-bytes.

To measure throughput, use UDP and TCP to send messages of size 1KByte, 2KBytes, 4KBytes, 8KBytes, 16KBytes, and 32KBytes in one direction, with a message of the same size echoed back in the reverse direction.

As a second measure of TCP throughput (this does not apply to UDP), write your own test program to measure the time it takes to send 1MByte of data from one machine to another (and a 1-byte ACK in the reverse direction), varying the number of messages and size of each message; e.g., 512 x 2KByte messages, 1024 x 1KByte messages, 2048 x 512-byte messages, and so on. Measure enough combinations to discover TCP's performance limits.

Some hints and suggestions:

The report you turn in should describe your experiments and summarize your results. It should include three performance graphs: one for UDP/TCP latency, one for UDP/TCP throughput using the first throughput test, and one for TCP throughput using the second throughput test. Also turn in the test program and configuration files that you used.