The design objectives of FTP were as follows:
1. To promote sharing of files (computer programs or data).
2 To encourage indirect or implicit use of remote computers (i.e. to be a network based application that can be readily employed).
3. To shield a user from variations in file storage systems among hosts.
4. To transfer data reliably and efficiently.
FTP provides a means of transferring a file between two computers, however, most FTP clients also permit the user to navigate the file system, create/delete directories/files (if permitted) on both the local and connected machines, etc.
The FTP client consists of a User Protocol Interpreter (PI) that initiates a connection with the
Server Protocol Interpreter (using port 21). The user PI sends FTP commands to the server PI,which in turn replies back to the user PI.
The user and server data transfer processes (operating on port 20) are usedto transfer data between the client and server.
In the model the user-protocol interpreter initiates the control connection. The control connection follows the Telnet protocol. At the initiation of the user, standard FTP commands are generated by the user-PI and transmitted to the server process via the control connection.Standard replies are sent from the server-PI tothe user-PI over the control connection in response to the commands.
The FTP commands specify the parameters for the data connection (data port, transfer mode, representation type, and structure) and the nature of file system operation (store, retrieve, append, delete, etc.). The user-DTP or its designate should “listen” on the specified data port, and the server initiate the data connection and data transfer in accordance with the specified parameters. It should be noted that the data port need not be in the same host that initiates the FTP commands via the control connection, but the user or the user-FTP process must ensure a “listen” on the specified data port. It ought to also be noted that the data connection may be used for simultaneous sending and receiving.
In another situation a user might wish to transfer files between two hosts, neither of which is a local host.The user sets up control connections to the two servers and then arranges for a data connection between them. In this manner, control information is passed to the user-PI but data is transferred between the server data transfer processes. Following is a model of this server-server interaction.
The protocol requires that the control connections be open while data transfer is in progress. It is the responsibility of the user to request the closing of the control connections when finished using the FTP service, while it is the server who takes the action. The server may abort data transfer if the control connec-tions are closed without command.