FTP stands for 'File Transfer Protocol', which, as the name would suggest, is designed to allow files to be transferred between hosts on the Internet. It is the most popular protocol for transferring large amounts of data on the Internet. FTP addresses have a similar syntax to a World Wide Web address: the prefix is 'ftp://' instead of 'http://'. The objectives of FTP are fourfold, as highlighted by Jon Postel in RFC 765.
Presently, the File Transfer Protocol (FTP) uses the Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) to complete the transfer of files. The TCP and UDP protocols enable data packets to be sent and received in a reliable and orderly manner. The TCP and UDP protocols use the combination of an IP address and a port number to complete a communications session. Port numbers are assigned to a specific application protocol, and the port numbers assigned to FTP are:
The File Transfer Protocol (FTP) was written for the ARPANET computer network in the early 1970's. ARPANET was a forerunner to the Internet, and pioneered packet switching. The first version of FTP was authored by Abhay Bhushan: Bhushan was born in Allahabad, India, and went on to study at the Massachusetts Institute of Technology. It was at MIT, from 1970-1971, that Bhushan wrote the File Transfer Protocol.
The version of FTP that Bhushan wrote was designed to work with the Network Control Program (NCP): the original protocol program of ARPANET. TCP/IP was developed from 1973-1980, and in 1983, it replaced the Network Control Program (NCP) on ARPANET. Therefore, the File Transfer Protocol (FTP) had to be updated to be compatible with TCP/IP: which it was from 1980-1985.
The last major update of the File Transfer Protocol (FTP) was in 1998: this was due to the release of the Internet Protocol (IP) Version 6. IPv6 created 128bit IP addresses - previously they were 32-bit - and FTP needed to be updated to support the new 128bit addresses.
The File Transfer Protocol is an application layer protocol of the Internet protocol suite (TCP/IP). The protocols of the application layer typically use a client-server model, and typically use the TCP and UDP transport layer protocols to complete communication sessions. Within a client-server model, an end-user will install a client program, and the client program will request data from an Internet server (computer). The client program will use FTP and TCP to complete the request for data. Listed below are some examples of a FTP client program: