| |||||||||
Multisource File Transfer Protocol (MFTP) is designed for the purpose of filesharing. It is still under development, and therefore may acquire more features or other improvements in addition to those discussed in this article. This is the communication protocol used by such clients as eMule and eDonkey and, in its extended implementation, by the Overnet network. For the most recent information, as well as MFTP client information, check the BambooWeb entries or Web sites for eMule, eDonkey, and Overnet.
In addition to being able to search by filename, MFTP is able to uniquely identify files based on their contents, regardless of how they are named on each individual computer. It also has bandwidth management (AKA leech resistance) built into the protocol, and every known mature client allows the user to tweak file and user upload priorities. It is also possible to share metadata about a given file with links on Web sites (such as: this file is good, this file is corrupted, this file isn't what the name may indicate); in this case, the files are identified with their MD4 hash numbers (which are consistent) rather than their filenames (which will often vary from one computer to the next). The protocol is still under development, so additional features and other improvements are still possible.
There are a number of filesharing protocols. Below are the most popular or most important ones.
The BitTorrent protocol is the only filesharing protocol in widespread use that offers features and speed above those of the MFTP at this time. It tends to offer greater download speeds due to the fact that the tracker for each torrent contains client information for one specific file or set of files: there is a small reduction in bandwidth utilization due to protocol overhead compared to MFTP, but because every peer connected to the tracker is sharing and downloading the exact same file(s), they can transfer pieces of the files amongst eachother. BitTorrent is also less flexible and is not a purely peer-to-peer application since the tracker URL must resolve and the tracker must provide filesharer information before any file data can be found and transferred.
Developed by Justin Frankel of NullSoft while Napster was undergoing legal battles, Gnutella was the first truly decentralized client. Since then, many advances in the protocol have been made, many clients have come and gone, and it has been a predominant influence in the world of filesharing.
Originally intended as a means of extending and improving upon Gnutella, Gnutella2 was developed by Michael Stokes. It added an extensible binary packet format, UDP based search algorithm, and many features originally proposed as additions to Gnutella, such as partial file sharing and packet compression, which alleviated much of the problems caused by outdated clients on the network.
This was the protocol originally used by the Napster client, which was the first widely used peer-to-peer filesharing application. It is still used in applications such as WinMX.
FastTrack, often referred to by the name of its first client, Kazaa, utilizes a proprietary protocol similar to Gnutella2. While it is the application with the largest installed userbase, it is worth noting that the Kazaa client (produced by Sharman Networks) installs spyware onto the user's machine. Whether this outweighs the benefits of the client software is a decision for each individual user to make, and reading about spyware and the related security and privacy risks can only help potential users make the best choice based upon their own needs.