| FTP or File Transfer Protocol is used to
connect two computers over the Internet so that the user of one computer
can transfer files and perform file commands on the other computer.
Specifically, FTP is a commonly used protocol for exchanging files over
any network that supports the TCP/IP
protocol (such as the Internet
or an
intranet). There are two
computers involved in an FTP transfer: a
server and a
client. The FTP server, running FTP server software, listens on
the network for connection requests from other computers. The client
computer, running
FTP client software, initiates a connection to the server. Once
connected, the client can do a number of file manipulation operations such
as uploading files to the server, download files from the server, rename
or delete files on the server and so on. Any software
company or individual programmer is able to create FTP server or client
software because the protocol is an open standard. Virtually every
computer platform supports the FTP protocol. This allows any computer
connected to a TCP/IP based network to manipulate files on another
computer on that network regardless of which
operating systems are involved (if the computers permit FTP access).
There are many existing FTP client and server programs.
Overview
FTP runs exclusively over
TCP. FTP servers by default listen on
port 21 for incoming connections from FTP clients. A connection to
this port from the FTP Client forms the control stream on which commands
are passed to the FTP server from the FTP client and on occasion from the
FTP server to the FTP client. For the actual file transfer to take place,
a different connection is required which is called the data stream.
Depending on the transfer mode, the process of setting up the data stream
is different.
In active mode, the FTP client opens a
random port (> 1023), sends the FTP server the random port number on
which it is listening over the control stream and waits for a connection
from the FTP server. When the FTP server initiates the data connection to
the FTP client it binds the source port to port 20 on the FTP server.
In passive mode, the FTP Server opens a random port (> 1023),
sends the FTP client the port on which it is listening over the control
stream and waits for a connection from the FTP client. In this case the
FTP client binds the source port of the connection to a random port
greater than 1023.
While data is being transferred via the
data stream, the control stream sits idle. This can cause problems
with large data transfers through
firewalls which time out sessions after lengthy periods of idleness.
While the file may well be successfully transferred, the control session
can be disconnected by the firewall, causing an error to be generated.
When FTP is used in a UNIX environment, there is an often-ignored but
valuable command, "reget" (meaning "get again") that will cause an
interrupted "get" command to be continued, hopefully to completion, after
a communications interruption. The principle is obvious—the receiving
station has a record of what it got, so it can spool through the file at
the sending station and re-start at the right place for a seamless splice.
The converse would be "reput" but is not available. Again, the principle
is obvious: The sending station does not know how much of the file was
actually received, so it would not know where to start.
The objectives of FTP, as outlined by its
RFC, are:
- To promote sharing of files (computer programs and/or data).
- To encourage indirect or implicit use of
remote computers.
- To shield a user from variations in file storage systems among
different
hosts.
- To transfer
data reliably, and efficiently.
Anonymous FTP
Many sites that run FTP servers enable so-called "anonymous ftp". Under
this arrangement, users do not need an account on the server. The user
name for anonymous access is typically 'anonymous' or 'ftp'. This account
does not need a password. Although users are commonly asked to send their
email addresses as their passwords for authentication, usually there is
trivial or no verification, depending on the FTP server and its
configuration. Internet Gopher has been suggested as an alternative to
anonymous FTP, as well as Trivial File Transfer Protocol.
|