# Trivial File Transfer Protocol

# Trivial File Transfer Protocol Simulator

## Protocol Description

TFTP (Trivial File Transfer Protocol) is an elementary file transfer protocol that is typically used by a discless workstation to download its bootstrap file. TFTP operates over UDP (User Datagram Protocol) and often in conjunction with BOOTP (Boot Protocol).

A client may initially issue:

- RRQ: read request, to retrieve a named file from the server
- WRQ: write request, to send a named file to the server

During data transfer, the client or server as appropriate sends:

- DATA: with data content numbered Dn, the last data being labelled Dlast
- ACK: an acknowledgement with the same number as the DATA being acknowledged
- ERROR: to send an error message due to a serious problem

DATA blocks are numbered from 1 onwards with just a name Dn for their data contents. Normally an ACK quotes this number, but in the case of WRQ an acknowledgement with number 0 is sent. All DATA blocks except the last one are full. The final block is less than the normal size, shown with contents Dlast.

The protocol is unusual in that both sender and receiver may time out. If one party does not receive a fresh DATA block after sending an ACK, it may retransmit the ACK in case it was lost. A complication is that the ACK for the last DATA may be lost. For this reason, the receiver must wait until it is satisfied that data transfer is complete. If decision "presume all transmissions over" is made prematurely, the sender will become stuck because it cannot obtain the last ACK it needs.

After completing transfer of a file, the client may start a new transfer. ERROR messages may be sent in situations such as incorrect sequence numbers or local disc errors. The full protocol allows for different modes of transfer, but the simulation supports only octet mode (the norm).

## Protocol Parameters

This simulation has no parameters.

## Protocol Simulation

The protocol simulation shows a time-sequence diagram with client and server protocol entities, and a communications medium that carries messages. The client and server exchange the messages described above, starting with an RRQ or WRQ from the client. Several files may be transferred consecutively.

Up one level to Protocol Simulators