FTP
FTP is an acronym for File Transfer Protocol, which is a TCP/IP based network protocol just like the HTTP used to transmit files from one computer to another through the internet. FTP is designed to transfer small multiple files such as images on a web page instead of transferring a single large file. This standard protocol supports pausing, scheduling and restarting of file downloads.
Objectives of FTP edit
Based on RFC 969, FTP has four primary objectives which include:
- promote file sharing (computer programs and/or data)
- encourage of indirect or implicit use of remote computers
- shield a user from variations in file storage systems among hosts
- transfer data reliably and efficiently
Background edit
File Transfer Protocol was first introduced by Abhay Bhustan from the Massachusetts Institute of Technology (MIT) Project MAC on April 16, 1971 through RFC 114, which provides the standard definition and the basic commands of the protocol enabling devices specifically computers to communicate or transfer files or messages with each other. [1] [2]
RFC 114 was updated by several RFCs to improve the specifications of FTP such ad RFC 172, RFC 265. On July 8, 1972, Bhustan introduced a major revision of the FTC specifications through RFC 354. Based on the RFC, FTP aims to allow the efficient and reliable transfer of files among HOSTs as well as the convenient use of remote file storage capabilities. [3] Subsequent RFCs were further released providing more improvements on the protocol including RFC 542 in 1973.
In 1974, RFCs 607, 614 and 624 proposed changes in the design of the FTP. These RFCs were followed by RFCs 686 and RFC 691, which provided additional information regarding the printing of files.
The first FTP standard protocol was RFC 765, which was published by Jon Postel in June 1980. This specification described the transition of using TCP instead of NCP as the fundamental protocol for FTP. [4]
Current FTP Standard Specification edit
The latest FTP standard specification implemented by the Internet Engineering Task Force (IETF) was RFC 959 which was published by Jon Postel and Joyce Reynolds on October 1985. The current RFC included new commands such as CDUP (Change to Parent Directory), SMNT (Structure Mount), STOU (Store Unique), RMD (Remove Directory), MKD (Make Directory), PWD (Print Directory) and SYST (System).[5]
FTP Commands edit
Access Control Commands edit
- USER NAME (USER)
- PASSWORD (PASS)
- ACCOUNT (ACCT)
- CHANGE WORKING DIRECTORY (CWD)
- CHANGE TO PARENT DIRECTORY (CDUP)
- STRUCTURE MOUNT (SMNT)
- REINITIALIZE (REIN)
- LOGOUT (QUIT)
Transfer Parameter Commands edit
- DATA PORT (PORT)
- PASSIVE (PASV)
- REPRESENTATION TYPE (TYPE)
- FILE STRUCTURE (STRU)
- TRANSFER MODE (MODE)
FTP Service Commands edit
- RETRIEVE (RETR)
- STORE (STOR)
- STORE UNIQUE (STOU)
- APPEND (with create) (APPE)
- ALLOCATE (ALLO)
- RESTART (REST)
- RENAME FROM (RNFR)
- RENAME TO (RNTO)
- ABORT (ABOR)
- DELETE (DELE)
- REMOVE DIRECTORY (RMD)
- MAKE DIRECTORY (MKD)
- PRINT WORKING DIRECTORY (PWD)
- LIST (LIST)
- NAME LIST (NLST)
- SITE PARAMETERS (SITE)
- SYSTEM (SYST)
- HELP (HELP)
- NOOP (NOOP)