File sharing (English: File sharing) refers to actively sharing one's own computer files on the network (Internet or small local area network). Generally, file sharing uses P2P mode, and the file itself is stored on the user's personal computer. Most people who participate in file sharing also download shared files provided by other users at the same time. Sometimes these two actions are linked together.
Napster was the first large-scale file sharing tool used by many people. It was originally a centralized tool. It only shared MP3 files. The music industry successfully shut it down after legal complaints against it. Napster has a central directory of MP3 files of users reported on it. It also includes IRC-like chat rooms and instant messaging functions. Almost all new big file sharing services are designed with it as an example.
Before Napster was in trouble, the file sharing community had established a new option: OpenNap. It is an open source server published after reverse engineering the Napster protocol, and it is an option of Napster. These networks still existed after the collapse of Napster, and many new client programs using this protocol appeared.
Since then, a decentralized network called Gnutella has appeared. This service is completely open source, it allows users to find any file format, users can not only find MP3 files on the Internet. It was developed after drawing on the experience of centralized services like Napster, specifically to deal with the weaknesses of such services. Its purpose is to ensure the operation of the entire network even after individual connections are interrupted.
Today Napster and Gnutella still dominate file sharing, and they define the two extremes of file sharing. Since September 2003, the Recording Industry Association of America sued a series of file sharing services and users. Today, Gnutella is still a free and open agreement, while Napster is a rebuilt commercial online music service, which is a rival to other commercial services such as iTunes.
Most file sharing systems lie between these two extremes.
Today there are many different file sharing programs on different operating systems, each with different functions. Common commercial file sharing programs also distribute advertisements or contain spyware.
There are many important issues in file sharing, two of which are the most important. The first is whether it is centralized or decentralized. The second is the privacy and anonymity of users. The latter became an important issue after copyright owners sued some file-sharing users. The third problem is the use of so-called "spyware" to collect and sell user data.
Early client programs only accepted one protocol, so a client program either only accepted Napster or only Gnutella. At that time, there was a movement to build a software using multiple protocols on the client side. The main purpose of this movement is that a user does not need to use different programs to do the same thing.
Sometimes the file shared by some people is very popular, so many people will want to get this file from him, which may cause the person's system to fail to meet all needs. Decentralization is a way to alleviate this problem, especially if there are many people sharing this file, then this file can be obtained from different places.
Decentralization has also been used to address the threat to centralism. This threat can come from legal complaints or hostile users. A decentralized network cannot be attacked as a whole, an attacker can only attack its individual members, while the rest of the entire network is still working.
In order to prevent someone from only collecting files provided by others and not sharing them, some systems later introduced the functions of exchange and scoring. In such a system, a user only shares if he can expect to be paid. KaZaA uses a very simple scoring system. The client program calculates the user's priority and tells the user's priority for a section of the file. But soon after this system was invented, someone changed the client program so that client users always have the highest priority.
Another client program that uses a scoring system is eMule. The client program of eMule applies the multi-source file transfer protocol, which monitors the user’s