An Internet standard application-level TCP/IP protocol that can be used for transferring files between hosts on a TCP/IP internetwork.

How It Works?

File   Transfer   Protocol   (FTP)   is   one of   the   earliest   Internet protocols,   and    is still   used   for   uploading    and downloading files between clients and servers. An FTP client is an application that can issue FTP commands to an FTP server, while an FTP server is a service or daemon running on a server that responds to FTP commands from a client. FTP commands can be used to change directories, change transfer modes between binary and ASCII, upload files, and download files. FTP uses Transmission Control Protocol (TCP) for reliable network communication by establishing a session before initiating data transfer. TCP port number 21 on the FTP server listens for connection attempts from an FTP client and is used as a control port for establishing a connection between the client and server, for allowing the client to send an FTP command to the server, and for returning the server’s response to the command. Once a control connection has been established, the server opens port number 20 to form a   new   connection   with   the   client   for   transferring   the actual data during uploads and downloads.

While transferring   Data over the network, two modes can be used:

  1. Ascii Mode
  2. Binary Mode

The two types   differ   from   the   way   they   send   the data.   When   a   file   is   sent using    an   ASCII-type transfer,   the   individual   letters,   numbers   and characters   are sent. The receiving machine saves these in   a   text   file   in   the   appropriate   format (for example, a Unix machine saves it in a Unix format, and a Macintosh saves it in a Mac format). Hence if an ASCII transfer is used it can be assumed plain text is sent, which is stored by the receiving computer in its own format.

Sending   a   file    in   binary    mode is different. The sending machine sends each file bit for bit and as such the recipient stores the bit-stream as it receives it.

By default, most FTP clients use ASCII mode. Some clients, nevertheless are more clever and try to determine the required transfer-mode by inspecting the file's contents.