Comparison of file transfer protocols

From Wikipedia, the free encyclopedia

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

Summarize
Perspective

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

More information Protocol, Original author ...
Color key:     International standard     Internet Standard     Proposed Standard     Internet Draft
ProtocolOriginal authorFirst publishedProtocol suiteStandardRefs
Full nameAbbreviation
Background Intelligent Transfer ServiceBITSMicrosoft2001No[1]
BitTorrentBTBram Cohen2001No[2]
CCSDS File Delivery ProtocolCFDP2002ISO 17355:2007 (v4)
CCSDS 727.0-B-5
Cross File TransferCFTNo
Ether File Transfer ProtocolEFTPJohn Shoch1979PARC Universal PacketNo[3][4]
Fast and Secure ProtocolFASPYing Xu, Michelle Munson, Serban Simu2007No[5]
File Delivery over Unidirectional TransportFLUTEInternet Society2004RFC 6726[6]
File Service ProtocolFSPWen-King Su1991No[7][8]
File Transfer Access and ManagementFTAM1988ISO 8571-4:1988
File Transfer ProtocolFTPAbhay Bhushan1971Internet protocol suiteRFC 959[9]
FTP SecureFTPSInternet Society1997Internet protocol suiteRFC 2228, 4217[10][11]
HTTP SecureHTTPSTaher Elgamal et al.1995Internet protocol suiteRFC 9110[12][13]
Host Unix Linkage File TransferHULFT ?1993No
Hypertext Transfer ProtocolHTTPTim Berners-Lee et al.1991Internet protocol suiteRFC 9110[14][15]
Micro Transport ProtocolμTPLudvig Strigeus, Greg Hazel, Stanislav Shalunov, Arvid Norberg, Bram Cohen2007No[16][17]
Multicast Dissemination ProtocolMDP1993No
Multicast File Transfer ProtocolMFTPC. Kenneth Miller et al.1995IETF Draft (1998)[18]
NACK-Oriented Reliable Multicast Transport ProtocolNORM2000RFC 5740
Odette File Transfer ProtocolOFTPOrganisation for Data Exchange by Tele Transmission in Europe1986X.25RFC 6726[19]
Odette File Transfer Protocol 2OFTP2Organisation for Data Exchange by Tele Transmission in Europe2007X.25, Internet protocol suiteRFC 5024[20]
Reliable Blast UDPRBUDPEric He et al.2002No[21]
Remote copyrcp ?1982Internet protocol suiteNo[22]
Secure copySCPTatu Ylönen1995Secure ShellNo[23]
Secure Hypertext Transfer ProtocolS-HTTPIETF Web Transaction Security Working Group1999RFC 2660[24]
Simple Asynchronous File TransferSAFTUlli Horlacher1995No[25][26]
Simple File Transfer ProtocolSFTPMark K. Lottor1984RFC 913[27]
SSH file transfer protocolSFTPTatu Ylönenc. 1997Secure ShellIETF Draft (2006)[28]
T.127T.127ITU[29]1995 [30]ITU T.127
Trivial File Transfer ProtocolTFTPNoel Chiappa1980Internet protocol suiteRFC 1350[31]
Tsunami UDP ProtocolTsunamiMark Meiss et al.2002No[32][33]
Tus open protocol for resumable file uploadstusFelix Geisendörfer, Marius Kleidl et al.2014No[34][35]
UDP-based Data Transfer ProtocolUDTYunhong Gu2004No
UDP-based File Transfer ProtocolUFTPDennis Bush2001No[36]
Unix-to-Unix CopyUUCPMike Lesk1979No
Warp Speed Data TransferWDTLaurent Demailly et al.2015No[37]
Close

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.[38]

More information Protocol, Encryption (data) ...
ProtocolEncryption
(data)
Transfer
resuming
Multicast
capable
ManagedRefs
BITSOptional TLS / AES-128[a]YesNoNo
BitTorrentNone[b]YesPeer-to-peerNo[39][40]
CCSDS File Delivery Protocol (CFDP)YesNoNo
Cross File Transfer (CFT)TLS / SSLYes [41][42]
Ether File Transfer Protocol (EFTP)None ?NoNo[43]
Fast and Secure Protocol (FASP)AES-256 / AES-192 / AES-128YesNo[44][45][46]
File Delivery over Unidirectional Transport (FLUTE)Optional/Unspecified[c]NoYes[47][48][49]
File Service Protocol (FSP)NoneYesNoNo[50][51]
File Transfer Access and Management (FTAM) ?[d][52]
File Transfer Protocol (FTP)NoneYes[e]NoNo[53][54][55][56][57]
FTP Secure (FTPS)TLS / SSLYesNoNo
HTTP Secure (HTTPS)TLS / SSLYesNoNo[15][58][59]
Host Unix Linkage File Transfer (HULFT)AES ?No[60][61][62][63]
Hypertext Transfer Protocol (HTTP)None
(see HTTPS and S-HTTP)
YesNoNo[15][64]
Micro Transport Protocol (μTP)NoneYesPeer-to-peerNo[16]
Multicast Dissemination Protocol (MDP)NoneYesYes[65][66]
Multicast File Transfer Protocol (MFTP)NoneYesYesNo[67][68]
NACK-Oriented Reliable Multicast Transport Protocol (NORM)IPsecYesYes[69][70]
Odette File Transfer Protocol (OFTP)NoneYes[19]
Odette File Transfer Protocol 2 (OFTP2)TLSYes[20]
Reliable Blast UDP (RBUDP)NoneNoNo[21][71][72]
Remote copy (rcp)NoneNoNoNo[73]
Secure copy (SCP)Secure ShellNoNoNo
Secure Hypertext Transfer Protocol (S-HTTP)CMS / MOSS / otherNoNoNo[74]
Simple Asynchronous File Transfer (SAFT)PGP ?NoNo[25][26][75]
Simple File Transfer Protocol (SFTP)NoneYesNoNo[76]
SSH file transfer protocol (SFTP)Secure ShellYesNoNo[77]
T.127NoneYesYesNo[78][79][80]
Trivial File Transfer Protocol (TFTP)NoneNoNoNo[81]
Tsunami UDP ProtocolNoneNoNoNo[82][83]
Tus open protocol for resumable file uploads (tus)Optional/Unspecified[f]YesNoNo[34][35]
UDP-based Data Transfer Protocol (UDT)ExperimentalNoNoNo[83][84][85]
UDP-based File Transfer Protocol (UFTP)AES-256 / AES-128 / 3DES / DES[g]YesYesNo[83][36][86]
Unix-to-Unix Copy (UUCP)NoneSome[h]NoNo[87][88]
Warp Speed Data Transfer (WDT)AES-128 (OFB / CTR)YesNoNo[89][90][91]
Close
  1. TLS when BITS is used with HTTPS, AES-128 when used with SMB 3, none with HTTP or SMB version below 3.0
  2. Some implementations can obfuscate traffic using RC4 et al. See BitTorrent protocol encryption.
  3. RFC 6726 suggests IPSec as one option.
  4. One implementation, Fujitsu openFT, applies AES.
  5. RFC 1123 (1989) extends and corrects the provisions for restart/resume that were published in RFC 959 (1985). RFC 3659 (2007) provides for resuming in stream mode.
  6. It's recommended to use HTTPS provided by a webserver, proxy, or SSL terminator.
  7. These are the options in the reference implementation, which uses OpenSSL.
  8. The BNU implementation of UUCP can resume an interrupted file transfer.

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.

More information Protocol, Data port ...
ProtocolData portControl portAssigned
by IANA
AssigneeRefs
ServerClientTransport ServerClientTransport
BITS80/443[a] / 137-139[b]TCP / UDPNo
BitTorrent6881[c]6881TCP68816881TCPNo[92]
CCSDS File Delivery Protocol (CFDP)
Cross File Transfer (CFT)1761[d]TCP / X.25[41][42]
Ether File Transfer Protocol (EFTP)NoneNone
Fast and Secure Protocol (FASP)≥33001UDP22TCPNo[92]
File Delivery over Unidirectional Transport (FLUTE)4001UDPNo[92]
File Service Protocol (FSP)Chosen by user[e]UDPNo[92]
File Transfer Access and Management (FTAM)4800 / 102TCP[93]
File Transfer Protocol (FTP)Active mode2020TCP[f]21≥1024TCPYesJon Postel[92]
Passive mode≥1024[g]≥1024
FTP Secure (FTPS)989TCP990TCPYesChristopher Allen[92]
HTTP Secure (HTTPS)443TCPTCPYesIESG[92]
Host Unix Linkage File Transfer (HULFT)30000TCPTCPNo[92]
Hypertext Transfer Protocol (HTTP)80TCPTCPYesTim Berners-Lee[92]
Micro Transport Protocol (μTP)UDPNo[92]
Multicast Dissemination Protocol (MDP)Chosen by userUDP[94][66]
Multicast File Transfer Protocol (MFTP)5402UDPYesSteve Bannister[92]
NACK-Oriented Reliable Multicast Transport Protocol (NORM)UDP[69][70]
Odette File Transfer Protocol (OFTP)3305TCP / X.25TCP / X.25[19]
Odette File Transfer Protocol 2 (OFTP2)6619TCP / X.25TCP / X.25[20]
Reliable Blast UDP (RBUDP)Chosen by userUDPNo[92]
Remote copy (rcp)514TCPTCPYes[92]
Secure copy (SCP)22TCPTCPYes[92]
Secure Hypertext Transfer Protocol (S-HTTP)80TCPTCPNo[92]
Simple Asynchronous File Transfer (SAFT)487TCPYesUlli Horlacher[92]
Simple File Transfer Protocol (SFTP)115TCPTCPYesMark Lottor[92]
SSH file transfer protocol (SFTP)22TCPTCPYes[92]
T.1271503TCPTCPYesJim Johnston[92]
Trivial File Transfer Protocol (TFTP)69UDPYesDavid Clark[92]
Tsunami UDP ProtocolChosen by userUDPTCPNo[92]
Tus open protocol for resumable file uploads (tus)80[h]TCPTCPNo[92]
UDP-based Data Transfer Protocol (UDT)Chosen by serverUDPNo[92]
UDP-based File Transfer Protocol (UFTP)1044UDPNo[92]
Unix-to-Unix Copy (UUCP)540TCPTCPYes[92]
Warp Speed Data Transfer (WDT)Chosen by server or by userTCPTCPNo[92]
Close
  1. When used with HTTP/HTTPS, configurable
  2. When used with SMB
  3. Typically, if port 6881 is unavailable as a listening port, the peer incrementally tries 6882–6889. Another port may be specified in software.
  4. 1761 is the default port, but 1761–1768 are allocated by IANA.
  5. UDP port 21 is sometimes chosen for FSP.
  6. FTP was originally designed for NCP, a protocol used on ARPANET before the advent of TCP. The TCP implementation of FTP was standardized in RFC 959.
  7. The server listens on TCP port 21 (the control port), and the client sends commands to this port from a random port above 1023. To transfer data in active mode, the server initiates a connection from port 20 to the client at the randomly selected port number.
    In passive mode, the client uses a random port above 1023 as a control port, and from this initiates file transfer. The server sends or receives data from a randomly selected port above 1023, and the client sends or receives data from one port number above its own randomly selected control port.
  8. Can be chosen by user, but layers on top of HTTP(S) so often 80/443

Serial protocols

Summarize
Perspective
Thumb
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

More information Protocol, Author ...
ProtocolAuthorFirst releasedLicenseDescriptionRefs
BiModemErik Labs1989Bi-directional transfers.
BLASTCommunications Research Group1981Powerful protocol originating on the Data General Nova minicomputer, and then ported to micros and mainframes.[95]
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.[96]
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.[97]
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.[98][99][100]
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.[101]
MODEM7Mark M. Zeigler, James K. Mills1980Slight extension of XMODEM to add filename support and batch transfers.[102]
XMODEMWard Christensen1977Public domainVery simple protocol that saw widespread use and provided the pattern for many following protocols.[103]
WXMODEMPeter Boswell1986Public domainVersion of XMODEM with sliding windows for higher performance.[104][105]
YMODEMChuck Forsberg1985Public domainSeries of optional expansions on XMODEM for higher performance.[104]
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.[104]
Close

Features

More information Protocol, Data block size (bytes) ...
ProtocolData block size
(bytes)
Data
compression
Error detectionTransfer
resuming
BidirectionalSliding windowRefs
BiModemYes
BLAST84 - 1024+RLECRCYesYesYes[106]
C-MODEM32–4096CRCYes
B protocol128–2048CRC32 / CRC16 / 8-bit checksumYesYes
JMODEM64–8192RLE
HS/LinkCRC32YesYes
Kermit≤9024 (negotiated)RLE (run length encoding, negotiated)Checksum or CRC16 (negotiated)Yes (binary files only, negotiated)NoOver full-duplex only (negotiated)[107]
LeechModem
LynxRLECRC32Yes
NMODEM2048
OBject EXchange
Punter
SEAlinkYesYes
SMODEMYes
TmodemNo
UUCP "g"≤4096NoNo[108][109]
MODEM7128NoChecksumStop-and-wait ARQ
XMODEM128NoChecksumStop-and-wait ARQ
WXMODEM≤512Yes
YMODEM1024NoCRC16
ZMax≤~32,768CRC32
ZMODEM256 / 1024NoCRC32YesYes
Close

See also

Notes

References

Further reading

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.