HTP and Fl? are both file transfer protocols and have many common characteristics; for example, they both run on top of TCP. However, the two application-layer protocols have some important differences. The most striking difference is that FTP uses two parallel TCP connections to transfer a file, a control connection and a data connection. The control connection is used for sending control information between the two hosts-information such as user identification, password, commands to change remote directory,-and commands to "put" and "get" files. The data connection is used to actually send a file, Because FTP uses a separate control connection, FTP is said to send its control information out-of-band. We'll see that the RTSP protocol, which is used for controlling the transfer of continuous media such as audio and video, also sends its control information out-of-band. HTI'P, as you recall, sends request and response header lines into the same TCP connection that carries the transferred file itself. For this reason, HTTP is said to send its control information In-band. In the next section we'll see that SMTP, the main protocol for electronic mail, also sends control information in-band.
When a user start p )9P session with a remote host, the client side of FTP (user) first initiates a control TCP connection with the server side (remote host) on server port number 21. The client side of F1'P sends the user identification and password over this control connection. The client side of FTP also sends, over the control connection, commands to change the remote directory. When the server side receives a command for a file transfer over the control connection (either to, or from, the remote host), the server side Initiates TCP data connection to the client side? FTP send exactly one file over the data connection and then closes the data connection If, during the same session the user wants to transfer another file FTP open another data connection. Thus, with FTP, the control connection remains open throughout the duration of the user session, but a new data connection is created for each file transferred within a session (that is. the data connections arc non-persistent).
Throughout a session, the FTP server must maintain state about the user In particular, the server must associate the control connection with a specific user account, and the server must keep track of the user's current directory as the user wanders i put the remote directory tree. Keeping track of this state information for each ongoing user session significantly constrains the total number of sessions that FTP? can maintain simultaneously. Recall that HTTP, on the other hand , is stateless-it does not have to keep track of any user state.
Labels: