OS Options: Must run on CSEE shell servers
- Part 1: TFTP Server[60 points total]: Construct a TFTP server. The server
needs to process RRQ and WRQ TFTP commands. The server must be concurrent and
only support the "octet" transfer mode. This part breaks down into
the following pieces.
- A [30 points]: Mechanism to check a TFTP message to see if
it is a correct RRQ or WRQ (octet mode, file that it can access/create, etc.). If not,
it must send an appropriate TFTP Error message back to the client. This mechanism
must create a second UDP socket to perform the actual transfer with
to allow the main socket to be free to handle other connections. The
mechanism here will need to open/create the requested file and send a TFTP
message to the client on this new socket as dictated by the TFTP specification.
- B [15 points]: Mechanism to manage the RRQ transfer. It must open
the requested file and send each block of the file as TFTP specifies for RRQ transfers.
It must send a TFTP Data message, wait for an ACK for 1 second, then
send the TFTP Data message again if not received. If the same
data message is sent 10 times, the transfer should be aborted.
- C [15 points]: Mechanism to manage the WRQ transfer. It must create
the request file and write each block of the file as TFTP specifies for WRQ transfers.
It must send a TFTP ACK message for each TFTP Data message it receives
and must detect the end of the file correctly and close the file.
If 10 seconds goes by without seeing a TFTP Data message after sending
a TFTP ACK message, then the transfer should be aborted.
- Testing of TFTP Server: You may use the
tftp application on the
shell servers to test your TFTP server.
- Part 2: Protocol Research Paper[40 points total]: Research the various protocols, architectures,
and approaches taken by various peer-to-peer and file sharing technologies. For each, describe it in detail. You should
describe the basic architecture and protocol operation and cite the source material you can find. You should
include as much information as a reader would need to know to have a good working knowledge of how it functions.
You should also describe the pros and cons of each technology in relation to the other approaches. Your document
should be in text or PDF format. Word documents will NOT be accepted.
Notes: Your submissions must at least compile before any credit will be given. Submissions that do not compile will not be graded. Submissions submitted after the due date will not be graded. All work must be your own original work. To get partial credit for parts of the assignment, you must demonstrate that those pieces work by themselves. If you share code with others, you will be given a 0 for the assignment. This assignment set is worth 18% of your total grade.
- TFTP Specification (RFC 1350) at
http://www.ietf.org/rfc/rfc1350.txt
Todd L. Montgomery (revised 10.26.2006)