Comparison of file transfer protocols

Revision as of 11:43, 29 April 2025 by imported>Frap (Hyphen to dash for ranges)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Template:For multi Template:Use dmy dates

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 networksEdit

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.

OverviewEdit

Template:Smaller Template:Pad Template:Legend2 Template:Pad Template:Legend2 Template:Pad Template:Legend2 Template:Pad Template:Legend2
Protocol Original author First published Protocol suite Standard Template:Abbr
Full name Abbreviation
Background Intelligent Transfer Service BITS Microsoft 2001 Template:N/a Template:Nonpartisan citation CitationClass=web

}}</ref>

BitTorrent BT Bram Cohen 2001 Template:N/a Template:Nonpartisan citation CitationClass=web

}}</ref>

CCSDS File Delivery Protocol CFDP 2002 Template:N/a Template:Operational
Cross File Transfer CFT Template:N/a Template:Nonpartisan
Ether File Transfer Protocol EFTP John Shoch 1979 PARC Universal Packet Template:Nonpartisan <ref>Template:Cite book</ref><ref>Template:Cite book</ref>
Fast and Secure Protocol FASP Ying Xu, Michelle Munson, Serban Simu 2007 Template:N/a Template:Nonpartisan <ref>Template:Cite patent</ref>
File Delivery over Unidirectional Transport FLUTE Internet Society 2004 Template:N/a Template:Partial <ref>Template:Cite IETF</ref>
File Service Protocol FSP Wen-King Su 1991 Template:N/a Template:Nonpartisan <ref>Template:Cite book</ref><ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

File Transfer Access and Management FTAM 1988 Template:Operational
File Transfer Protocol FTP Abhay Bhushan 1971 Internet protocol suite Template:Ya <ref>Template:Cite IETF</ref>
FTP Secure FTPS Internet Society 1997 Internet protocol suite Template:Partial <ref>Template:Cite IETF</ref><ref>Template:Cite IETF</ref>
HTTP Secure HTTPS Taher Elgamal et al. 1995 Internet protocol suite Template:Ya <ref>Template:Cite magazine</ref><ref>Template:Cite IETF</ref>
Host Unix Linkage File Transfer HULFT Template:Dunno 1993 Template:N/a Template:Nonpartisan
Hypertext Transfer Protocol HTTP Tim Berners-Lee et al. 1991 Internet protocol suite Template:Ya citation CitationClass=web

}}</ref><ref name="Iwaya">{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Micro Transport Protocol μTP Ludvig Strigeus, Greg Hazel, Stanislav Shalunov, Arvid Norberg, Bram Cohen 2007 Template:N/a Template:Nonpartisan citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Multicast Dissemination Protocol MDP 1993 Template:Nonpartisan
Multicast File Transfer Protocol MFTP C. Kenneth Miller et al. 1995 Template:N/a Template:Partial failure <ref>Template:Cite patent</ref>
NACK-Oriented Reliable Multicast Transport Protocol NORM 2000 Template:Partial
Odette File Transfer Protocol OFTP Organisation for Data Exchange by Tele Transmission in Europe 1986 X.25 Template:Partial <ref name="Nash">Template:Cite IETF</ref>
Odette File Transfer Protocol 2 OFTP2 Organisation for Data Exchange by Tele Transmission in Europe 2007 X.25, Internet protocol suite Template:Partial <ref name="Friend">Template:Cite IETF</ref>
Reliable Blast UDP RBUDP Eric He et al. 2002 Template:N/a Template:Nonpartisan <ref name="He">Template:Cite conference</ref>
Remote copy rcp Template:Dunno 1982 Internet protocol suite Template:Nonpartisan <ref>Template:Cite book</ref>
Secure copy SCP Tatu Ylönen 1995 Secure Shell Template:Nonpartisan citation CitationClass=web

}}</ref>

Secure Hypertext Transfer Protocol S-HTTP IETF Web Transaction Security Working Group 1999 Template:N/a Template:Partial <ref>Template:Cite IETF</ref>
Simple Asynchronous File Transfer SAFT Ulli Horlacher 1995 Template:N/a Template:Nonpartisan citation CitationClass=web

}}</ref><ref name="sendfile">{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Simple File Transfer Protocol SFTP Mark K. Lottor 1984 Template:N/a Template:Partial <ref>Lottor (1984), pp. 1, 13</ref>
SSH file transfer protocol SFTP Tatu Ylönen Template:Sort Secure Shell Template:Partial failure <ref>Template:Cite mailing listTemplate:Dead link</ref>
T.127 T.127 ITU<ref name="ITU-IT T.127">{{#invoke:citation/CS1|citation CitationClass=web

}}</ref> || 1995 <ref name="ITU-IT T.127 (08/95)">{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref> || Template:N/a || Template:Operational ||

Trivial File Transfer Protocol TFTP Noel Chiappa 1980 Internet protocol suite Template:Ya <ref>Template:Cite IETF</ref>
Tsunami UDP Protocol Tsunami Mark Meiss et al. 2002 Template:N/a Template:Nonpartisan citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Tus open protocol for resumable file uploads tus Felix Geisendörfer, Marius Kleidl et al. 2014 Template:N/a Template:Nonpartisan <ref name="github">Template:GitHub</ref><ref name="tusio">{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

UDP-based Data Transfer Protocol UDT Yunhong Gu 2004 Template:N/a Template:Nonpartisan
UDP-based File Transfer Protocol UFTP Dennis Bush 2001 Template:N/a Template:Nonpartisan citation CitationClass=web

}}</ref>

Unix-to-Unix Copy UUCP Mike Lesk 1979 Template:N/a Template:Nonpartisan
Warp Speed Data Transfer WDT Laurent Demailly et al. 2015 Template:N/a Template:Nonpartisan citation CitationClass=web

}}</ref>

FeaturesEdit

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.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Protocol Encryption
Template:Small
Transfer
resuming
Multicast
capable
Managed Template:Abbr
BITS Template:YaTemplate:Efn Template:Yes Template:No Template:No
BitTorrent Template:N/aTemplate:Efn Template:Yes Template:Yes-No Template:No citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

CCSDS File Delivery Protocol (CFDP) Template:None Template:Yes Template:No Template:No
Cross File Transfer (CFT) Template:Ya Template:Yes <ref name="Axway Software">{{#invoke:citation/CS1|citation CitationClass=web

}}</ref><ref name="docs.axway.com">{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Ether File Transfer Protocol (EFTP) Template:N/a Template:Dunno Template:No Template:No citation CitationClass=web

}}</ref>

Fast and Secure Protocol (FASP) Template:Ya Template:Yes Template:No citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

File Delivery over Unidirectional Transport (FLUTE) Template:OptionalTemplate:Efn Template:No Template:Yes <ref>Template:Cite IETF</ref><ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref><ref>Template:Cite journal</ref>

File Service Protocol (FSP) Template:N/a Template:Yes Template:No Template:No citation CitationClass=web

}}</ref><ref>Template:Cite book</ref>

File Transfer Access and Management (FTAM) Template:DunnoTemplate:Efn citation CitationClass=web

}}</ref>

File Transfer Protocol (FTP) Template:N/a Template:YesTemplate:Efn Template:No Template:No <ref>Template:Cite IETF</ref><ref>Template:Cite book</ref><ref>Template:Cite IETF</ref><ref>Template:Cite IETF</ref><ref>Template:Cite IETF</ref>
FTP Secure (FTPS) Template:Ya Template:Yes Template:No Template:No
HTTP Secure (HTTPS) Template:Ya Template:Yes Template:No Template:No <ref name="Iwaya"/><ref>Template:Cite IETF</ref><ref>Template:Cite IETF</ref>
Host Unix Linkage File Transfer (HULFT) Template:Ya Template:Dunno Template:No citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Hypertext Transfer Protocol (HTTP) Template:N/a Template:Yes Template:No Template:No <ref name="Iwaya"/><ref>Template:Cite IETF</ref>
Micro Transport Protocol (μTP) Template:N/a Template:Yes Template:Yes-No Template:No <ref name="Norberg"/>
Multicast Dissemination Protocol (MDP) Template:N/a Template:Yes Template:Yes citation CitationClass=web

}}</ref><ref name="nrl.navy.mil">{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Multicast File Transfer Protocol (MFTP) Template:N/a Template:Yes Template:Yes Template:No <ref>Template:Cite IETF</ref><ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

NACK-Oriented Reliable Multicast Transport Protocol (NORM) Template:Ya Template:Yes Template:Yes citation CitationClass=web

}}</ref><ref name="Adamson">Template:Cite IETF</ref>

Odette File Transfer Protocol (OFTP) Template:N/a Template:Yes <ref name="Nash"/>
Odette File Transfer Protocol 2 (OFTP2) Template:Ya Template:Yes <ref name="Friend"/>
Reliable Blast UDP (RBUDP) Template:N/a Template:No Template:No <ref name="He"/><ref>Template:Cite conference</ref><ref>Template:GitHub</ref>
Remote copy (rcp) Template:N/a Template:No Template:No Template:No citation CitationClass=web

}}</ref>

Secure copy (SCP) Template:Ya Template:No Template:No Template:No
Secure Hypertext Transfer Protocol (S-HTTP) Template:Ya Template:No Template:No Template:No <ref>Template:Cite IETF</ref>
Simple Asynchronous File Transfer (SAFT) Template:Ya Template:Dunno Template:No Template:No citation CitationClass=web

}}</ref>

Simple File Transfer Protocol (SFTP) Template:N/a Template:Yes Template:No Template:No <ref>Lottor (1984), p. 10</ref>
SSH file transfer protocol (SFTP) Template:Ya Template:Yes Template:No Template:No citation CitationClass=web

}}</ref>

T.127 Template:N/a Template:Yes Template:Yes Template:No citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref><ref>Template:Cite book</ref>

Trivial File Transfer Protocol (TFTP) Template:N/a Template:No Template:No Template:No <ref>Template:Cite IETF</ref>
Tsunami UDP Protocol Template:N/a Template:No Template:No Template:No citation CitationClass=web

}}</ref><ref name="FC">{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Tus open protocol for resumable file uploads (tus) Template:OptionalTemplate:Efn Template:Yes Template:No Template:No <ref name="github"/><ref name="tusio"/>
UDP-based Data Transfer Protocol (UDT) Template:Unofficial Template:No Template:No Template:No <ref name="FC"/><ref>Template:Cite conference</ref><ref>Template:Cite thesis</ref>
UDP-based File Transfer Protocol (UFTP) Template:YaTemplate:Efn Template:Yes Template:Yes Template:No citation CitationClass=web

}}</ref>

Unix-to-Unix Copy (UUCP) Template:N/a Template:SomeTemplate:Efn Template:No Template:No citation CitationClass=web

}}</ref><ref>Template:Cite book</ref>

Warp Speed Data Transfer (WDT) Template:Ya Template:Yes Template:No Template:No <ref>Template:Cite AV mediaTemplate:Cbignore</ref><ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref><ref>Template:GitHub</ref>

Template:Notelist

PortsEdit

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
Template:Small
Assignee Template:Abbr
Server Client Transport Server Client Transport
BITS 80/443Template:Efn / 137–139Template:Efn TCP / UDP Template:No Template:N/a
BitTorrent 6881Template:Efn 6881 TCP 6881 6881 TCP Template:No Template:N/a citation CitationClass=web

}}</ref>

CCSDS File Delivery Protocol (CFDP)
Cross File Transfer (CFT) 1761Template:Efn TCP / X.25 <ref name="Axway Software"/><ref name="docs.axway.com"/>
Ether File Transfer Protocol (EFTP) Template:N/a Template:N/a Template:N/a Template:N/a Template:N/a Template:N/a Template:N/a Template:N/a
Fast and Secure Protocol (FASP) ≥33001 UDP 22 TCP Template:No Template:N/a <ref name="IANA"/>
File Delivery over Unidirectional Transport (FLUTE) 4001 UDP Template:No Template:N/a <ref name="IANA"/>
File Service Protocol (FSP) Template:VariesTemplate:Efn UDP Template:No Template:N/a <ref name="IANA"/>
File Transfer Access and Management (FTAM) 4800 / 102 TCP citation CitationClass=web

}}</ref>

File Transfer Protocol (FTP) Active mode 20 20 TCPTemplate:Efn 21 ≥1024 TCP rowspan="2" Template:Yes Jon Postel <ref name="IANA"/>
Passive mode ≥1024Template:Efn ≥1024
FTP Secure (FTPS) 989 TCP 990 TCP Template:Yes Christopher Allen <ref name="IANA"/>
HTTP Secure (HTTPS) 443 TCP TCP Template:Yes IESG <ref name="IANA"/>
Host Unix Linkage File Transfer (HULFT) 30000 TCP TCP Template:No Template:N/a <ref name="IANA"/>
Hypertext Transfer Protocol (HTTP) 80 TCP TCP Template:Yes Tim Berners-Lee <ref name="IANA"/>
Micro Transport Protocol (μTP) UDP Template:No Template:N/a <ref name="IANA"/>
Multicast Dissemination Protocol (MDP) Template:Varies UDP citation CitationClass=web

}}</ref><ref name="nrl.navy.mil"/>

Multicast File Transfer Protocol (MFTP) 5402 UDP Template:Yes Steve Bannister <ref name="IANA"/>
NACK-Oriented Reliable Multicast Transport Protocol (NORM) UDP <ref name="NACK-Oriented Reliable Multicast N"/><ref name="Adamson"/>
Odette File Transfer Protocol (OFTP) 3305 TCP / X.25 TCP / X.25 <ref name="Nash"/>
Odette File Transfer Protocol 2 (OFTP2) 6619 TCP / X.25 TCP / X.25 <ref name="Friend"/>
Reliable Blast UDP (RBUDP) Template:Varies UDP Template:No Template:N/a <ref name="IANA"/>
Remote copy (rcp) 514 TCP TCP Template:Yes <ref name="IANA"/>
Secure copy (SCP) 22 TCP TCP Template:Yes <ref name="IANA"/>
Secure Hypertext Transfer Protocol (S-HTTP) 80 TCP TCP Template:No Template:N/a <ref name="IANA"/>
Simple Asynchronous File Transfer (SAFT) 487 TCP Template:Yes Ulli Horlacher <ref name="IANA"/>
Simple File Transfer Protocol (SFTP) 115 TCP TCP Template:Yes Mark Lottor <ref name="IANA"/>
SSH file transfer protocol (SFTP) 22 TCP TCP Template:Yes <ref name="IANA"/>
T.127 1503 TCP TCP Template:Yes Jim Johnston <ref name="IANA"/>
Trivial File Transfer Protocol (TFTP) 69 UDP Template:Yes David Clark <ref name="IANA"/>
Tsunami UDP Protocol Template:Varies UDP TCP Template:No Template:N/a <ref name="IANA"/>
Tus open protocol for resumable file uploads (tus) 80Template:Efn TCP TCP Template:No Template:N/a <ref name="IANA"/>
UDP-based Data Transfer Protocol (UDT) Template:Varies UDP Template:No Template:N/a <ref name="IANA"/>
UDP-based File Transfer Protocol (UFTP) 1044 UDP Template:No Template:N/a <ref name="IANA"/>
Unix-to-Unix Copy (UUCP) 540 TCP TCP Template:Yes <ref name="IANA"/>
Warp Speed Data Transfer (WDT) Template:Varies TCP TCP Template:No Template:N/a <ref name="IANA"/>

Template:Notelist

Serial protocolsEdit

File:RS-232-Cable-9-25.jpg
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.

OverviewEdit

Protocol Author First released License Description Template:Abbr
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. <ref>Template:Cite news</ref>
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 Template:Dunno 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. <ref>da Cruz (1987) p. 3</ref>
LeechModem Sam Brown Template:Dunno 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 Template:Dunno Template:Dunno A synchronous file transfer protocol in the OBject EXchange (OBEX) Bluetooth profile.
OBEX Push Template:Dunno Template:Dunno An asynchronous file transfer protocol in the OBject EXchange (OBEX) Bluetooth profile. citation CitationClass=web

}}</ref>

Punter Steve Punter Template:Dunno 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. <ref>Template:GitHub</ref><ref>Template:Cite book</ref><ref>Template:Cite book</ref>
SMODEM Arisoft Template:Dunno
TMODEM Mike Bryeans Template:Dunno
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. citation CitationClass=web

}}</ref>

MODEM7 Mark M. Zeigler, James K. Mills 1980 Slight extension of XMODEM to add filename support and batch transfers. <ref>Template:Cite magazine</ref>
XMODEM Ward Christensen 1977 Template:Good Very simple protocol that saw widespread use and provided the pattern for many following protocols. <ref>Glass (1988) p. 87</ref>
WXMODEM Peter Boswell 1986 Template:Good Version of XMODEM with sliding windows for higher performance. <ref name="Glass_p89">Glass (1988) p. 89</ref><ref>Template:Cite book</ref>
YMODEM Chuck Forsberg 1985 Template:Good Series of optional expansions on XMODEM for higher performance. <ref name="Glass_p89"/>
ZMax Mike Bryeans Template:Sort Modifications to ZMODEM to allow packets up to 32 kB in length.
ZMODEM Chuck Forsberg 1986 Template:Good 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. <ref name="Glass_p89"/>

FeaturesEdit

Protocol Data block size
Template:Small
Data
compression
Error detection Transfer
resuming
Bidirectional Sliding window Template:Abbr
BiModem Template:Yes
BLAST 84–1024+ RLE CRC Template:Yes Template:Yes Template:Yes <ref>Template:Cite news</ref>
C-MODEM 32–4096 CRC Template:Yes
B protocol 128–2048 CRC32 / CRC16 / 8-bit checksum Template:Yes Template:Yes
JMODEM 64–8192 RLE
HS/Link CRC32 Template:Yes Template:Yes
Kermit ≤9024 (negotiated) RLE (run length encoding, negotiated) Checksum or CRC16 (negotiated) Template:Yes (binary files only, negotiated) Template:No Template:Optional <ref>da Cruz (1987) pp. 234, 253, 307</ref>
LeechModem
Lynx RLE CRC32 Template:Yes
NMODEM 2048
OBject EXchange
Punter
SEAlink Template:Yes Template:Yes
SMODEM Template:Yes
Tmodem Template:No
UUCP "g" ≤4096 Template:No Template:No <ref>Template:Cite book</ref><ref>{{#invoke:citation/CS1|citation CitationClass=web

}}</ref>

MODEM7 128 Template:No Checksum Template:Partial
XMODEM 128 Template:No Checksum Template:Partial
WXMODEM ≤512 Template:Yes
YMODEM 1024 Template:No CRC16
ZMax ≤~32,768 CRC32
ZMODEM 256 / 1024 Template:No CRC32 Template:Yes Template:Yes

See alsoEdit

Template:Columns-list

NotesEdit

Template:Reflist

ReferencesEdit

|CitationClass=web }}

Further readingEdit

  • {{#invoke:citation/CS1|citation

|CitationClass=web }}

|CitationClass=web }}

  • {{#invoke:citation/CS1|citation

|CitationClass=web }}