TFTP: Trivial File Transfer Protocol

You are probably familiar with FTP, the File Transfer Protocol. TFTP is a much simpler protocol for transferring files between machines. One use of TFTP is when a machine boots up and needs to get a file from another machine (e.g., the Axil stations in the JCT UNIX lab).

This page contains links to information about TFTP, since you will be required to write a TFTP server.


RFC 1350 is the document describing the protocol. 'RFC' stands for 'Request For Comments'; most/all of the standard TCP/IP protocols are described in an RFC. If you prefer, read the RFC in French.

In addition, we have the other RFCs related to TFTP. You will probably not need them for this lab, but I am including them in case you are interested:

RFC 906
Bootstrap loading using TFTP.
RFC 1785
TFTP Option Negotiation Analysis.
RFC 2090
TFTP Multicast Option.
RFC 2347
TFTP Option Extension.
RFC 2348
TFTP Blocksize Option.

TFTP Clients

There are TFTP clients that you can use to test the server you write. There is one called atftp (or just tftp) on the UNIX lab workstations. The 'a' stands for advanced; it supports various extensions to TFTP (see the RFCs above).

The client in interactive. Inside the command, you'll probably want to run the following commands:

There is also a client on host beitza. This is a different version of the client, but the user interface is almost the same. The advantage of the beitza client is that you can type abbreviations of the above commands.

If you want to get a feel for using TFTP, there is a TFTP server running on host p-roman. You can read the file r-00, r-01, and r-02. You can write to the files w-00, w-01, ..., w-19. You can also read these files, so you can check the write was done correctly.

The TFTP Server Project

Your project is to write a TFTP server. Click here for information about the project.

Edit History

2001/05/15, 22 Iyar 5761, Haim Roman
  1. Updated info about the TFTP clients.
  2. Added link to info about project.
  3. Deleted info about the instructors. It was out of date. We'll provide that info in one place: the lab's home page.
1998/12/03, 14 Kislev 5759, Haim Roman