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:
Design the application-layer protocol for UpdateService
FSMs should be used to describe the protocol design
The protocol must use UDP (and not TCP) for message transport
Unicast, and not broadcast or multicast, must be used for message transport
Implement an UpdateService sender (the server)
The message string can be a counter or time-stamp value
Implement an UpdateService receiver (the client)
The received message strings should be output to the screen
Analyze the network utilization of the UpdateService assuming a
single 64-byte packet for each update message
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:
A maximum five-page paper written in IEEE conference paper format and
style describing your protocol design, implementation, experimental evaluation,
analysis, related work, conclusions, and list of references. The final paper
must be submitted as a PDF file.
The Word template for IEEE Computer Society conference papers is
here.
The source code for the client application in buildable form (so
that the results can be reproduced).
A brief demonstration of the project showing client registration,
receiving (and display) of periodic messages sent by the server, and
recovery of lost messages.
Grading
Grading is as follows:
Design of the protocol -- 25 points
Implementation of the protocol (including demo) -- 25 points
Experimental evaluation of protocol overhead -- 20 points
Analysis of protocol overhead -- 20 points
Related work and references -- 5 points
Conclusions -- 5 points
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:
To make the protocol design tractable you will need to make some
assumptions. Be sure that your assumptions are necessary, reasonable,
and justifiable.
You may need to emulate packet loss to be able to validate (and also
demonstrate) that you can recover lost messages.
Be sure to carefully identify the factors and factor levels for the
experimental design.