File Transfer Protocol |
: See file transfer protocol (disambiguation) and FTP (disambiguation) for alternative meanings.
The File Transfer Protocol (FTP) is a software standard for transferring computer files between machines with widely different operating systems. It belongs to the application layer of the Internet protocol suite.
FTP is an 8-Bit Client-server protocol, capable of handling any type of file without further processing, such as MIME or Uuencode. However, FTP has extremely high Latency (engineering); that is, the time between beginning the request and starting to receive the required data can be quite long, and a sometimes-lengthy login procedure is required.
= Overview =
FTP is commonly run on two Port (computing)#Networking Port, 20 and 21. Port 20 is a data stream which transfers the data between the client and the server. Port 21 is the control stream and is the port where commands are passed to the ftp server. While data is being transferred via the data stream, the control stream sits idle. This can cause problems with large data transfers through firewall (networking) 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.
The objectives of FTP, as outlined by its Request_for_Comments, 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 Servers. # To transfer Data reliably and efficiently.
Disadvantages are:
# Passwords and file contents are sent in cleartext, which can be intercepted by eavesdropping. # Multiple TCP/IP connections are used, one for the control connection, and one for each download, upload, or directory listing. Firewall software needs additional logic to account for these connections. # It is hard to filter active mode FTP traffic on the client side by using a Firewall (networking), since the client must open an arbitrary Port (computing)#Networking Port in order to receive the connection. This problem is largely resolved by using passive mode FTP. # It is possible to abuse the protocol s built-in proxy features to tell a server to send data to an arbitrary port of a third computer. # FTP is an extremely high latency protocol due to the number of commands needed to initiate a transfer.
FTP, though usable directly by a user at a terminal, is designed mainly for use by FTP client programs. Many operating systems have built-in FTP clients, although many are commercially available.
Many sites that run FTP servers enable so-called anonymous ftp . Under this arrangement, users do not need an account (computing) on the server. By default, the account name for the anonymous access is anonymous . 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.
= Data format =
While transfering data over the network, two modes can be used
# ASCII mode # Binary mode
The two types differ from the way they send the data. When a file is sent using an ASCII-type transfer, the individual letters, numbers and characters are sent. The receiving machine saves these in a text file in the appropriate format (for example, a Unix machine saves it in a Unix format, a Macintosh saves it in a Mac format). Hence if an ASCII transfer is used it can be assumed plain text is sent, which is stored by the receiving computer in its own format.
Sending a file in binary mode is different. The sending machine sends each file bit for bit and as such the recipient stores the bitstream as it receives it.
By default, most FTP clients use ASCII mode. Some clients, neverthelesss are more clever and try to determine the required transfer-mode by inspecting the file s contents.
=FTP and web browsers=
Most recent web browsers and file managers can connect to FTP servers. This allows manipulation of remote files over FTP through an interface similar to that used for local files. This is done via an FTP URL, which takes the form ftp:// (e.g., [ftp://ftp.gimp.org/]). A password can optionally be given in the URL, e.g.: ftp://:@. Most web-browsers require the use of passive mode FTP, which not all FTP servers are capable of handling.
=References=
The protocol is Standardization in Request for Comments 0959 by the IETF as:
=See also=
==FTP-like Protocols==
==Software==
=External links=
*[http://slacksite.com/other/ftp.html Active vs. Passive FTP explained and illustrated] *[http://www.ietf.org/rfc/rfc959.txt RFC 0959 File Transfer Protocol (FTP). J. Postel, J. Reynolds. Oct-1985.], also [http://www.rfcsearch.org/rfcview/RFC/959.html RFC0959 in html format] *[http://dmoz.org/Computers/Internet/Protocols/FTP/ Dmoz directory about FTP] *[http://cyberduck.ch/ Cyberduck] — a freely distributable GPL licensed FTP/SFTP client for Mac OS X. *[http://filezilla.sourceforge.net/ Filezilla] — a freely distributable GPL licensed FTP client for Windows. *[http://www.sbbi.net/site/jafs/ JAFS] — enterprise class Open Source Java FTP server *[http://www.ncftp.com/libncftp/doc/ftp_overview.html An Overview of the File Transfer Protocol] — explains how the FTP works at the protocol level *[http://www.ncftp.com/ncftpd/doc/misc/ftp_and_firewalls.html The FTP and Your Firewall] — details FTP s problems with firewalls and how to deal with them *[http://www.eventhelix.com/RealtimeMantra/Networking/FTP.pdf FTP Sequence Diagram] (in PDF format)|
|