The vast network of computers, which is the Internet, is controlled by an elaborate set of TCP/IP rules, which enable communication and data transfer. Every connection between computers on this network is like a conversation.
Under the Internet Protocol suite model, FTP is part of the application level protocols that enable communication between machines. It was developed by Abhay Bhushan (an IIT Kanpur and MIT alumni) in the 1970s, while working on the ARPAnet project. The protocol has undergone many revisions since then, though the core remains the same.
About File Transfer Protocol (FTP)
The name itself is self-explanatory. This protocol enables the transfer of files between computers that are connected over a network, including the Internet. In technical language, FTP is known as a network protocol that enables the transfer of files between computers, that are connected on a TCP/IP based network.
It includes a set of rules and procedures for secured digital data transfer. This includes authentication and error-handling techniques for establishing connection between a host and client computer for data exchange. Similarly, the Hyper Text Transfer protocol (HTTP), handles transfer of web pages from server to client computers.
An FTP transfer is initiated between any server and client computer via port number 21 of the server. This connection is called the control connection of any FTP session. The data transfer is enabled by an associated port 20 connection with the server.
The control connection must be sustained throughout the data transfer session, for successful file exchange. In the early days, these connections were established through command line interfaces, but today you can use graphic user interfaces, which have made the sessions easier to establish.
Data can be transferred in either block mode, compressed mode, or stream mode. FTP does not have inbuilt encryption for data transfer, which makes it quite vulnerable to brute force attacks, bounce attacks, and even spoof attacks.
When sensitive data needs to be transferred, FTP is not the first choice. Secure shell protocols are preferred in these cases. Secure File Transfer Protocol (SFTP) is another advanced network protocol, which provides more protection for file transfers and file management, through remote access.
It is also used for intra-network file transfer on small networking systems. Most programs, including web browsers have inbuilt support for FTP-based data transfers.
As mentioned before, though very simple to implement, FTP is not very secure. Its vulnerabilities have been exposed due to lack of encryption capabilities but it also remains one of the fastest ways of transferring files.
If you are planning to start your own website, you will need to know how this protocol works. There are clients (like CuteFTP), which can make your job substantially simpler.