File sharing is the activity of making files available to other users for download over the Internet, but also over smaller networks. Usually file sharing follows the peer-to-peer ( P2P) model, where the files are stored on and served by personal computers of the users. Most people who engage in file sharing are also downloading files that other users share. Sometimes these two activities are linked together. File sharing is distinct from file trading in that downloading files from a P2P network does not require uploading, although some networks either provide incentives for uploading such as credits or force the sharing of files being currently downloaded.
Napster, originally a centralized service, was the first major file-sharing tool and popularized file sharing for the masses. Napster was an MP3-only sharing system and was successfully shut down by legal attacks from the music industry. It was openly attacked by some artists (notably Dr. Dre, Metallica) and supported by others (Limp Bizkit, Courtney Love, Dave Matthews). There was widespread media coverage of unreleased Madonna songs leaking out on to the web prior to the official commercial release. Napster was a localized index for MP3 files shared by the users logged into the system. It included IRC-like chat and instant messenger features. Almost all new major clients now follow its example in design.
Even before its legal problems, the community created an alternative: OpenNap. A reverse-engineered version of the Napster protocol, it was released as the open source server alternative for Napster users. These networks continue to exist even after Napster's collapse and many clients using this protocol have appeared, particularly with the help of the Napigatorserver list - an effort to centralize all of the different servers and networks.
Afterward, a decentralized network known as Gnutella appeared. This service is fully open source and allows users to search for almost any file type; users can find more than just MP3s on these networks. It was created in response to the threat posed toward any centralized body like Napster. The purpose behind decentralization is to prevent any single broken link from compromising the entire network.
Napster and Gnutella continue to define file sharing today, forming the extreme at both ends of the law in the wake of a series of civil lawsuits filed against computer users by the RIAA (which began in September, 2003). Gnutella is a free and open protocol and service while Napster has been resurrected as a commercial online music service that competes with other commercial services like iTunes and Rhapsody.
Most file-sharing systems since have sought to ride the line between these two extremes.
Today a variety of file-sharing programs is available on several different networks. Availability depends partly on operating system, and different networks have different features (for example, multiple-source downloads, different sorts of search limiting, and so on). It is common for commercial file sharing clients to contain abrasive advertising software, or spyware.
There are several major topics surrounding file sharing. Of them, the two primary dynamics are the benefits and drawbacks of centralization vs decentralization and privacy / anonymity, especially vs copyright protection and file-sharing legality. As well as the problem of spyware, a method for the companies that produce peer-to-peer programs to make money on their product. It is these pulls which have defined several themes of software.
In the early days, client software was protocol-specific, so you had "Napster" clients, and you had "Gnutella" clients. There is an everpresent push towards making the GUI-side of things capable of using multiple protocols. It is argued: why should a user have to load up several different applications to do what is, in their mind, the same thing?
In cases where there is perceived value in collecting, some people will have lots to share and will find themselves surrounded by eager people. This can cause problems when the collector cannot keep up with demand. Decentralization is one means to alleviate this problem, especially in cases where it is possible to ensure that multiple copies of a popular item are available from multiple sources (even simultaneously, as with multi-source downloading).
Decentralization has also been pushed as a means of overcoming the threats posed to a centralized network, either by legal disputes or hostile users. A decentralized network has no body to attack; only its individual active members may be targetted, and even if a small portion of them are removed the remaining peers on the network will still be able to function.
Concepts like leeching or hoarding come about where the one centralized person will collect files and later refuse to make those available to others. Trade and ratio systems evolve in order to reduce the impact of leeching. Under these systems, a person shares when he can expect to get something in return. KaZaA, for instance, has a very simple rating system. The client calculates the user's priority and tells the sources what level of downloading priority they should give that user. Shortly afterward, however, hacked clients were released that told the sources that the user had one of the highest priority levels regardless of his actual sharing.
Another client which has a rating system is eMule. The eMule client, which uses MFTP as its protocol, tracks how much downloading and uploading has been done from individual sources and if files are downloaded locally or if other peers download files. Sometimes it seems that this rating system does not have a big impact on the download speed. A reason could be the size of the upload queue and the chunk size. If there is a free upload slot, the client takes the peer on top, transferes 8 MB to it and moves it to the end of the queue. A peer with rating of x2 would have to wait to get an upload slot for only half of the amount of time of a peer with a rating of x1. Furthermore, after the client has received an 8 MB chunk, it should upload an 8 MB chunk to the other peer as soon as possible if there is a download pending for that user. Then the other client would upload one chunk to you and your download speed and the one from the other client will increase.
BitTorrent also has a very good share rating system. The download speed is slow if a client does not upload, but it can easily be the fastest protocol if the size of the swarm is large enough.
Today we are left with a slew of clients with functionality designed around making sharing files more effective, both in the real sense of uploading and downloading (like anti-leeching functions) and in the more ethereal sense of being bulletproof toward legal issues (as with anonymity and decentralization).
Anonymous Internet file sharing (such as Gnutella and Napster) grew in popularity with the proliferation of high speed Internet connections and the (relatively) small and high-quality MP3 audio format. Although file sharing is a legal technology with legal uses, some people (in practice, the great majority of users) have used it to download copyrighted materials. This has led to counterattacks against file sharing in general from some copyright owners.
There has been great discussion over perceived and actual legal issues surrounding file sharing. In circumstances where trading partners are in different countries with different legal codes, there are significant problems to contend with. What if a person in Canada wishes to share a piece of source code which, if compiled, has encryption capabilities? In some countries, a citizen may not request or receive such information without special permission.
Throughout the early 2000s, the entire file-sharing community has been in a state of flux, as record companies and the RIAA tried to shut down as much of it as possible. Even though they have forced Napster into cooperating against copyright violations, they are fighting an uphill battle since the community has flourished and produced many of different clients based on several different underlying protocols. The second generation of P2P protocols, such as Freenet are not as dependent as Napster is on a central server, making it much harder to shut down these systems through court actions. Another attempt (used by the maintainers of KaZaA) is to change the company's organization or country of origin so that it is impossible or useless to attack it legally.
The EFF is a donor-supported group which protects the digital rights of mankind. It is one of the most influential online human-rights bodies, and it is involved in legislation, court cases, and campains to make the public aware of their rights. The EFF has opposed the RIAA in its onslaught of law suits against users of file-sharing applications. The foundation supports the idea that P2P file-sharing can exist while allowing users to compensate artists for their copyrighted material.
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 has been integrated into large-scale corporate distribution schemes. 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 reduction in bandwidth utilization due to protocol overhead compared to other protocols, but because every peer connected to the tracker is sharing and downloading the exact same file(s) there is no search feature in any of the existing clients. 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.
Gnutella / Gnutella2
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, and Gnutella 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, creator of Shareaza. 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 many of the problems caused by outdated clients on the network. Nowadays, modern Gnutella clients support all of these features, and many more, including firewall-to-firewall transfers, are being tested.
OpenNap (originally Napster)
This is a modified version of the protocol originally used by the Napster client, which was the first widely used peer-to-peer filesharing application. It is still developed and 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 was 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. The creators of the spyware-free Kazaa Lite were ordered to cease distribution after a judge ruled that it violated copyrights held by Sharman Networks. Whether or not the presence of spyware 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. There's still the choice of using a free software GiFT plugin to connect to the FastTrack network. However, due to its high profile the FastTrack network is now clogged with corrupted and dummy files placed to disrupt the trade of copyrighted songs.
Wikipedia article (the free online encyclopedia) reproduced under the terms of the GNU (General Public License) Free Documentation License.