File Transfer Protocol

File Transfer Protocol (FTP) is a program that allows the transfer of files from one computer to another over the Internet. FTP is most often used to share files between an individual, or client computer, and a network server. A protocol is a set of common rules developed so that different computers can communicate with one another. FTP is one of the oldest network protocols, developed in the 1970s during the earliest days of the Internet. Some modern computers allow users to access FTP to download simple files directly through their web browsers. Uploading files or downloading more complex data often requires a user to log on to an FTP server to orchestrate the transfer.

Background

The precursor to the modern Internet was developed as a joint effort between scientists and the United States military during the 1960s. It was considered a backup communications plan in case an attack by the Soviet Union destroyed the nation's infrastructure. The concept was originally proposed as a "galactic network" of computers that could communicate with one another without the use of the telephone system. The problem occurred in finding an information-transferral method that would be less vulnerable to enemy attack. In 1965, a scientist at the Massachusetts Institute of Technology (MIT) developed a system called "packet switching," which breaks down data into smaller blocks and transmits it to its destination over various routes. Once there, it is reassembled into its original form.

By 1969, the government's network was operational and soon grew to include computers in universities and research centers around the world. With many computers now part of the fledgling network, sharing information was often difficult because computers did not always speak the same technological "language." The first set of standard rules, or protocols, for transferring files among systems was developed in 1971 to allow computers at MIT to communicate with one another. The protocols were developed by a standards group called the Internet Engineering Task Force and labeled RFC 141 (short for Request for Comments 141). The standards were improved several times until 1985 when RFC 959 was formalized. While these protocols have been amended, RFC 959 was still in place as the FTP standard as of 2016.

Overview

Most computer users have used FTP at some point without even noticing. Many web browsers, such as the ones used by Microsoft Windows, come with a text-based version of the FTP program to allow for simple downloads. This version is called Trivial File Transfer Protocol (TFTP). In most cases, transferring larger files or uploads requires a connection between a client computer and an FTP server. A computer user installs an FTP client program on his or her individual device that allows the computer to communicate with an FTP server at another location. The server acts as a storage unit for files and data and allows the client computer to send or receive information from the server.

The initial contact between the client and server is typically made over an open port, or connection, called TCP port 21. TCP stands for Transmission Control Protocol and is one of the fundamental sets of technological rules for running the Internet. Servers contain a number of ports, each with its own specific function. The initial connection is referred to as the "command connection" or "command channel." Before any transfer of data can occur, the client computer must first identify itself to the server. In many cases, the user needs to enter a username and password to proceed. Some public FTP servers use an automatic default name and password to allow access.

Once the user's identity has been established, the client computer sets up a random port on itself to communicate with the server. The two computers then inform each other of the connection so that data transfer can begin. This connection is used only to transmit files and information from the client computer to the server. To receive data from the server, the client computer must open a new port and inform the server where to send the information. The server then opens a new connection, port 20, and transmits the data. Most software allows data transfers to be performed by dragging and dropping files from the server to the computer and vice versa. Once the process is finished, the client computer severs the connection to the server.

FTP can support two kinds of data exchanges. The first is plain text, or ASCII (American Standard Code for Information Interchange), an encoding standard used for the transfer of text files over the Internet. The other is a binary file, a numeric data file that can be read only by a computer. Binary files are typically used to transfer larger amounts of data such as a program or music. Before files are transferred, the client computer must inform the server of the type of file being sent. Sending a text or binary file while in the opposite mode will make the file unusable.

In addition to the basic form of FTP, two variations are available that add extra security to the process to protect users' personal information. FTPS is similar to the basic FTP method but adds an extra layer of security called SSL (Secure Sockets Layer) encryption to the transfer. Before the user sends a username or password, the client computer requests the server open an SSL-encrypted connection, and the information exchange and data transfer proceeds through this port. Information sent through this connection is "scrambled" at the source by a computer algorithm and deciphered at the other end. Another security protocol, SFTP, is a more modern method and is considered more reliable than FTPS. SFTP also establishes a protected connection between client and server but uses SSH (Secure Shell) protocols to secure the connection. This method breaks the files into packets of data and transmits them over the secured connection. It also removes the ability to bypass or turn off encryption filters manually.

Bibliography

Blank, Andrew G. TCP/IP Foundations. SYBEX, 2004.

"FTP Protocol (File Transfer Protocol)." CCM Benchmark Group, 20 Oct. 2022, ccm.net/contents/272-ftp-protocol-file-transfer-protocol. Accessed 13 Jan. 2025.

"The Invention of the Internet" History.com, www.history.com/topics/inventions/invention-of-the-internet. Accessed 13 Jan. 2025.

Miller, Philip. "File Transfer Protocols." TCP/IP: The Ultimate Protocol Guide, Vol. 2. Brown Walker Press, 2009, pp. 607–638.

Pstatz. "FTP for Beginners." Wired, 15 Feb. 2010, www.wired.com/2010/02/ftp‗for‗beginners/. Accessed 13 Jan. 2025.