Generated by DeepSeek V3.2| RFC 959 | |
|---|---|
| Name | File Transfer Protocol |
| Developer | Internet Engineering Task Force |
| Date | October 1985 |
| Based on | RFC 765 |
| Influenced | FTPS, SFTP, WebDAV |
RFC 959. Published in October 1985 by the Internet Engineering Task Force, this document is the definitive specification for the File Transfer Protocol, commonly known as FTP. It obsoletes the earlier RFC 765 and standardizes a client-server model for transferring files between hosts on a TCP/IP network. The protocol's design, featuring separate control and data connections, became a foundational technology for data exchange on the early Internet and ARPANET.
The protocol defines a network architecture where a user initiates a session with a remote server using a dedicated client program. It operates using two distinct Transmission Control Protocol channels: a control connection for issuing commands and a data connection for the actual transfer of files and directory listings. This model allows for efficient management of file operations across diverse systems, facilitating its adoption on platforms ranging from Unix to IBM mainframes. The specification was authored by members of the IETF working group, building upon years of operational experience from its predecessors.
The technical foundation relies on establishing a control connection, typically on TCP port 21, which remains open for the duration of the session. Data transfers occur over a separate, dynamically established data connection, which can operate in active or passive mode to accommodate different network configurations like firewalls. Data representation is handled through specified ASCII and EBCDIC types, with support for byte size and structure. The protocol also includes mechanisms for defining data types and transmission modes, influencing later protocols such as Trivial File Transfer Protocol.
Communication is conducted via a standardized set of commands sent over the control connection, with the server replying with three-digit numeric codes and human-readable text. Core commands include `USER` for authentication, `RETR` for retrieving a file, `STOR` for storing a file, and `LIST` for obtaining directory information. Responses are categorized by their first digit, indicating success, intermediate status, or error conditions, a system that informed the design of other application-layer protocols like SMTP. The extensibility of the command set allowed for future enhancements documented in subsequent Request for Comments publications.
Session management involves a clear sequence: opening the control connection, user authentication, and then establishing data connections as needed for each transfer operation. The specification details both active mode, where the server opens a data connection back to the client, and passive mode, where the client initiates the data connection to the server. This flexibility was crucial for operation across various network topologies and later for traversing Network Address Translation devices. The model of ephemeral data connections contrasts with the persistent sessions used in protocols like SSH File Transfer Protocol.
The original specification transmits all data, including authentication credentials like usernames and passwords, in clear text without encryption. This major vulnerability led to the development of secure extensions, such as FTPS which uses Transport Layer Security, and the promotion of alternative protocols like Secure Shell's SFTP. The lack of integrity checks and confidentiality mechanisms highlighted the evolving security needs of the Internet, influencing the design principles of the IETF's later work on security standards.
For decades, it served as the primary method for distributing software, documents, and data across academic, government, and commercial networks, including NASA and CERN. Its influence is seen in the command syntax of modern tools and the architecture of subsequent file transfer solutions. While largely supplanted by Hypertext Transfer Protocol for web content and more secure alternatives for system administration, it remains in use in legacy systems, specialized applications, and within certain intranet environments. Its historical significance is recognized in the evolution of computer networking and Internet protocol suite standards. Category:Internet standards Category:Application layer protocols Category:File transfer protocols