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

Color key:     International standard     Internet Standard     Proposed Standard     Internet Draft
ProtocolOriginal authorFirst publishedProtocol suiteStandardRefs
Full nameAbbreviation
Background Intelligent Transfer ServiceBITSMicrosoft2001—N/aNo
BitTorrentBTBram Cohen2001—N/aNo
CCSDS File Delivery ProtocolCFDP2002—N/aISO CCSDS
Cross File TransferCFT—N/aNo
Ether File Transfer ProtocolEFTPJohn Shoch1979PARC Universal PacketNo
Fast and Secure ProtocolFASPYing Xu, Michelle Munson, Serban Simu2007—N/aNo
File Delivery over Unidirectional TransportFLUTEInternet Society2004—N/aRFC
File Service ProtocolFSPWen-King Su1991—N/aNo
File Transfer Access and ManagementFTAM1988ISO
File Transfer ProtocolFTPAbhay Bhushan1971Internet protocol suiteRFC
FTP SecureFTPSInternet Society1997Internet protocol suiteRFC ,
HTTP SecureHTTPSTaher Elgamal et al.1995Internet protocol suiteRFC
Host Unix Linkage File TransferHULFT?1993—N/aNo
Hypertext Transfer ProtocolHTTPTim Berners-Lee et al.1991Internet protocol suiteRFC
Micro Transport ProtocolμTPLudvig Strigeus, Greg Hazel, Stanislav Shalunov, Arvid Norberg, Bram Cohen2007—N/aNo
Multicast Dissemination ProtocolMDP1993No
Multicast File Transfer ProtocolMFTPC. Kenneth Miller et al.1995—N/a(1998)
NACK-Oriented Reliable Multicast Transport ProtocolNORM2000RFC
Odette File Transfer ProtocolOFTPOrganisation for Data Exchange by Tele Transmission in Europe1986X.25RFC
Odette File Transfer Protocol 2OFTP2Organisation for Data Exchange by Tele Transmission in Europe2007X.25, Internet protocol suiteRFC
Reliable Blast UDPRBUDPEric He et al.2002—N/aNo
Remote copyrcp?1982Internet protocol suiteNo
Secure copySCPTatu Ylönen1995Secure ShellNo
Secure Hypertext Transfer ProtocolS-HTTPIETF Web Transaction Security Working Group1999—N/aRFC
Simple Asynchronous File TransferSAFTUlli Horlacher1995—N/aNo
Simple File Transfer ProtocolSFTPMark K. Lottor1984—N/aRFC
SSH file transfer protocolSFTPTatu Ylönenc. 1997Secure Shell(2006)
T.127T.127ITU1995—N/aITU
Trivial File Transfer ProtocolTFTPNoel Chiappa1980Internet protocol suiteRFC
Tsunami UDP ProtocolTsunamiMark Meiss et al.2002—N/aNo
Tus open protocol for resumable file uploadstusFelix Geisendörfer, Marius Kleidl et al.2014—N/aNo
UDP-based Data Transfer ProtocolUDTYunhong Gu2004—N/aNo
UDP-based File Transfer ProtocolUFTPDennis Bush2001—N/aNo
Unix-to-Unix CopyUUCPMike Lesk1979—N/aNo
Warp Speed Data TransferWDTLaurent Demailly et al.2015—N/aNo

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.

ProtocolEncryption (data)Transfer resumingMulticast capableManagedRefs
BITSOptional TLS / AES-128YesNoNo
BitTorrentNoneYesPeer-to-peerNo
CCSDS File Delivery Protocol (CFDP){{{1}}}YesNoNo
Cross File Transfer (CFT)TLS / SSLYes
Ether File Transfer Protocol (EFTP)None?NoNo
Fast and Secure Protocol (FASP)AES-256 / AES-192 / AES-128YesNo
File Delivery over Unidirectional Transport (FLUTE)Optional/UnspecifiedNoYes
File Service Protocol (FSP)NoneYesNoNo
File Transfer Access and Management (FTAM)?
File Transfer Protocol (FTP)NoneYesNoNo
FTP Secure (FTPS)TLS / SSLYesNoNo
HTTP Secure (HTTPS)TLS / SSLYesNoNo
Host Unix Linkage File Transfer (HULFT)AES?No
Hypertext Transfer Protocol (HTTP)None (see HTTPS and S-HTTP)YesNoNo
Micro Transport Protocol (μTP)NoneYesPeer-to-peerNo
Multicast Dissemination Protocol (MDP)NoneYesYes
Multicast File Transfer Protocol (MFTP)NoneYesYesNo
NACK-Oriented Reliable Multicast Transport Protocol (NORM)IPsecYesYes
Odette File Transfer Protocol (OFTP)NoneYes
Odette File Transfer Protocol 2 (OFTP2)TLSYes
Reliable Blast UDP (RBUDP)NoneNoNo
Remote copy (rcp)NoneNoNoNo
Secure copy (SCP)Secure ShellNoNoNo
Secure Hypertext Transfer Protocol (S-HTTP)CMS / MOSS / otherNoNoNo
Simple Asynchronous File Transfer (SAFT)PGP?NoNo
Simple File Transfer Protocol (SFTP)NoneYesNoNo
SSH file transfer protocol (SFTP)Secure ShellYesNoNo
T.127NoneYesYesNo
Trivial File Transfer Protocol (TFTP)NoneNoNoNo
Tsunami UDP ProtocolNoneNoNoNo
Tus open protocol for resumable file uploads (tus)Optional/UnspecifiedYesNoNo
UDP-based Data Transfer Protocol (UDT)ExperimentalNoNoNo
UDP-based File Transfer Protocol (UFTP)AES-256 / AES-128 / 3DES / DESYesYesNo
Unix-to-Unix Copy (UUCP)NoneSomeNoNo
Warp Speed Data Transfer (WDT)AES-128 (OFB / CTR)YesNoNo

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.

ProtocolData portControl portAssigned by IANAAssigneeRefs
ServerClientTransportServerClientTransport
BITS80/443 / 137–139TCP / UDPNo—N/a
BitTorrent68816881TCP68816881TCPNo—N/a
CCSDS File Delivery Protocol (CFDP)
Cross File Transfer (CFT)1761TCP / X.25
Ether File Transfer Protocol (EFTP)—N/a—N/aNone—N/a—N/aNone—N/a—N/a
Fast and Secure Protocol (FASP)≥33001UDP22TCPNo—N/a
File Delivery over Unidirectional Transport (FLUTE)4001UDPNo—N/a
File Service Protocol (FSP)Chosen by userUDPNo—N/a
File Transfer Access and Management (FTAM)4800 / 102TCP
File Transfer Protocol (FTP)Active mode2020TCP21≥1024TCPYesJon Postel
Passive mode≥1024≥1024
FTP Secure (FTPS)989TCP990TCPYesChristopher Allen
HTTP Secure (HTTPS)443TCPTCPYesIESG
Host Unix Linkage File Transfer (HULFT)30000TCPTCPNo—N/a
Hypertext Transfer Protocol (HTTP)80TCPTCPYesTim Berners-Lee
Micro Transport Protocol (μTP)UDPNo—N/a
Multicast Dissemination Protocol (MDP)Chosen by userUDP
Multicast File Transfer Protocol (MFTP)5402UDPYesSteve Bannister
NACK-Oriented Reliable Multicast Transport Protocol (NORM)UDP
Odette File Transfer Protocol (OFTP)3305TCP / X.25TCP / X.25
Odette File Transfer Protocol 2 (OFTP2)6619TCP / X.25TCP / X.25
Reliable Blast UDP (RBUDP)Chosen by userUDPNo—N/a
Remote copy (rcp)514TCPTCPYes
Secure copy (SCP)22TCPTCPYes
Secure Hypertext Transfer Protocol (S-HTTP)80TCPTCPNo—N/a
Simple Asynchronous File Transfer (SAFT)487TCPYesUlli Horlacher
Simple File Transfer Protocol (SFTP)115TCPTCPYesMark Lottor
SSH file transfer protocol (SFTP)22TCPTCPYes
T.1271503TCPTCPYesJim Johnston
Trivial File Transfer Protocol (TFTP)69UDPYesDavid Clark
Tsunami UDP ProtocolChosen by userUDPTCPNo—N/a
Tus open protocol for resumable file uploads (tus)80TCPTCPNo—N/a
UDP-based Data Transfer Protocol (UDT)Chosen by serverUDPNo—N/a
UDP-based File Transfer Protocol (UFTP)1044UDPNo—N/a
Unix-to-Unix Copy (UUCP)540TCPTCPYes
Warp Speed Data Transfer (WDT)Chosen by server or by userTCPTCPNo—N/a

Serial protocols

A 9-pin to 25-pin RS-232 adapter cable

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

ProtocolAuthorFirst releasedLicenseDescriptionRefs
BiModemErik Labs1989Bi-directional transfers.
BLASTCommunications Research Group1981Powerful protocol originating on the Data General Nova minicomputer, and then ported to micros and mainframes.
C-MODEMLavio Pareschi1989Packet lengths from 32 to 4096 bytes, optional (but normally used) streaming mode.
B protocolCompuServe1981Offered file transfer as well as a command stream.
JMODEMRichard B. Johnson?XMODEM derivative with blocks from 512 to 8192 bytes and RLE compression.
HS/LinkSamuel H. Smith1991
KermitFrank da Cruz et al.1981Open Source (BSD) as of 2011Transport- and platform-independent transfer of text and binary files across full- or half-duplex connections with conversion of text file formats and character sets.
LeechModemSam Brown?Variations of X and Y that faked failed downloads in order to avoid BBS download quotas.
LynxMatthew Thomas1989Similar to Kermit: 64-byte packets, 2 to 16 packets per window, CRC-32. Little or no support outside the Lynx program itself.
NMODEML. B. Neal1990Essentially 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.
PunterSteve Punter?Suite of similar-but-different XMODEM-like protocols for various Commodore machines.
SEAlinkThom Henderson1986A MODEM7/XMODEM-compatible protocol with sliding window support developed to avoid propagation delays in satellite transmissions and packet networks.
SMODEMArisoft?
TMODEMMike Bryeans?
UUCPMike Lesk1979Suite 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.
MODEM7Mark M. Zeigler, James K. Mills1980Slight extension of XMODEM to add filename support and batch transfers.
XMODEMWard Christensen1977Public domainVery simple protocol that saw widespread use and provided the pattern for many following protocols.
WXMODEMPeter Boswell1986Public domainVersion of XMODEM with sliding windows for higher performance.
YMODEMChuck Forsberg1985Public domainSeries of optional expansions on XMODEM for higher performance.
ZMaxMike Bryeansc. 1991Modifications to ZMODEM to allow packets up to 32 kB in length.
ZMODEMChuck Forsberg1986Public domainStreaming 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

ProtocolData block size (bytes)Data compressionError detectionTransfer resumingBidirectionalSliding windowRefs
BiModemYes
BLAST84–1024+RLECRCYesYesYes
C-MODEM32–4096CRCYes
B protocol128–2048CRC-32 / CRC-16 / 8-bit checksumYesYes
JMODEM64–8192RLE
HS/LinkCRC-32YesYes
Kermit≤9024 (negotiated)RLE (run length encoding, negotiated)Checksum or CRC-16 (negotiated)Yes (binary files only, negotiated)NoOver full-duplex only (negotiated)
LeechModem
LynxRLECRC-32Yes
NMODEM2048
OBject EXchange
Punter
SEAlinkYesYes
SMODEMYes
TmodemNo
UUCP "g"≤4096NoNo
MODEM7128NoChecksumStop-and-wait ARQ
XMODEM128NoChecksumStop-and-wait ARQ
WXMODEM≤512Yes
YMODEM1024NoCRC-16
ZMax≤~32,768CRC-32
ZMODEM256 / 1024NoCRC-32YesYes

See also

Notes

  • da Cruz, Frank (1987). . Bedford: Digital Press. ISBN 978-0-932376-88-6. OCLC – via Google Books.
  • da Cruz, Frank (June 1986). (PDF). KermitProject.org. The Kermit Project.
  • Glass, Brett (30 May 1988). "Xmodem Popular for Its Simplicity, Public Domain Status". InfoWorld – via Google Books.
  • Lottor, Mark K. (September 1984). . IETF. doi:. RFC .

Further reading

  • de Goyeneche, Juan-Mariano (20 March 1998). . Multicast over TCP/IP HOWTO – via The Linux Documentation Project.
  • He, Eric; Kettimuthu, Rajkumar; Gu, Yunhong; et al., (PDF), Survey of Protocols and Mechanisms for Enhanced Transport over LONG FAT PIPES, pp. 6–11
  • Kaplan, Ali (2009). "Literature Survey". (DOCX) (Ph.D. thesis). Indiana University Bloomington. pp. 12–39. ISBN 978-1-109-50327-2. OCLC .
  • Kientzle, Tim (1995). The Working Programmer's Guide to Serial Protocols. Coriolis Group Books. ISBN 978-1-883577-20-9. OCLC .
  • . KermitProject.org. The Kermit Project.
  • . KermitProject.org. The Kermit Project.