File Transfer Protocol
RFC 959

Document Type RFC - Internet Standard (October 1985; Errata)
Obsoletes RFC 765
Also known as STD 9
Last updated 2020-07-29
Stream Legacy
Formats plain text html pdf htmlized with errata bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 959 (Internet Standard)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                          J. Postel
Request for Comments: 959                                    J. Reynolds
Obsoletes RFC: 765 (IEN 149)                                October 1985

                      FILE TRANSFER PROTOCOL (FTP)

Status of this Memo

   This memo is the official specification of the File Transfer
   Protocol (FTP).  Distribution of this memo is unlimited.

   The following new optional commands are included in this edition of
   the specification:

      CDUP (Change to Parent Directory), SMNT (Structure Mount), STOU
      (Store Unique), RMD (Remove Directory), MKD (Make Directory), PWD
      (Print Directory), and SYST (System).

   Note that this specification is compatible with the previous edition.


   The objectives of FTP are 1) to promote sharing of files (computer
   programs and/or data), 2) to encourage indirect or implicit (via
   programs) use of remote computers, 3) to shield a user from
   variations in file storage systems among hosts, and 4) to transfer
   data reliably and efficiently.  FTP, though usable directly by a user
   at a terminal, is designed mainly for use by programs.

   The attempt in this specification is to satisfy the diverse needs of
   users of maxi-hosts, mini-hosts, personal workstations, and TACs,
   with a simple, and easily implemented protocol design.

   This paper assumes knowledge of the Transmission Control Protocol
   (TCP) [2] and the Telnet Protocol [3].  These documents are contained
   in the ARPA-Internet protocol handbook [1].


   In this section, the history, the terminology, and the FTP model are
   discussed.  The terms defined in this section are only those that
   have special significance in FTP.  Some of the terminology is very
   specific to the FTP model; some readers may wish to turn to the
   section on the FTP model while reviewing the terminology.

Postel & Reynolds                                               [Page 1]

RFC 959                                                     October 1985
File Transfer Protocol

   2.1.  HISTORY

      FTP has had a long evolution over the years.  Appendix III is a
      chronological compilation of Request for Comments documents
      relating to FTP.  These include the first proposed file transfer
      mechanisms in 1971 that were developed for implementation on hosts
      at M.I.T. (RFC 114), plus comments and discussion in RFC 141.

      RFC 172 provided a user-level oriented protocol for file transfer
      between host computers (including terminal IMPs).  A revision of
      this as RFC 265, restated FTP for additional review, while RFC 281
      suggested further changes.  The use of a "Set Data Type"
      transaction was proposed in RFC 294 in January 1982.

      RFC 354 obsoleted RFCs 264 and 265.  The File Transfer Protocol
      was now defined as a protocol for file transfer between HOSTs on
      the ARPANET, with the primary function of FTP defined as
      transfering files efficiently and reliably among hosts and
      allowing the convenient use of remote file storage capabilities.
      RFC 385 further commented on errors, emphasis points, and
      additions to the protocol, while RFC 414 provided a status report
      on the working server and user FTPs.  RFC 430, issued in 1973,
      (among other RFCs too numerous to mention) presented further
      comments on FTP.  Finally, an "official" FTP document was
      published as RFC 454.

      By July 1973, considerable changes from the last versions of FTP
      were made, but the general structure remained the same.  RFC 542
      was published as a new "official" specification to reflect these
      changes.  However, many implementations based on the older
      specification were not updated.

      In 1974, RFCs 607 and 614 continued comments on FTP.  RFC 624
      proposed further design changes and minor modifications.  In 1975,
      RFC 686 entitled, "Leaving Well Enough Alone", discussed the
      differences between all of the early and later versions of FTP.
      RFC 691 presented a minor revision of RFC 686, regarding the
      subject of print files.

      Motivated by the transition from the NCP to the TCP as the
      underlying protocol, a phoenix was born out of all of the above
      efforts in RFC 765 as the specification of FTP for use on TCP.

      This current edition of the FTP specification is intended to
      correct some minor documentation errors, to improve the
      explanation of some protocol features, and to add some new
      optional commands.

Postel & Reynolds                                               [Page 2]
Show full document text