Network Dictionary
http://www.javvin.com/networkdiction-
ary.html
Network Protocols Map
http://www.javvin.com/map.html
Network Security Map
http://www.javvin.com/securitymap.
html
Wireless Communications
Technology Map
http://www.javvin.com/wirelessmap.
html
Network Protocols Hand-
book
http://www.javvin.com/model.html
TCP/IP Quick Guide
http://www.javvin.com/tcpipguide.html
Ethernet Quick Guide
http://www.javvin.com/ethernetguide.
html
Packet Analyzer
http://www.javvin.com/packet.html
DiskShare
http://www.javvin.com/diskshare.html
DiskAccess
http://www.javvin.com/diskaccess.html
LANsurveyor
http://www.javvin.com/LANsurveyor.
html
CyberGauge
http://www.javvin.com/CyberGauge.
html
Easy Network Service
Monitor
http://www.javvin.com/easy.html
Business Card Scanner
http://www.javvin.com/businesscard-
scanner.html
Color Cards and Picture
Scanner
http://www.javvin.com/colorcardscan-
ner.html
Portable Document Scan-
ner
http://www.javvin.com/portablescan-
ner.html
www.javvin.com
www.networkdictionary.
com
File Transfer Protocol
October 1985
[ Page 1 ]
RFC: 959
Network Working Group J. Postel
Request for Comments: 959 J. Reynolds
ISI
Obsoletes RFC: 765 (IEN 149) October 1985
FILE TRANSFER PROTOCOL (FTP)
Network Dictionary
http://www.javvin.com/networkdiction-
ary.html
Network Protocols Map
http://www.javvin.com/map.html
Network Security Map
http://www.javvin.com/securitymap.
html
Wireless Communications
Technology Map
http://www.javvin.com/wirelessmap.
html
Network Protocols Hand-
book
http://www.javvin.com/model.html
TCP/IP Quick Guide
http://www.javvin.com/tcpipguide.html
Ethernet Quick Guide
http://www.javvin.com/ethernetguide.
html
Packet Analyzer
http://www.javvin.com/packet.html
DiskShare
http://www.javvin.com/diskshare.html
DiskAccess
http://www.javvin.com/diskaccess.html
LANsurveyor
http://www.javvin.com/LANsurveyor.
html
CyberGauge
http://www.javvin.com/CyberGauge.
html
Easy Network Service
Monitor
http://www.javvin.com/easy.html
Business Card Scanner
http://www.javvin.com/businesscard-
scanner.html
Color Cards and Picture
Scanner
http://www.javvin.com/colorcardscan-
ner.html
Portable Document Scan-
ner
http://www.javvin.com/portablescan-
ner.html
www.javvin.com
www.networkdictionary.
com
File Transfer Protocol
October 1985
[ Page 2 ]
Status of this Memo
This memo is the ofcial specication of the File Transfer Protocol (FTP). Distribution of this memo is
unlimited.
The following new optional commands are included in this edition of the specication:
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 specication is compatible with the previous edition.
1. INTRODUCTION
The objectives of FTP are 1) to promote sharing of les (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 le stor-
age systems among hosts, and 4) to transfer data reliably and efciently. FTP, though usable directly by a
user at a terminal, is designed mainly for use by programs.
The attempt in this specication 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].
2. OVERVIEW
In this section, the history, the terminology, and the FTP model are discussed. The terms dened in this
section are only those that have special signicance in FTP. Some of the terminology is very specic to the
FTP model; some readers may wish to turn to the section on the FTP model while reviewing the terminol-
ogy.
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 rst proposed le 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 le transfer between host computers (including ter-
minal 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 dened as a protocol for le
transfer between HOSTs on the ARPANET, with the primary function of FTP dened as transfering les
efciently and reliably among hosts and allowing the convenient use of remote le storage capabilities.
RFC 385 further commented on errors, emphasis points, and additions to the protocol, while RFC 414 pro-
vided 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 "ofcial" 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 "ofcial" specication to reect these changes. How-
ever, many implementations based on the older specication were not updated.
In 1974, RFCs 607 and 614 continued comments on FTP. RFC 624 proposed further design changes and
minor modications. 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, regard-
ing the subject of print les.
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 specication of FTP for use on TCP.
Network Dictionary
http://www.javvin.com/networkdiction-
ary.html
Network Protocols Map
http://www.javvin.com/map.html
Network Security Map
http://www.javvin.com/securitymap.
html
Wireless Communications
Technology Map
http://www.javvin.com/wirelessmap.
html
Network Protocols Hand-
book
http://www.javvin.com/model.html
TCP/IP Quick Guide
http://www.javvin.com/tcpipguide.html
Ethernet Quick Guide
http://www.javvin.com/ethernetguide.
html
Packet Analyzer
http://www.javvin.com/packet.html
DiskShare
http://www.javvin.com/diskshare.html
DiskAccess
http://www.javvin.com/diskaccess.html
LANsurveyor
http://www.javvin.com/LANsurveyor.
html
CyberGauge
http://www.javvin.com/CyberGauge.
html
Easy Network Service
Monitor
http://www.javvin.com/easy.html
Business Card Scanner
http://www.javvin.com/businesscard-
scanner.html
Color Cards and Picture
Scanner
http://www.javvin.com/colorcardscan-
ner.html
Portable Document Scan-
ner
http://www.javvin.com/portablescan-
ner.html
www.javvin.com
www.networkdictionary.
com
Network Dictionary
http://www.javvin.com/networkdiction-
ary.html
Network Protocols Map
http://www.javvin.com/map.html
Network Security Map
http://www.javvin.com/securitymap.
html
Wireless Communications
Technology Map
http://www.javvin.com/wirelessmap.
html
Network Protocols Hand-
book
http://www.javvin.com/model.html
TCP/IP Quick Guide
http://www.javvin.com/tcpipguide.html
Ethernet Quick Guide
http://www.javvin.com/ethernetguide.
html
Packet Analyzer
http://www.javvin.com/packet.html
DiskShare
http://www.javvin.com/diskshare.html
DiskAccess
http://www.javvin.com/diskaccess.html
LANsurveyor
http://www.javvin.com/LANsurveyor.
html
CyberGauge
http://www.javvin.com/CyberGauge.
html
Easy Network Service
Monitor
http://www.javvin.com/easy.html
Business Card Scanner
http://www.javvin.com/businesscard-
scanner.html
Color Cards and Picture
Scanner
http://www.javvin.com/colorcardscan-
ner.html
Portable Document Scan-
ner
http://www.javvin.com/portablescan-
ner.html
www.javvin.com
www.networkdictionary.
com
File Transfer Protocol
October 1985
[ Page 3 ]
This current edition of the FTP specication is intended to correct some minor documentation errors, to
improve the explanation of some protocol features, and to add some new optional commands.
In particular, the following new optional commands are included in this edition of the specication:
CDUP - Change to Parent Directory
SMNT - Structure Mount
STOU - Store Unique
RMD - Remove Directory
MKD - Make Directory
PWD - Print Directory
SYST - System
This specication is compatible with the previous edition. A program implemented in conformance to the
previous specication should automatically be in conformance to this specication.
2.2. TERMINOLOGY
ASCII
The ASCII character set is as dened in the ARPA-Internet Protocol Handbook. In FTP, ASCII characters
are dened to be the lower half of an eight-bit code set (i.e., the most signicant bit is zero).
access controls
Access controls dene users' access privileges to the use of a system, and to the les in that system. Access
controls are necessary to prevent unauthorized or accidental use of les. It is the prerogative of a server-
FTP process to invoke access controls.
byte size
There are two byte sizes of interest in FTP: the logical byte size of the le, and the transfer byte size used
for the transmission of the data. The transfer byte size is always 8 bits. The transfer byte size is not neces-
sarily the byte size in which data is to be stored in a system, nor the logical byte size for interpretation of
the structure of the data.
control connection
The communication path between the USER-PI and SERVER-PI for the exchange of commands and re-
plies. This connection follows the Telnet Protocol.
data connection
A full duplex connection over which data is transferred, in a specied mode and type. The data transferred
may be a part of a le, an entire le or a number of les. The path may be between a server-DTP and a
user-DTP, or between two server-DTPs.
data port
The passive data transfer process "listens" on the data port for a connection from the active transfer process
in order to open the data connection.
DTP
The data transfer process establishes and manages the data connection. The DTP can be passive or active.
End-of-Line
The end-of-line sequence denes the separation of printing lines. The sequence is Carriage Return, fol-
lowed by Line Feed.
Network Dictionary
http://www.javvin.com/networkdiction-
ary.html
Network Protocols Map
http://www.javvin.com/map.html
Network Security Map
http://www.javvin.com/securitymap.
html
Wireless Communications
Technology Map
http://www.javvin.com/wirelessmap.
html
Network Protocols Hand-
book
http://www.javvin.com/model.html
TCP/IP Quick Guide
http://www.javvin.com/tcpipguide.html
Ethernet Quick Guide
http://www.javvin.com/ethernetguide.
html
Packet Analyzer
http://www.javvin.com/packet.html
DiskShare
http://www.javvin.com/diskshare.html
DiskAccess
http://www.javvin.com/diskaccess.html
LANsurveyor
http://www.javvin.com/LANsurveyor.
html
CyberGauge
http://www.javvin.com/CyberGauge.
html
Easy Network Service
Monitor
http://www.javvin.com/easy.html
Business Card Scanner
http://www.javvin.com/businesscard-
scanner.html
Color Cards and Picture
Scanner
http://www.javvin.com/colorcardscan-
ner.html
Portable Document Scan-
ner
http://www.javvin.com/portablescan-
ner.html
www.javvin.com
www.networkdictionary.
com
File Transfer Protocol
October 1985
[ Page 4 ]
EOF
The end-of-le condition that denes the end of a le being transferred.
EOR
The end-of-record condition that denes the end of a record being transferred.
error recovery
A procedure that allows a user to recover from certain errors such as failure of either host system or transfer
process. In FTP, error recovery may involve restarting a le transfer at a given checkpoint.
FTP commands
A set of commands that comprise the control information owing from the user-FTP to the server-FTP
process.
le
An ordered set of computer data (including programs), of arbitrary length, uniquely identied by a path-
name.
mode
The mode in which data is to be transferred via the data connection. The mode denes the data format dur-
ing transfer including EOR and EOF. The transfer modes dened in FTP are described in the Section on
Transmission Modes.
NVT
The Network Virtual Terminal as dened in the Telnet Protocol.
NVFS
The Network Virtual File System. A concept which denes a standard network le system with standard
commands and pathname conventions.
page
A le may be structured as a set of independent parts called pages. FTP supports the transmission of dis-
continuous les as independent indexed pages.
pathname
Pathname is dened to be the character string which must be input to a le system by a user in order to
identify a le. Pathname normally contains device and/or directory names, and le name specication. FTP
does not yet specify a standard pathname convention. Each user must follow the le naming conventions
of the le systems involved in the transfer.
PI
The protocol interpreter. The user and server sides of the protocol have distinct roles implemented in a
user-PI and a server-PI.
record
A sequential le may be structured as a number of contiguous parts called records. Record structures are
supported by FTP but a le need not have record structure.
reply
A reply is an acknowledgment (positive or negative) sent from server to user via the control connection
in response to FTP commands. The general form of a reply is a completion code (including error codes)
followed by a text string. The codes are for use by programs and the text is usually intended for human
users.
Network Dictionary
http://www.javvin.com/networkdiction-
ary.html
Network Protocols Map
http://www.javvin.com/map.html
Network Security Map
http://www.javvin.com/securitymap.
html
Wireless Communications
Technology Map
http://www.javvin.com/wirelessmap.
html
Network Protocols Hand-
book
http://www.javvin.com/model.html
TCP/IP Quick Guide
http://www.javvin.com/tcpipguide.html
Ethernet Quick Guide
http://www.javvin.com/ethernetguide.
html
Packet Analyzer
http://www.javvin.com/packet.html
DiskShare
http://www.javvin.com/diskshare.html
DiskAccess
http://www.javvin.com/diskaccess.html
LANsurveyor
http://www.javvin.com/LANsurveyor.
html
CyberGauge
http://www.javvin.com/CyberGauge.
html
Easy Network Service
Monitor
http://www.javvin.com/easy.html
Business Card Scanner
http://www.javvin.com/businesscard-
scanner.html
Color Cards and Picture
Scanner
http://www.javvin.com/colorcardscan-
ner.html
Portable Document Scan-
ner
http://www.javvin.com/portablescan-
ner.html
www.javvin.com
www.networkdictionary.
com
Network Dictionary
http://www.javvin.com/networkdiction-
ary.html
Network Protocols Map
http://www.javvin.com/map.html
Network Security Map
http://www.javvin.com/securitymap.
html
Wireless Communications
Technology Map
http://www.javvin.com/wirelessmap.
html
Network Protocols Hand-
book
http://www.javvin.com/model.html
TCP/IP Quick Guide
http://www.javvin.com/tcpipguide.html
Ethernet Quick Guide
http://www.javvin.com/ethernetguide.
html
Packet Analyzer
http://www.javvin.com/packet.html
DiskShare
http://www.javvin.com/diskshare.html
DiskAccess
http://www.javvin.com/diskaccess.html
LANsurveyor
http://www.javvin.com/LANsurveyor.
html
CyberGauge
http://www.javvin.com/CyberGauge.
html
Easy Network Service
Monitor
http://www.javvin.com/easy.html
Business Card Scanner
http://www.javvin.com/businesscard-
scanner.html
Color Cards and Picture
Scanner
http://www.javvin.com/colorcardscan-
ner.html
Portable Document Scan-
ner
http://www.javvin.com/portablescan-
ner.html
www.javvin.com
www.networkdictionary.
com
File Transfer Protocol
October 1985
[ Page 5 ]
server-DTP
The data transfer process, in its normal "active" state, establishes the data connection with the "listening"
data port. It sets up parameters for transfer and storage, and transfers data on command from its PI. The
DTP can be placed in a "passive" state to listen for, rather than initiate a connection on the data port.
server-FTP process
A process or set of processes which perform the function of le transfer in cooperation with a user-FTP
process and, possibly, another server. The functions consist of a protocol interpreter (PI) and a data transfer
process (DTP).
server-PI
The server protocol interpreter "listens" on Port L for a connection from a user-PI and establishes a control
communication connection. It receives standard FTP commands from the user-PI, sends replies, and gov-
erns the server-DTP.
type
The data representation type used for data transfer and storage. Type implies certain transformations be-
tween the time of data storage and data transfer. The representation types dened in FTP are described in
the Section on Establishing Data Connections.
user
A person or a process on behalf of a person wishing to obtain le transfer service. The human user may
interact directly with a server-FTP process, but use of a user-FTP process is preferred since the protocol
design is weighted towards automata.
user-DTP
The data transfer process "listens" on the data port for a connection from a server-FTP process. If two serv-
ers are transferring data between them, the user-DTP is inactive.
user-FTP process
A set of functions including a protocol interpreter, a data transfer process and a user interface which to-
gether perform the function of le transfer in cooperation with one or more server-FTP processes. The user
interface allows a local language to be used in the command-reply dialogue with the user.
user-PI
The user protocol interpreter initiates the control connection from its port U to the server-FTP process, initi-
ates FTP commands, and governs the user-DTP if that process is part of the le transfer.
2.3. THE FTP MODEL
With the above denitions in mind, the following model (shown in Figure 1) may be diagrammed for an
FTP service.