File sharing is something which is part of our daily activities. This is also commonly referred to as P2P or Peer-to-Peer sharing. This could be sharing files between two nodes in a network or between a client and a server or between two nodes not within the same network. Any multi-user environment will require a file sharing mechanism.
There are several applications available which cater to file sharing. Some of these are:
Beyond this, there are many others available in the market. However, each of this work on a specific file sharing protocol. In order to understand which file sharing application you need to choose, knowing the involved protocol’s features along with pros and cons would provide great insights.
Through this post, we will check the most popular file sharing protocols and also understand when to use each of these.
- FTP – FTP stands for File Transfer Protocol. This is a common method used to transfer files between devices and users within a network. You can access, download and upload files using FTP. This is mostly used to transfer files between the host computer and a server or a website. Basic configuration changes with port forwarding enabled can be used to access FTP outside a network. Some of the popular FTP based applications include– Transmit, Cyberduck, FileZilla, WinSCP, Coda.
- SFTP (SSH based) – As the name suggests this is a variant of FTP and is a more secure way of using FTP. SFTP stands for Secure File Transfer Protocol. This is SSH-based file transfer. This has an ability to provide secure connections for file transfer and can be used for local as well as remote systems. In most cases, SFTP is a more favorable choice owing to the added security it provides. Most applications which support FTP also support SFTP.
- SCP – This is commonly referred to as Secure Copy protocol. This works on Secure Shell- SSH protocol and can be used to transfer files between local and remote hosts or between two remote hosts. SCP is based on BSD RCP protocol. Since it works over SSH, SCP uses the same mechanism for authentication. SCP runs over TCP port 22 and using this a client one can either upload or download single or multiple files. There is no RFC that provides specifications of this protocol.
- Webdav – Webdav stands for Web Distributed Authoring and Versioning. This is an extension of HTTP. It allows multiple remote users to share and collaboratively edit contents over Internet. Webdav provides some unique features such as the ability to lock files, thereby preventing contents from being over-written. Webdav supports XML properties.
- SMB – SMB stands for Server Message block. This is an application layer network layer protocol. This is a protocol which is mainly used for shared access to printers, files, and ports. Additionally, this also provides an authenticated inter-process communication mechanism. This was mostly used with Windows and was known as Microsoft Windows Network, before the start of Active Directory. SAMBA is an implementation of SMB. CIFS is a specific implementation of SMB and stands for Common Internet File System.
- NFS – NFS stands for Network File System protocol and is a standard protocol used over a distributed file system. This is commonly used in a client-server architecture and allows users to view, store and update files in a remote system. To use this there are a couple of prerequisites and may require the user to be comfortable using Linux based systems. This is a popular file system access protocol which works with Linux, FreeBSD, Apple’s macOS, Solaris, AIX. Apart from this, other file system access protocol includes SMB (Server Message Block also called as CIFS), AFP (Apple Filing Protocol), NCP (Network Core Protocol). This is a distributed file system standard for network attached storage- NAS. The protocol allows users to view, store and update files over a remote network. The way SAMBA is closely associated with Windows, NFS is a great choice for Linux or Unix users.
- HTTPS – HTTPS is a popular protocol and can be used for file sharing. Https is a secure version of the Http protocol. This is suitable for downloads but has its own limitations for upload. Since this is a stateless protocol, each transfer will require a new connection. This is generally not a suitable option for multiple files or large file transfers. However, HTTPS can be used over a browser to download securely. With other protocols such as SFTP, one needs to install an SFTP client.
- BitTorrent – BitTorrent or BT is a communication protocol for distributed P2P systems. This is commonly used to transfer data and media files over the Internet. BitTorrent clients implement BitTorrent protocol. Some of the well-known clients include qBittorrent, Vuze, uTorrent, Xunlei, Deluge, BitComet, and Tixati.
- Napster – Napster was introduced for digital audio files, MP3 format P2P sharing. This is a client-server protocol which works on a point to point TCP. A typical architecture contains a server which would contain an index of all files. The client would first get itself authenticated with the server and add the files to the server. This, in turn, can be requested by other clients based on the availability. Similar P2P models are used by Freenet, Kazaa, BearShare, Gnutella, LimeWire, Madster and many more.
- FastTrack – FastTrack is another popular file sharing protocol. This again is a protocol dedicated to music files sharing. This is a robust protocol which can handle up to 2.4 million concurrent users. Few clients using this protocol include- iMesh, Grokster, Kazaa, and Morpheus.
- AS2 – AS2 stands for Applicability Statement 2. This is a protocol which enables transfer over the internet in a reliable and secure manner. This is based on Http and S/MIME. AS2 requires both parties involved in file transfer to use the X.509 certificate and specific trading partner names. This is used for cryptographically secure file transfers.
- MFT – MFT stands for Managed File Transfer. This enables secure transfer of data over a network. This is an alternative to other popular protocols such as FTP, Http etc. More than a specific protocol, this is considered as a software application built on top of FTP and can support other popular protocols such as FTP/ FTPS, HTTP/HTTPS, SFTP, SCP, AS2.
- uTP – Commonly known as Micro transport protocol or uTP. This is an open UDP based protocol. uTP is a variant of BitTorrent and is used for peer-to-peer file transfers. BitTorrent works over TCP. uTP aims to reduce latency issues and control congestion along with providing reliable packet delivery. This is considered to be an enhanced version over BitTorrent.
- giFT – giFT is used for Internet file transfer which is a software daemon. This is not a protocol but allows several file sharing protocols to co-exist. This is a simple GUI which loads plugins implementing the different protocols. This is a simple to use integrated platform for accessing multiple file sharing protocols and has support for Windows, macOS, and Unix.