File Transfer Protocol

FTP (File Transfer Protocol)

FTP (File Transfer Protocol) is a standard protocol used to transfer files over TCP networks (including the Internet). FTP is one of the basic file transfer protocols designed to transfer files between computers. Using it clients can connect to FTP servers, view the contents of their directories and download files from the server or upload to the server.
File Transfer Protocol

FTP is one of the oldest computer network protocols. It appeared in 1971, long before HTTP and even before TCP. At first it worked on top of the NCP protocol, then became a part of TCP/IP suite. It’s widely used today for software distribution and access to remote file hosts. The first FTP client applications were interactive command-line tools that implemented standard commands and syntax. Graphical user interfaces have since been developed for many operating systems.

The protocol is built on a client-server architecture and uses different network connections to transfer commands (TCP port 21) and data (TCP port 20) between the client and the server. FTP clients can be authenticated by passing username and password to the server in plain text, or, if allowed by the server, they can connect anonymously.

FTP in its “clean” form, despite being the de facto standard for transferring files between remote computers, has serious security issues (the password is transmitted over the network in the unencrypted form). Therefore, it’s strongly recommend to use secure FTPS protocol. Clients can also use the SSH protocol for secure transmissions, hiding (encrypting) login and password and encrypting content. FTP with SSH encryption is called SFTP.

To access the server or remote computer via FTP there are special programs called FTP clients. There are a lot of FTP clients and FTP support is built into many file managers and even directly into operating systems. The most popular free programs are:

  • FileZilla is a popular cross-platform (Windows / Mac / Linux) FTP client. Supports FTPS and SFTP
  • WinSCP is a convenient “two-pane” FTP and SFTP client for Windows
  • FAR Manager is a console file manager for Windows. Despite its console nature, it’s still very popular due to its simplicity and huge base of plug-ins. Support for SFTP is implemented through the WinSCP plug-in
  • FireFTP is a plugin for the Mozilla Firefox browser. Supports FTPS and SFTP.
  • Total Commander is a popular file manager for Windows. Supports FTPS, but SFTP requires plugins that haven’t been updated for a long time
  • Cyberduck is a client for Mac OS X, supports both FTP, SFTP and many other protocols and cloud services.

Related terms:

Protocol, port, TCP/IP, HTTP, HTTPS, SSH

References and further reading: