| |||||||||
| Application layer | HTTP, SMTP, FTP, SSH, IRC, SNMP ... |
| Transport layer | TCP, UDP, SCTP, RTP, ... |
| Network layer | IP, IPv6, ARP, IPX ... |
| Data link layer | Ethernet, 802.11 WiFi, Token ring, FDDI, ... |
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:
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:
Disadvantages are:
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 authentication, but there is no verification.
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>.