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:
During data transfer, the client or server as appropriate sends:
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).
This simulation has no parameters.
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