Trivial file transfer protocol

This topic includes the following information about Trivial file transfer protocol (TFTP):

TFTP is installed in the /usr/lpp/tcpip/sbin/ directory.

The TFTP server uses well-known port 69. The TFTP server has no user authentication. Any client that can connect to port 69 on the server has access to TFTP. If the TFTP server is started without a directory, it allows access to the entire z/OS® UNIX. To restrict access to the z/OS UNIX, start the TFTP server with a list of directories.

Following are the parameters used for the tftpd command:
-l
Logs all the incoming read and write requests and associated information to the system log. Logged information includes the IP address of the requester, the file requested, and whether the request was successful.
-p port
Uses the specified port. The TFTP server usually receives requests on well-known port 69. You can specify the port on which requests are to be received.
-t timeout
Sets the packet timeout. The TFTP server usually waits 5 seconds before presuming that a transmitted packet has been lost. You can specify a different timeout period in seconds.
-r maxretries
Sets the retry limit. The TFTP server usually limits the number of retransmissions it performs because of lost packets to 5. You can specify a different retry limit.
-c concurrency_limit
Sets the concurrency limit. The TFTP server spawns both threads and processes to handle incoming requests. You can specify the limit for the number of threads that can be concurrently processing requests under a single process. When the limit is exceeded, a new process is spawned to handle requests. The default is 200 threads.
-s maxsegsize
Sets the maximum block size that can be negotiated by the TFTP block size option. The default is 8192.
-f file
Specifies a cache file. You can specify a file containing information about files to be preloaded and cached for transmission. A cache file consists of one or more entries. For clarity, place each entry on a separate line. An entry has the form:
a | b  <pathname> 

where:

  • a indicates that the specified file is cached in ASCII form. The file is preconverted to NETASCII format.
  • b indicates that the specified file is cached in binary form, with no conversion.

Following are examples of cache file entries:

a  /usr/local/textfile
b  local/binaryfile

If a relative pathname to the file is specified, the TFTP server searches the specified directories for the file.

The cached version of a file is only used for requests requiring the specified format. For example, the binary cached version of a file is not used in satisfying a request for the file in netascii format. If a file is to be retrieved in both binary and ASCII formats, the user must specify that two copies of the file be cached with one in binary format, and the other in NETASCII format.

Caching is not dynamic. The cache files are read in when the TFTP server is started and are not updated, even if the file on disk is updated. To update or refresh the cache, the TFTP server must be recycled.

-a archive directory
Specifies an archive directory. The files in this directory and its subdirectories are treated as binary files for downloading. This option is useful on EBCDIC machines that act as file servers for ASCII clients. Multiple -a options can be specified; one directory per -a option. Directories must be specified as absolute pathnames. You can specify no more than 20 directories.
directory
Specifies an absolute pathname for a directory. You can specify no more than 20 directories on the tftpd command line.

If the TFTP server is started without a list of directories, all mounted directories are considered active.

If a list of directories is specified, only those specified directories are active. That list is used as a search path for incoming requests that specify a relative pathname for a file.

Activating a directory activates all of its subdirectories.

For a file to be readable by the TFTP server, the file must be in an active directory and have world (other) read access enabled. For a file to be writable by the TFTP server, the file must already exist in an active directory and have world (other) write access.

-b IP address
Uses the specified IP address. The TFTP server usually binds to in6addr_any or inaddr_any. You can specify the IP address on which requests are to be received. TFTP requests that come in on other IP addresses are not accepted by this instance of TFTPD.

The TFTP server preforks a child process to handle incoming requests when the concurrency limit is exceeded. Consequently, immediately after starting the TFTP server, two TFTP processes exist.

In case of a flood of concurrent TFTP requests, the TFTP server might fork additional processes. When the number of concurrent requests being processed drops below the concurrency limit, the number of TFTP processes is decreased back to two.