File Transfer Protocol (FTP)
File transfer protocol (FTP) is an Internet tool provided by TCP/IP. The first feature of FTP is developed by Abhay Bhushan in 1971. It helps to transfer files from one computer to another by providing access to directories or folders on remote computers and allows software, data, text file to be transferred between different kinds of computers. The end-user in the connection is known as localhost and the server which provides data is known as the remote host.
The goals of FTP are:
- It encourages the direct use of remote computers.
- It shields users from system variations (operating system, directory structures, file structures, etc.)
- It promotes sharing of files and other types of data.
FTP is a standard communication protocol. There are various other protocols like HTTP which are used to transfer files between computers, but they lack clarity and focus as compared to FTP. Moreover, the systems involved in connection are heterogeneous systems, i.e. they differ in operating systems, directory, structures, character sets, etc the FTP shields the user from these differences and transfer data efficiently and reliably. FTP can transfer ASCII, EBCDIC, or image files. The ASCII is the default file share format, in this, each character is encoded by NVT ASCII. In ASCII or EBCDIC the destination must be ready to accept files in this mode. The image file format is the default format for transforming binary files.
FTP works on a client-server model. The FTP client is a program that runs on the user’s computer to enable the user to talk to and get files from remote computers. It is a set of commands that establishes the connection between two hosts, helps to transfer the files, and then closes the connection. Some of the commands are: get filename(retrieve the file from server), mget filename(retrieve multiple files from the server ), ls(lists files available in the current directory of the server). There are also built-in FTP programs, which makes it easier to transfer files and it does not require remembering the commands.
Type of FTP Connections
FTP connections are of two types:
Active FTP connection: In an Active FTP connection, the client establishes the command channel and the server establishes the data channel. When the client requests the data over the connection the server initiates the transfer of the data to the client. It is not the default connection because it may cause problems if there is a firewall in between the client and the server.
Passive FTP connection: In a Passive FTP connection, the client establishes both the data channel as well as the command channel. When the client requests the data over the connection, the server sends a random port number to the client, as soon as the client receives this port number it establishes the data channel. It is the default connection, as it works better even if the client is protected by the firewall.
Some sites can enable anonymous FTP whose files are available for public access. So, the user can access those files without any username or password. Instead, the username is set to anonymous and the password to the guest by default. Here, the access of the user is very limited. For example, the user can copy the files but not allowed to navigate through directories.
How FTP works?
The FTP connection is established between two systems and they communicate with each other using a network. So, for the connection, the user can get permission by providing the credentials to the FTP server or can use anonymous FTP.
When an FTP connection is established, there are two types of communication channels are also established and they are known as command channel and data channel. The command channel is used to transfer the commands and responses from client to server and server to client. FTP uses the same approach as TELNET or SMTP to communicate across the control connection. It uses the NVT ASCII character set for communication. It uses port number 21. Whereas the data channel is used to actually transfer the data between client and server. It uses port number 20.
The FTP client using the URL gives the FTP command along with the FTP server address. As soon as the server and the client get connected to the network, the user logins using User ID and password. If the user is not registered with the server, then also he/she can access the files by using the anonymous login where the password is the client’s email address. The server verifies the user login and allows the client to access the files. The client transfers the desired files and exits the connection. The figure below shows the working of FTP.
FTP transfer files using any of the following modes:
- Stream Mode: It is the default mode. In steam mode, the data is transferred from FTP to TCP in stream bytes. Here TCP is the cause for fragmenting data into small segments. The connection is automatically closed if the transforming data is in the stream bytes. Otherwise, the sender will close the connection.
- Block Mode: In block mode, the data is transferred from FTP to TCP in the form of blocks, and each block followed by a 3-byte header. The first byte of the block contains the information about the block so it is known as the description block and the other two bytes contain the size of the block.
- Compressed Mode: This mode is used to transfer big files. As we know that, due to the size limit we can not transfer big files on the internet, so the compressed mode is used to decrease the size of the file into small and send it on the internet.
Applications of FTP
The following are the applications of FTP:
- FTP connection is used by different big business organizations for transferring files in between them, like sharing files to other employees working at different locations or different branches of the organization.
- FTP connection is used by IT companies to provide backup files at disaster recovery sites.
- Financial services use FTP connections to securely transfer financial documents to the respective company, organization, or government.
- Employees use FTP connections to share any data with their co-workers.
- Multiple transfers: FTP helps to transfer multiple large files in between the systems.
- Efficiency: FTP helps to organize files in an efficient manner and transfer them efficiently over the network.
- Security: FTP provides access to any user only through user ID and password. Moreover, the server can create multiple levels of access.
- Continuous transfer: If the transfer of the file is interrupted by any means, then the user can resume the file transfer whenever the connection is established.
- Simple: FTP is very simple to implement and use, thus it is a widely used connection.
- Speed: It is the fastest way to transfer files from one computer to another.
- Less security: FTP does not provide an encryption facility when transferring files. Moreover, the username and passwords are in plain text and not a combination of symbols, digits, and alphabets, which makes it easier to be attacked by hackers.
- Old technology: FTP is one of the oldest protocols and thus it uses multiple TCP/IP connections to transfer files. These connections are hindered by firewalls.
- Virus: The FTP connection is difficult to be scanned for viruses, which again increases the risk of vulnerability.
- Limited: The FTP provides very limited user permission and mobile device access.
- Memory and programming: FTP requires more memory and programming efforts, as it is very difficult to find errors without the commands.