History of the File Transfer Protocol (FTP)


The first implementation of a protocol (1971) proposed that the exchange between the client and server messages incorporate the header (72 bits) and variable-length data.

Post subject included a request to the FTP server or a response from it, the type and length of data transmitted.

Data transmitted queries parameters (for example, the path and file name), the information from the server (for example, a list of files in a directory ), and the files themselves. Thus, commands and data are transmitted on the same channel.

In 1972, the protocol had been completely changed and took a form similar to the modern version. Commands with the parameters from the client and server responses are sent over TELNET compound (control channel) to create a separate data connection (data channel).

Subsequent editions introduced the ability to work in passive mode to transfer files between FTP server, enter the command information, change the current directory, create and delete directories and save files with a unique name.

At some stage there were instructions for transmitting email via FTP, but they were subsequently removed from the protocol.

In 1980, the FTP protocol started using TCP. The last revised protocol was released in 1985 and, in 1997 appeared an addition to the protocol that allows you to encrypt and sign information in the control channel and data channel.

In 1999, internationalization dedicated protocol was introduced, which recommends the use of UTF-8 encoding for commands and server responses and defines a new command LANG, establishing language responses.

Basic Commands

ABOR – Abort file transfer
CDUP – Change directory to a higher version.
CWD – Change directory.
DELE – Delete file (DELE filename).

EPSV – Sign-in in extended passive mode.
HELP – Displays a list of commands received by the server.
LIST – Returns a list of files in the directory. List of data transferred over the connection.

MDTM – Gets file modification time.
MKD – Create a directory.
NLST – Returns a list of files in the directory in a shorter format than LIST. List of data transferred over the connection .
NOOP – Empty operation

PASV – Sign in passive mode. The server returns the address and port to which you want to connect to pick up data. Transmission begins with the introduction of the following commands: RETR, LIST , etc.

PORT – Sign in active mode. For example PORT 12,34,45,56,78,89. In contrast to the passive mode for transmitting data to the server itself is connected to the client.

PWD – Returns the current directory.
QUIT – Disconnect
REIN – reinitialize connection
RETR – Download file . Before RETR command should be PASV or PORT.
RMD – Remove directory
RNFR and RNTO – Rename file . RNFR – rename it , RNTO – what .
SIZE – Returns the file size
STOR – Upload a file . Before STOR command should be PASV or PORT.
SYST – Returns the type of system (UNIX, WIN, …)
TYPE – Set the file transfer type (binary , text )
USER – The user name to log into the server

About the Author