TCP/IP Explained

The File Transfer Protocol (FTP) is one of the original protocols in the Internet Protocol Suite. It was developed to allow the sharing of files and to encourage the use of remote computers by a reliable and efficient means. Ideas that, at least on the surface, would seem fairly obvious. What may not be immediately apparent however, is that the protocol must shield the user from the vast differences in file storage methods, and provide a simple set of universally agreed commands. Likewise, the protocol must honor the security of the end systems in terms of file ownership, and access protection.
The first proposal for a file transfer mechanism appeared in 1971 (RFC 114). The current RFC, RFC 959 expands greatly on these original ideas and provides us with an application protocol that uses the robust and reliable Transmission Control Protocol (TCP). In addition, FTP uses many principles found in other protocols. For example, FTP uses a Control connection over which the Telnet protocol is used.

FTP is based upon a client-server model with clients transferring files to ( PUTting) and from ( GETting) the server. Two connections are in use during an FTP session. One to convey standard FTP commands and responses (the Control connection), and one for the actual transfer of data (the Data connection). Figure 17-1 shows this in operation.
In our model then, the Client Control Process, at the user's...