Connected: An Internet Encyclopedia
RFC 959 - 2.3. THE FTP MODEL

Top: Connected: An Internet Encyclopedia
Up: Requests For Comments
Up: RFC 959
Up: 2. OVERVIEW
Prev: 2.2. TERMINOLOGY
Next: 3. DATA TRANSFER FUNCTIONS

### 2.3. THE FTP MODEL

With the above definitions in mind, the following model (shown in Figure 1) may be diagrammed for an FTP service.

                                                -------------
                                                |/---------\|
                                                ||   User  ||    --------
                                                ||Interface|<--->| User |
                                                |\----^----/|    --------
                      ----------                |     |     |
                      |/------\|  FTP Commands  |/----V----\|
                      ||Server|<---------------->|   User  ||
                      ||  PI  ||   FTP Replies  ||    PI   ||
                      |\--^---/|                |\----^----/|
                      |   |    |                |     |     |
          --------    |/--V---\|      Data      |/----V----\|    --------
          | File |<--->|Server|<---------------->|  User   |<--->| File |
          |System|    || DTP  ||   Connection   ||   DTP   ||    |System|
          --------    |\------/|                |\---------/|    --------
                      ----------                -------------

                      Server-FTP                   USER-FTP

          NOTES: 1. The data connection may be used in either direction.
                 2. The data connection need not exist all of the time.

                          Figure 1  Model for FTP Use

In the model described in Figure 1, 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. (The user may establish a direct control connection to the server-FTP, from a TAC terminal for example, and generate standard FTP commands independently, bypassing the user-FTP process.) Standard replies are sent from the server-PI to the 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.

                        Control     ------------   Control
                        ---------->| User-FTP |<-----------
                        |          | User-PI  |           |
                        |          |   "C"    |           |
                        V          ------------           V
                --------------                        --------------
                | Server-FTP |   Data Connection      | Server-FTP |
                |    "A"     |<---------------------->|    "B"     |
                -------------- Port (A)      Port (B) --------------

                                     Figure 2

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 connections are closed without command.

The Relationship between FTP and Telnet:

  The FTP uses the Telnet protocol on the control connection. This can be achieved in two ways: first, the user-PI or the server-PI may implement the rules of the Telnet Protocol directly in their own procedures; or, second, the user-PI or the server-PI may make use of the existing Telnet module in the system.

  Ease of implementaion, sharing code, and modular programming argue for the second approach. Efficiency and independence argue for the first approach. In practice, FTP relies on very little of the Telnet Protocol, so the first approach does not necessarily involve a large amount of code.

Next: 3. DATA TRANSFER FUNCTIONS

Connected: An Internet Encyclopedia
RFC 959 - 2.3. THE FTP MODEL