Mini-Project #1


This page describes mini-project #1 for Computer Networks.



Being able to design network protocols to provide a service is important. For this project the student will design a simple application-level protocol, implement it, and evaluate it using both experiments and analysis. This mini-project may be completed in pairs (two students) or individually with help only to be given by the instructor.

Service

Consider a service that periodically sends an update message via the Internet to a group of registered clients. This update could be a sensor reading, a stock value, or some other small (less than roughly 20 bytes) data value. The time between updates is deterministic and is a known parameter by all clients. The service should be reliable - clients should receive all update messages. The service should easily scale to hundreds of clients. The time between messages is on the order of 10 seconds (and, as stated above, is deterministic and is known to the clients). The packet loss rate of the connection can be assumed to be less than 5%. We will call this service "UpdateService".

Requirements

The requirements are:
  1. Design the application-layer protocol for UpdateService
    1. FSMs should be used to describe the protocol design
    2. The protocol must use UDP (and not TCP) for message transport
    3. Unicast, and not broadcast or multicast, must be used for message transport
  2. Implement an UpdateService sender (the server)
    1. The message string can be a counter or time-stamp value
  3. Implement an UpdateService receiver (the client)
    1. The received message strings should be output to the screen
  4. Analyze the network utilization of the UpdateService assuming a single 64-byte packet for each update message
  5. Experimentally evaluate the UpdateService including its operation in the presence of packet loss

Deliverables

Each pair of students (or single student) will deliver the following:

Grading

Grading is as follows: Points can (and will) be deducted for sloppishness including an inability to follow the required IEEE formatting for the paper and not providing reasonable documentation for the code. The paper submission is expected to be "camera copy" quality.

Notes, advice, and hints

Some notes:
Last update on August 26, 2014