CS 6390 – Advanced Computer Networks
Spring 2003
Programming Assignment
Due on
Overview
In this assignment you will design and implement a UDP-based simple (application layer) protocol to monitor loss characteristics of the network segment between given two end points. This protocol will consist of a Test Manager (TM), a Test Sender (TS) and a Test Receiver (TR). User designs a test scenario and uses the TM unit to configure the relevant TS and TR units to conduct the test and TR to collect and send the necessary feedback information back to TM unit. A test scenario may include configuring a TS unit to generate some test traffic and send it to TR unit and configure TR unit to accept this incoming traffic and generate necessary statistics about the loss characteristics. The TR should be configured to send two types of reports back to TM unit: (1) periodic reports including the average packet loss during a specified monitoring interval or (2) threshold based reporting where the TR sends an immediate loss report on detecting an average loss value within the given monitoring interval that is larger than a preset threshold value.
In configuring a test, TM needs to get various information about the test scenario that includes (1) duration of the test, (2) identities of TS and TR, (3) size of test packets in bytes and the inter-transmission delay between test packets in millisecond (the two value identifies the bandwidth overhead of the test in the network). In addition, TM needs to inform TS about the destination port number to be used and it needs to inform TR about (1) UDP port for test packets, (2) monitoring interval to calculate loss information in seconds, (3) threshold loss value in percentage, (4) reporting type – periodic or threshold based, (5) UDP port for sending the feedback reports back to TM unit.
For loss computation, you can simply compare the expected number of test packets during a monitoring interval with the actual received number of packets. You should be computing the loss value at a one second periodicity. At the beginning of the test when the test lifetime is less than the given monitoring interval, you can wait until the test lifetime is at least monitoring interval large and then start computing loss values periodically once a second.
Finally, you do not need to implement reliability for TM to TS and TM to TR communication. That is, you can assume that the configuration messages and feedback reports are always communicated reliably between the relevant entities.
Your Task
Your task in this project is mainly in two parts: (1) based on the above description, you need to identify necessary application layer protocol header formats. Note that you need to design a protocol header for TM to TS configuration message, TM to TR configuration message and TR to TM feedback reports; (2) you need to implement this protocol using C/C++.
Deliverables
(1) You need to turn in a soft copy of your protocol design details which should include the
protocol header formats with their description and a brief description of your overall
project design and implementation. (2)
You will make a demo of your project to the instructor after the due date of
the assignment. Good luck!