RFC 2349 DRAFT STANDARD TFTP · FILE TRANSFER · OPTIONS

TFTP Timeout/Size: TFTP Timeout Interval and Transfer Size Options

Two TFTP options for negotiating a timeout and learning a transfer's size.

On rfc-editor.org ↗
PUBLISHED
May 1998
AUTHORS
G. Malkin, A. Harkin
STREAM
Legacy
BUILDS ON
RFC 1784 — TFTP Timeout/Tsize, RFC 1350 — TFTP
TIMEOUT RANGE
1 to 255 seconds
TIMEOUT OPTION
timeout
TRANSFER-SIZE OPTION
tsize
OVERSIZE ERROR
Error code 3
DOI
10.17487/RFC2349

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                          G. Malkin
Request for Commments: 2349                                 Bay Networks
Updates: 1350                                                  A. Harkin
Obsoletes: 1784                                      Hewlett Packard Co.
Category: Standards Track                                       May 1998


            TFTP Timeout Interval and Transfer Size Options

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

Abstract

   The Trivial File Transfer Protocol [1] is a simple, lock-step, file
   transfer protocol which allows a client to get or put a file onto a
   remote host.

   This document describes two TFTP options. The first allows the client
   and server to negotiate the Timeout Interval.  The second allows the
   side receiving the file to determine the ultimate size of the
   transfer before it begins.  The TFTP Option Extension mechanism is
   described in [2].

Timeout Interval Option Specification

   The TFTP Read Request or Write Request packet is modified to include
   the timeout option as follows:

      +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+
      |  opc  |filename| 0 |  mode  | 0 | timeout| 0 |  #secs | 0 |
      +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+

      opc
         The opcode field contains either a 1, for Read Requests, or 2,
         for Write Requests, as defined in [1].

      filename
         The name of the file to be read or written, as defined in [1].
         This is a NULL-terminated field.

      mode
         The mode of the file transfer: "netascii", "octet", or "mail",
         as defined in [1].  This is a NULL-terminated field.

      timeout
         The Timeout Interval option, "timeout" (case in-sensitive).
         This is a NULL-terminated field.

      #secs
         The number of seconds to wait before retransmitting, specified
         in ASCII.  Valid values range between "1" and "255" seconds,
         inclusive.  This is a NULL-terminated field.

   For example:

      +-------+--------+---+--------+---+--------+---+-------+---+
      |   1   | foobar | 0 | octet  | 0 | timeout| 0 |   1   | 0 |
      +-------+--------+---+--------+---+--------+---+-------+---+

   is a Read Request, for the file named "foobar", in octet (binary)
   transfer mode, with a timeout interval of 1 second.

   If the server is willing to accept the timeout option, it sends an
   Option Acknowledgment (OACK) to the client.  The specified timeout
   value must match the value specified by the client.

Transfer Size Option Specification

   The TFTP Read Request or Write Request packet is modified to include
   the tsize option as follows:

      +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+
      |  opc  |filename| 0 |  mode  | 0 | tsize  | 0 |  size  | 0 |
      +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+

      opc
         The opcode field contains either a 1, for Read Requests, or 2,
         for Write Requests, as defined in [1].

      filename
         The name of the file to be read or written, as defined in [1].
         This is a NULL-terminated field.

      mode
         The mode of the file transfer: "netascii", "octet", or "mail",
         as defined in [1].  This is a NULL-terminated field.

      tsize
         The Transfer Size option, "tsize" (case in-sensitive).  This is
         a NULL-terminated field.

      size
         The size of the file to be transfered.  This is a NULL-
         terminated field.

   For example:

      +-------+--------+---+--------+---+--------+---+--------+---+
      |   2   | foobar | 0 | octet  | 0 | tsize  | 0 | 673312 | 0 |
      +-------+--------+---+--------+---+--------+---+--------+---+

   is a Write Request, with the 673312-octet file named "foobar", in
   octet (binary) transfer mode.

   In Read Request packets, a size of "0" is specified in the request
   and the size of the file, in octets, is returned in the OACK.  If the
   file is too large for the client to handle, it may abort the transfer
   with an Error packet (error code 3).  In Write Request packets, the
   size of the file, in octets, is specified in the request and echoed
   back in the OACK.  If the file is too large for the server to handle,
   it may abort the transfer with an Error packet (error code 3).

Security Considerations

   The basic TFTP protocol has no security mechanism.  This is why it
   has no rename, delete, or file overwrite capabilities.  This document
   does not add any security to TFTP; however, the specified extensions
   do not add any additional security risks.

References

   [1] Sollins, K., "The TFTP Protocol (Revision 2)", STD 33, RFC 1350,
       October 92.

   [2] Malkin, G., and A. Harkin, "TFTP Option Extension", RFC 2347,
       May 1998.

Authors' Addresses

   Gary Scott Malkin
   Bay Networks
   8 Federal Street
   Billerica, MA  01821

   Phone:  (978) 916-4237
   EMail:  gmalkin@baynetworks.com


   Art Harkin
   Internet Services Project
   Information Networks Division
   19420 Homestead Road MS 43LN
   Cupertino, CA  95014

   Phone: (408) 447-3755
   EMail: ash@cup.hp.com

Full Copyright Statement

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

ISO Plain Language

On this page
PROBLEMTFTP needed a way to agree on retransmission timing and let the receiving side learn the file size before transfer.
MECHANISMThe timeout option carries a wait interval in seconds, while tsize carries a file size in octets; an accepted option is confirmed with an OACK.
WHY IT MATTERSThe receiver can abort a transfer if a file is too large, using Error code 3. RFC 2349 obsoletes RFC 1784 and updates RFC 1350.

§1Two TFTP Options

The Trivial File Transfer Protocol (TFTP) lets a client get or put a file on a remote host. RFC 2349 describes two options: one for negotiating the timeout interval and one for telling the receiving side the transfer size before it starts.

The options are included in TFTP read-request or write-request packets, using the option extension mechanism described by RFC 2347.

The options add information to a TFTP file request. They let both sides agree on a timeout or learn the file size before transferring the file.

§2Negotiating the Timeout

The timeout option gives the number of seconds to wait before retransmitting. Its value is sent in ASCII and must be from 1 through 255 inclusive. The option name is case-insensitive.

If the server accepts the option, it replies with an Option Acknowledgment (OACK). The timeout value in the OACK must match the value sent by the client.

The client proposes how many seconds to wait before sending again. If the server accepts the option, its OACK repeats the same value.

§3Reporting the Transfer Size

The tsize option gives the file size in octets. In a read request, the client sends a size of zero and the server returns the actual size in the OACK. In a write request, the client sends the size and the server echoes it in the OACK.

If the file is too large for the receiving side, that side may abort with an Error packet using error code 3.

For a read request, the server reports the file size. For a write request, the client reports it. The receiver may stop the transfer if the file is too large.

TSIZE IN A TFTP READ REQUEST
ClientServer
  1. Read request: tsize = 0
  2. OACK: actual size
  3. Error code 3 (if too large)

§4Security Considerations

The RFC says basic TFTP has no security mechanism. The described options do not add security, but the RFC states that they do not add additional security risks.

These options do not add security to TFTP. The RFC says they also introduce no additional security risks.

§5References