File transfer is a generic term for the act of transmitting files over a computer network like the Internet. There are numerous ways and protocols to transfer files over a network. Computers which provide a file transfer service are often called file servers. Depending on the client's perspective the data transfer is called uploading or downloading. File transfer for the enterprise now increasingly is done with Managed file transfer.
There are 2 types of file transfers:
- Pull-based file transfers where the receiver initiates a file transmission request
- Push-based file transfers where the sender initiates a file transmission request.
File transfer can take place over a variety of levels:
- Transparent file transfers over network file systems
- Explicit file transfers from dedicated file transfer services like FTP or HTTP
- Distributed file transfers over peer-to-peer networks like Bittorent or Gnutella
- In IBM Systems Network Architecture, LU 6.2 peer-to-peer file transfer programs such as IBM's Connect:Direct and CA Technologies' XCOM Data Transport
- File transfers over instant messaging or LAN messenger
- File transfers between computers and peripheral devices
- File transfers over direct modem or serial (null modem) links, such as XMODEM, YMODEM and ZMODEM.
A file transfer protocol is a convention that describes how to transfer files between two computing endpoints. They are meant solely to send the stream of bits stored as a single unit in a file system, plus any relevant metadata such as the filename, file size and timestamp. File transfer protocols usually operate on top of a lower-level protocol in a protocol stack. For example, the HTTP protocol operates at the topmost application layer of the TCP/IP stack, whereas XMODEM, YMODEM, and ZMODEM typically operate across RS-232 serial connections.