File Transfer Protocol is an another most used and standard Internet protocol for transmitting files between computers on the Internet over TCP/IP connections. It is application layer protocol. It was first created in 1971 to transfer data between a client and a server. To use this protocol, FTP client application is required on a computer that is used to send and receive data from a server running an FTP daemon (FTPd). The FTP is client-server protocols that work on two channels between client and server:
Command channel for controlling the conversation between host and server
Data channel for transmitting and receiving files between client and server
Clients initiate a connection to the servers to manage traffic using port 21, consisting of client command and server replies. After the client command and server replies, the client establishes the second connection to the server for the transfer of actual data using TCP port 20. The connection to port 20 is established every time there is data to be transferred. The figure below illustrates the FTP connection.
The FTP client can download, upload, delete, rename, move and copy data on a server depending upon user rights. A user typically needs to log on to the FTP server, while some servers use anonymous user for some or all of their content available without login.
The File Transfer Protocol sessions work in two modes, passive and active. In active mode, when a client opens a session via a command channel request; the server then open a data connection back to the client and start transferring data. In the passive mode, the server as an alternative uses the command channel to send the client the information it required to open a data channel. Because in the passive mode the client has initiated all connections, it works better across firewalls and NAT.
The FTP client can work via a simple command line interface; with a graphical user interface (GUI) and the Web browsers can also serve as FTP clients.