Extra Credit Available: up to 15% onto final grade
- TFTP Server: Construct a TFTP server. The server
needs to only support read requests of files. The server must be concurrent and
only support the "octet" transfer mode. This part breaks down into
the following two pieces.
- A [40 points]: Mechanism to check a TFTP message to see if
it is a correct RRQ (octet mode, file that it can access, 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 TFTP
messages to the client on this new socket as dictated by the TFTP specification.
- B [60 points]: Mechanism to manage the RRQ transfer. It
must send a TFTP Data message, wait for an ACK for 1 second, then send
the TFTP Data message again if an ACK is not received. If the same data message
is sent 10 times without reception of an ACK, the transfer should be
aborted. The server must continue operation normally after an aborted
transfer.
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.
Todd L. Montgomery (revised 03.9.2005)