檔案分享

檔案分享（File sharing）是指主動地在網路上（網際網路或小的區域網）分享自己的電腦文件。一般檔案分享使用P2P模式，文件本身存在使用者本人的個人電腦上。大多數參加檔案分享的人也同時下載其他使用者提供的分享文件。有時這兩個行動是連在一起的。

## 歷史

文件最初是在可移動媒體上交換的。電腦能夠通過安裝文件系統、bulletin board系統(1978)、Usenet(1979)和FTP伺服器(1970年代)訪問遠程文件。多人在線交談系統(1988)和熱線(1997)使使用者能夠通過聊天進行遠程通信和文件交換。Mp3編碼於1991年被標準化，大大減少了音訊文件的大小，並在20世紀90年代末得到廣泛使用。1998年，MP3.com和Audiogalaxy成立，《數字千年版權法》獲得一致通過，推動了第一批mp3播放器的問世。

## 網路結構

檔案分享有多個重要的問題，其中兩個最重要，第一個問題是中央集中制還是分散制，第二個是使用者的隱私權和匿名性。後者在版權擁有者對一些檔案分享使用者起訴後成為了一個重要問題。第三個問題是使用所謂的「間諜軟體」收集和出賣使用者數據。

早年的客戶端程序只接受一種協議，因此一個客戶端程序要麼只接受Napster要麼只接受Gnutella。當時有一種在客戶端建立一個使用多種協議的軟體的運動。這個運動最主要的目的是一個使用者沒有必要使用不同的程序來做同一件事。

有時有的人分享的文件非常受人歡迎，這樣許多人會想從他那裡獲得這個文件，這有可能導致這個人的系統無法滿足所有的需要。分散制是減輕這個問題的一個辦法，尤其是假如有許多人在分享這個文件的話，那麼這個文件可以從不同的地方來獲取。

分散制也被用來解決對中央集中制的威脅，這個威脅即可以來自法律控告，也可能來自敵對的使用者。一個分散的網路無法被整個地攻擊，攻擊者只能對其個別成員進行攻擊，而整個網路的剩餘部分依然工作。

為了防止有人只收藏別人提供的文件而不肯分享它們，後來有的系統引入了交換和評分的功能。在這樣的系統中，一個使用者只在他能夠期望獲得報酬的情況下才分享。KaZaA使用一種非常簡單的評分系統。客戶端程序計算使用者的優先權並告訴提供文件的一段該使用者的優先權是多少。但這個系統被發明後不久就有人改變了客戶端程序使得客戶端使用者總是擁有最高的優先權。

另一個使用評分系統的客戶端程序是eMule。eMule的客戶端程序適用多重來源檔案傳輸協定，它監視使用者向另一個使用者下載或上傳多少文件。有時這個評分系統似乎不影響下載的速度。假如使用者有一個空閒的上傳隧道的話，那麼它接受對方，向對方上傳8MB數據，然後將對方放到它的排隊的最後。假如對方的評分為x2的話，那麼對方比起評分為x1的使用者只要等半數的時間就又排到了，使用者再上傳8MB數據。假如雙方互相傳送數據的話，那麼它們相互之間的評分就會不斷上升，傳遞的速度也提高。

BitTorrent協議也有非常好的評分系統。假如一個使用者只下載而不上傳的話，那麼他的下載速度就非常低。

今天的系統在上傳和下載的功能上和在防止侵犯法律方面的功能上都比較有效。

## 版權問題

高速網際網路終端普及後匿名的檔案分享系統（如Gnutella和Napster）深受歡迎，此外比較小而質量依然相當高的聲音文件格式如MP3也為檔案分享的成功提供了一定的幫助。雖然檔案分享本身是一種合法的技術，但有些人（實際上大多數使用檔案分享的使用者）用此下載受版權保護的文件。這導致了一些版權擁有者對檔案分享的反攻。

就檔案分享的法律後果問題有很大的爭議。尤其是假如分享文件的人來自法律不同的國家的話，這個問題會很複雜。比如在有些國家一定程度的加密演算法只有在獲得國家特別允許後才能被個人使用或擁有，而在其它國家裡這個限制可能不存在。假如有人從一個允許使用這樣的演算法的國家裡取得了這樣的演算法的原始碼呢？

2000年代初整個檔案分享社群不斷受衝擊。美國唱片工業協會和一些唱片公司企圖關閉越來越多的檔案分享。但他們的努力不很成功，因為不斷有新的系統出現取代被關閉的系統，而且許多這些新的系統沒有中心伺服器，因此使用法庭的方法無法關閉它們，其它的一些系統則逃避到法律無法攻擊它們的國家。

## 常用的協議

檔案分享有許多不同的協議，以下列舉的是最常用和最重要的。

### Ares

Ares是一個類似Gnutella的很普及的網路，其標準（和最普及的）Ares Galaxy客戶端於2005年3月是美國P2P客戶端中第六常用的。大多數使用Ares的是想要接觸儘量多的網路而沒有找到更好的協議的人。

### BitTorrent

BitTorrent協議是唯一廣泛被用在公司分配系統中的檔案分享協議，它的下載速度一般比較高，原因是每個「洪流」為每個文件或文件組存儲著其使用者的資訊：相對於其它協議其協議本身比較小，缺點是它沒有尋找功能。此外它不很靈活，另外精確地說它不完全是一個P2P協議。

2004年初有人發現BitTorrent比任何其它網際網路檔案分享協議所攜帶的資訊都多。許多人相信這至今未變。

### Direct Connect

Direct Connect是一種常用於小的網路和大學內部網絡中的協議，它尤其適用於這些小網路環境中。DC++是其最常見的客戶端程序。

### eDonkey、Overnet和Kad Network

eDonkey2000和eMule是eDonkey網路最普及的P2P客戶端程序。它被用來傳送大量數據，其傳送數目僅少於BitTorrent。它比BitTorrent最大的優點是其客戶端程序有一個尋找引擎。用它使用者可以找到許多文件，比起BitTorrent來它的傳送速度較慢。

Overnet的設計目的是取代eDonkey，許多eDonkey使用者端程序同時使用Overnet，Overnet沒有中心伺服器，但其使用者數量現在少於eDonkey。

Kad網路很類似Overnet，幾乎只有eDonkey的使用者使用它，但它的普及性也很低。

### FastTrack

FastTrack的第一個客戶端程序是KaZaA，它的協議與Gnutella2很相似。從2002年到2003年它是最大的使用者網，但2005年它退到了第三名。

這個衰退的原因是因為這個網路無法對付眾多用戶同時使用，而且許多版權擁有者在網上放入了許多垃圾文件來阻止受版權保護的歌曲的交換。

KaZaA的使用者端軟體在使用者電腦上設置一個間諜軟體，法庭判決這個間諜軟體違反了版權，因此不得再繼續使用和分發。

iMesh也主要使用FastTrack為其協議，此外開放原始碼的GiFT也可以用來連入FastTrack網路。

### Gnutella和Gnutella2

當Napster陷入法律困境時，Nullsoft的賈斯廷·弗蘭克爾發展了Gnutella，Gnutella是第一個真正的非中心的客戶端。此後這個協議獲得了很大的發展。Gnutella對檔案分享有深刻的影響。

Gnutella2本來是對Gnutella的一個改進和擴展，它的發展人是Shareaza的創始人麥可·斯多克斯。它提供了一個擴展的數據包格式、基於UDP的搜索算法和許多其它擴展比如數據包壓縮等等。今天現代的Gnutella客戶端程序都支持這些功能。

### OpenNap（前身為Napster）

OpenNap是對原來的Napster客戶端程序改變後來的，Napster客戶端程序是第一個普及率高的P2P檔案分享程序。今天依然有人在發展它，WinMX等程序使用它。

### WinNY

WinNY是WinNY客戶端程序使用的協議的非正式名稱，它在日本（2005年）很普及，但在亞洲外很少被使用。

### WPNP

WPNP是WinMX最主要的協議。從2001年到2002年這個網路提供最好的搜索不明的英語材料的結果，但它最主要被用來搜索亞洲語言的材料。

## 私有檔案分享

除公有雲服務與對外分享平台外，檔案分享亦可在組織內部的私有環境中進行。此類私有檔案分享通常建立於內部網路或專用基礎架構之上，並由檔案伺服器或網路附加儲存設備 提供集中式檔案存取。

私有檔案分享系統通常具備使用者身分驗證與存取權限控管機制，使檔案僅能由授權人員存取。相較於公開分享平台，此類實作方式較著重於資料主權、管理一致性與內部協作需求，常見於企業、教育機構與研究環境中。