This article lists communication protocols that are designed for file transfer over a telecommunications network.

Protocols for shared file systems—such as 9P and the Network File System—are beyond the scope of this article, as are file synchronization protocols.

Protocols for packet-switched networks A packet-switched network transmits data that is divided into units called packets. A packet comprises a header (which describes the packet) and a payload (the data). The Internet is a packet-switched network, and most of the protocols in this list are designed for its protocol stack, the IP protocol suite.

They use one of two transport layer protocols: the Transmission Control Protocol (TCP) or the User Datagram Protocol (UDP). In the tables below, the "Transport" column indicates which protocol(s) the transfer protocol uses at the transport layer. Some protocols designed to transmit data over UDP also use a TCP port for oversight.

The "Server port" column indicates the port from which the server transmits data. In the case of FTP, this port differs from the listening port. Some protocols—including FTP, FTP Secure, FASP, and Tsunami—listen on a "control port" or "command port", at which they receive commands from the client.

Similarly, the encryption scheme indicated in the "Encryption" column applies to transmitted data only, and not to the authentication system.

Overview Protocol Original author First published Protocol suite Standard Full name Abbreviation Background Intelligent Transfer Service BITS Microsoft 2001 BitTorrent BT Bram Cohen 2001 CCSDS File Delivery Protocol CFDP 2002 Cross File Transfer CFT Ether File Transfer Protocol EFTP John Shoch 1979 PARC Universal Packet Fast and Secure Protocol FASP Ying Xu, Michelle Munson, Serban Simu 2007 File Delivery over Unidirectional Transport FLUTE Internet Society 2004 File Service Protocol FSP Wen-King Su 1991 File Transfer Access and Management FTAM 1988 File Transfer Protocol FTP Abhay Bhushan 1971 Internet protocol suite FTP Secure FTPS Internet Society 1997 Internet protocol suite HTTP Secure HTTPS Taher Elgamal et al. 1995 Internet protocol suite Host Unix Linkage File Transfer HULFT 1993 Hypertext Transfer Protocol HTTP Tim Berners-Lee et al. 1991 Internet protocol suite Micro Transport Protocol μTP Ludvig Strigeus, Greg Hazel, Stanislav Shalunov, Arvid Norberg, Bram Cohen 2007 Multicast Dissemination Protocol MDP 1993 Multicast File Transfer Protocol MFTP C. Kenneth Miller et al. 1995 NACK-Oriented Reliable Multicast Transport Protocol NORM 2000 Odette File Transfer Protocol OFTP Organisation for Data Exchange by Tele Transmission in Europe 1986 X.25 Odette File Transfer Protocol 2 OFTP2 Organisation for Data Exchange by Tele Transmission in Europe 2007 X.25, Internet protocol suite Reliable Blast UDP RBUDP Eric He et al. 2002 Remote copy rcp 1982 Internet protocol suite Secure copy SCP Tatu Ylönen 1995 Secure Shell Secure Hypertext Transfer Protocol S-HTTP IETF Web Transaction Security Working Group 1999 Simple Asynchronous File Transfer SAFT Ulli Horlacher 1995 Simple File Transfer Protocol SFTP Mark K. Lottor 1984 Lottor (1984), pp. 1, 13 SSH file transfer protocol SFTP Tatu Ylönen Secure Shell T.127 T.127 ITU 1995 Trivial File Transfer Protocol TFTP Noel Chiappa 1980 Internet protocol suite Tsunami UDP Protocol Tsunami Mark Meiss et al. 2002 Tus open protocol for resumable file uploads tus Felix Geisendörfer, Marius Kleidl et al. 2014 UDP-based Data Transfer Protocol UDT Yunhong Gu 2004 UDP-based File Transfer Protocol UFTP Dennis Bush 2001 Unix-to-Unix Copy UUCP Mike Lesk 1979 Warp Speed Data Transfer WDT Laurent Demailly et al. 2015

Features The "Managed" column indicates whether the protocol is designed for managed file transfer (MFT). MFT protocols prioritise secure transmission in industrial applications that require such features as auditable transaction records, monitoring, and end-to-end data security. Such protocols may be preferred for electronic data interchange.

Protocol Encryption Transferresuming Multicastcapable Managed BITS BitTorrent CCSDS File Delivery Protocol (CFDP) Cross File Transfer (CFT) Ether File Transfer Protocol (EFTP) Fast and Secure Protocol (FASP) File Delivery over Unidirectional Transport (FLUTE) File Service Protocol (FSP) File Transfer Access and Management (FTAM) File Transfer Protocol (FTP) FTP Secure (FTPS) HTTP Secure (HTTPS) Host Unix Linkage File Transfer (HULFT) Hypertext Transfer Protocol (HTTP) Micro Transport Protocol (μTP) Multicast Dissemination Protocol (MDP) Multicast File Transfer Protocol (MFTP) NACK-Oriented Reliable Multicast Transport Protocol (NORM) Odette File Transfer Protocol (OFTP) Odette File Transfer Protocol 2 (OFTP2) Reliable Blast UDP (RBUDP) Remote copy (rcp) Secure copy (SCP) Secure Hypertext Transfer Protocol (S-HTTP) Simple Asynchronous File Transfer (SAFT) Simple File Transfer Protocol (SFTP) Lottor (1984), p. 10 SSH file transfer protocol (SFTP) T.127 Trivial File Transfer Protocol (TFTP) Tsunami UDP Protocol Tus open protocol for resumable file uploads (tus) UDP-based Data Transfer Protocol (UDT) UDP-based File Transfer Protocol (UFTP) Unix-to-Unix Copy (UUCP) Warp Speed Data Transfer (WDT)

Ports In the table below, the data port is the network port or range of ports through which the protocol transmits file data. The control port is the port used for the dialogue of commands and status updates between client and server.

The column "Assigned by IANA" indicates whether the port is listed in the Service Name and Transport Protocol Port Number Registry, which is curated by the Internet Assigned Numbers Authority (IANA). IANA devotes each port number in the registry to a specific service with a specific transport protocol. The table below lists the transport protocol in the "Transport" column.

Protocol Data port Control port Assigned Assignee Server Client Transport Server Client Transport BITS 80/443 / 137–139 TCP / UDP BitTorrent 6881 6881 TCP 6881 6881 TCP CCSDS File Delivery Protocol (CFDP) Cross File Transfer (CFT) 1761 TCP / X.25 Ether File Transfer Protocol (EFTP) Fast and Secure Protocol (FASP) ≥33001 UDP 22 TCP File Delivery over Unidirectional Transport (FLUTE) 4001 UDP File Service Protocol (FSP) UDP File Transfer Access and Management (FTAM) 4800 / 102 TCP File Transfer Protocol (FTP) Active mode 20 20 TCP 21 ≥1024 TCP rowspan="2" Jon Postel Passive mode ≥1024 ≥1024 FTP Secure (FTPS) 989 TCP 990 TCP Christopher Allen HTTP Secure (HTTPS) 443 TCP TCP IESG Host Unix Linkage File Transfer (HULFT) 30000 TCP TCP Hypertext Transfer Protocol (HTTP) 80 TCP TCP Tim Berners-Lee Micro Transport Protocol (μTP) UDP Multicast Dissemination Protocol (MDP) UDP Multicast File Transfer Protocol (MFTP) 5402 UDP Steve Bannister NACK-Oriented Reliable Multicast Transport Protocol (NORM) UDP Odette File Transfer Protocol (OFTP) 3305 TCP / X.25 TCP / X.25 Odette File Transfer Protocol 2 (OFTP2) 6619 TCP / X.25 TCP / X.25 Reliable Blast UDP (RBUDP) UDP Remote copy (rcp) 514 TCP TCP Secure copy (SCP) 22 TCP TCP Secure Hypertext Transfer Protocol (S-HTTP) 80 TCP TCP Simple Asynchronous File Transfer (SAFT) 487 TCP Ulli Horlacher Simple File Transfer Protocol (SFTP) 115 TCP TCP Mark Lottor SSH file transfer protocol (SFTP) 22 TCP TCP T.127 1503 TCP TCP Jim Johnston Trivial File Transfer Protocol (TFTP) 69 UDP David Clark Tsunami UDP Protocol UDP TCP Tus open protocol for resumable file uploads (tus) 80 TCP TCP UDP-based Data Transfer Protocol (UDT) UDP UDP-based File Transfer Protocol (UFTP) 1044 UDP Unix-to-Unix Copy (UUCP) 540 TCP TCP Warp Speed Data Transfer (WDT) TCP TCP

Serial protocols

The following protocols were designed for serial communication, mostly for the RS-232 standard. They are used for uploading and downloading computer files via modem or serial cable (e.g., by null modem or direct cable connection). UUCP is one protocol that can operate with either RS-232 or the Transmission Control Protocol as its transport. The Kermit protocol can operate over any computer-to-computer transport: direct serial, modem, or network (notably TCP/IP, including on connections secured by SSL, SSH, or Kerberos). OBject EXchange is a protocol for binary object wireless transfer via the Bluetooth standard. Bluetooth was conceived as a wireless replacement for RS-232.

Overview Protocol Author First released License Description BiModem Erik Labs 1989 Bi-directional transfers. BLAST Communications Research Group 1981 Powerful protocol originating on the Data General Nova minicomputer, and then ported to micros and mainframes. C-MODEM Lavio Pareschi 1989 Packet lengths from 32 to 4096 bytes, optional (but normally used) streaming mode. B protocol CompuServe 1981 Offered file transfer as well as a command stream. JMODEM Richard B. Johnson XMODEM derivative with blocks from 512 to 8192 bytes and RLE compression. HS/Link Samuel H. Smith 1991 Kermit Frank da Cruz et al. 1981 Open Source (BSD) as of 2011 Transport- and platform-independent transfer of text and binary files across full- or half-duplex connections with conversion of text file formats and character sets. da Cruz (1987) p. 3 LeechModem Sam Brown Variations of X and Y that faked failed downloads in order to avoid BBS download quotas. Lynx Matthew Thomas 1989 Similar to Kermit: 64-byte packets, 2 to 16 packets per window, CRC-32. Little or no support outside the Lynx program itself. NMODEM L. B. Neal 1990 Essentially XMODEM-CRC with 2048 byte blocks. OBEX File Transfer Protocol A synchronous file transfer protocol in the OBject EXchange (OBEX) Bluetooth profile. OBEX Push An asynchronous file transfer protocol in the OBject EXchange (OBEX) Bluetooth profile. Punter Steve Punter Suite of similar-but-different XMODEM-like protocols for various Commodore machines. SEAlink Thom Henderson 1986 A MODEM7/XMODEM-compatible protocol with sliding window support developed to avoid propagation delays in satellite transmissions and packet networks. SMODEM Arisoft TMODEM Mike Bryeans UUCP Mike Lesk 1979 Suite of protocols for copying files between Unix machines, used for many purposes including the distribution of email. Also allows commands to be sent, which led to the first internet worms. The file transfer protocol within UUCP is the "g" protocol. MODEM7 Mark M. Zeigler, James K. Mills 1980 Slight extension of XMODEM to add filename support and batch transfers. XMODEM Ward Christensen 1977 Very simple protocol that saw widespread use and provided the pattern for many following protocols. Glass (1988) p. 87 WXMODEM Peter Boswell 1986 Version of XMODEM with sliding windows for higher performance. Glass (1988) p. 89 YMODEM Chuck Forsberg 1985 Series of optional expansions on XMODEM for higher performance. ZMax Mike Bryeans Modifications to ZMODEM to allow packets up to 32 kB in length. ZMODEM Chuck Forsberg 1986 Streaming protocol that forsakes XMODEM compatibility but offers a wide variety of new features and improved performance. Became almost universal on BBS systems in the early 1990s.

Features Protocol Data block size Datacompression Error detection Transferresuming Bidirectional Sliding window BiModem BLAST 84–1024+ RLE CRC C-MODEM 32–4096 CRC B protocol 128–2048 CRC-32 / CRC-16 / 8-bit checksum JMODEM 64–8192 RLE HS/Link CRC-32 Kermit ≤9024 (negotiated) RLE (run length encoding, negotiated) Checksum or CRC-16 (negotiated) (binary files only, negotiated) da Cruz (1987) pp. 234, 253, 307 LeechModem Lynx RLE CRC-32 NMODEM 2048 OBject EXchange Punter SEAlink SMODEM Tmodem UUCP "g" ≤4096 MODEM7 128 Checksum XMODEM 128 Checksum WXMODEM ≤512 YMODEM 1024 CRC-16 ZMax ≤~32,768 CRC-32 ZMODEM 256 / 1024 CRC-32

See also

Notes

References

Further reading