Measure the performance (both latency and throughput) of TCP and UDP protocol stack running on a pair of PCs or Workstations in the Lab, and compare the results of your software with NLANR's iperf tool.
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. Report both the round-trip time for each protocoll.
To measure throughput, use UDP and TCP 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), measure how long it takes to send 1MByte of data from one PC to another (and a 1-byte application-level ACK in the reverse direction), varying the number of messages and size of each message; e.g., 256 x 4KByte messages, 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. Experiment with TCP and with different send/receive buffer sizes.
Turn in a written report (in pdf or ps version) that describes your experiments, presents your results (this means performance tables and graphs) and the comparison between your results and iperf, and draws any relevant conclusions. Also turn in source code for any test programs you develop with readme and makefile (optional).