Introduction
The
File
Transfer
Protocol is a standard protocol used to transfer files over both local networks and the Internet. FTP allows files to be both transmitted and received, as well as allowing devices to navigate and build directory structures on the target machine. This provides an extremely flexible platform and allows systems using this protocol to perform a wide variety of tasks. Further, as FTP has been in use for many years, it is a mature protocol and has widespread support in many different types of devices.
[
edit]
Client/Server 
Illustration of the client and server roles used within the FTP protocol.
Unlike peer-to-peer systems, FTP uses a client/server arangement where each end of the connection serves a different purpose. FTP clients initiate all connections and begin the file transfers, whereas FTP servers respond to these commands and act as central repositories storing the files in question. As such, the FTP protocol is generally used for file transfers to and from centralized repositories running FTP server software.
[
edit]
FTP Clients
The simplest of the two halves of a connection, FTP clients are generally operated by the end users and initiate the connection to the FTP server. Once connected, the client then issues commands that the server responds to and, through them, can send and receive files.
[
edit]
FTP Servers
FTP servers are the central repositories that allow access to a set of files by FTP clients that connect to them. They wait for incomming requests and respond to any commands issued by those remote devices. As FTP servers allow many different clients to connect to them, the files uploaded to the server can be shared by all others accessing it.
[
edit]
Access Control
FTP provides a basic login mechanism allowing servers to provide various users with different levels of access to the files stored within the server. This is handled by a simple username/password pair and platform specific access restrictions - depending on the FTP server in use, this can provide fine grain control over how people can access the shared files.
Unfortunately, FTP transmits these credentials without any form of protection so the security provided by this mechanism is limited. If security is important, users should consider using
SFTP or other layers of protection (
VPNs, encryption, etc.).
[
edit]
Passive Mode
FTP can operate in one of two different manners. The default configuration is called
active mode which, while supported by more software, can create problems with some types of firewalls. In order to get around this problem, a
passive FTP mode was added that remedies this problem and allows it to operate in most network configurations. While passive FTP support was limited in the past, pretty much all modern FTP servers are capable of working in either mode.