Order a domain here
File Transfer Protocol
| Application layer | FTP | SMTP | HTTP | IRC | ... |
| Transport layer | TCP | UDP | SCTP | ICMP | ... |
| Network layer | IP | IPv6 | ARP | DHCP | ... |
| Data link layer | Ethernet | Token ring | FDDI | 802.11 WiFi | ... |
The File Transfer Protocol (FTP) is a part of the Internet protocol suite that is able to transfer computer files between machines with widely different operating systems.
It 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; 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.
FTP is standardized in RFC 0959 by the IETF as:
- RFC 0959 File Transfer Protocol (FTP). J. Postel, J. Reynolds. Oct-1985. (Format: TXT=147316 bytes) http://www.ietf.org/rfc/rfc959.txt
Which obsoleted the earlier RFC 765. The FTP protocol goes back to RFC 114 originally.
FTP commonly runs on port 21.
The objectives of FTP are:
- To promote sharing of files (computer programs and/or data).
- To encourage indirect or implicit (via programs) use of remote computers
- To shield a user from variations in file storage systems among hosts
- To transfer data reliably and efficiently.
Disadvantages are:
- Passwords and file contents are sent in clear text, allowing eavesdropping which may be unwanted
- It is hard to filter FTP traffic using a firewall, since the data connection is made to an apparently arbitrary port
- It is possible to tell a server to send to an arbitrary port of a third computer
FTP, though usable directly by a user at a terminal, is designed mainly for use by FTP client programs.
Many sites that run FTP servers enable so-called "anonymous ftp". Users do not need an account on the server. By default, the account name for the anonymous access is 'anonymous'. This account does not need a password, but users are commonly asked to send their email addresses as their passwords for authentification, but there is no verification.
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://<ftpserveraddress> (e.g., ftp://ftp.gimp.org/). A password can optionally be given in the URL: ftp://<login>:<password>@<ftpserveraddress>.
In GUIs such as Microsoft Windows, one can create a so-called desktop shortcut for more easy access to FTP servers.
See also
- Trivial File Transfer Protocol (TFTP)
- Secure file transfer program (sftp), a component of OpenSSH, not to be confused with...
- Simple File Transfer Protocol (SFTP), the obsolete Internet Draft RFC 931
- Archie search engine
- Federal Theatre Project (FTP)
External links
- NcFTP Client (http://www.ncftp.com/) a free FTP client program with a command-line interface that has been maintained since 1990.
- Filezilla (http://filezilla.sourceforge.net/) a freely distributable GPL licensed FTP client for Windows.
- Cyberduck (http://cyberduck.ch/) a freely distributable GPL licensed FTP/SFTP client for Mac OS X.
- FTP Tutorial (http://www.tombraider4u.com/ftptutorial.shtml) Basic commands
- 01FTP (http://01ftp.com/) a free web based FTP service.
- RFC 0959 File Transfer Protocol (FTP). J. Postel, J. Reynolds. Oct-1985. (http://www.ietf.org/rfc/rfc959.txt)
- An Overview of the File Transfer Protocol (http://www.ncftp.com/libncftp/doc/ftp_overview.html) explains how the FTP works at the protocol level.
- The FTP and Your Firewall (http://www.ncftp.com/ncftpd/doc/misc/ftp_and_firewalls.html) details FTP's problems with firewalls and how to deal with them.

