第二章、 背景說明
2.2 點對點 (Peer-to-Peer)相關應用
本節將介紹幾個較為著名使用 P2P 技術的相關應用。
2.2.1 Napster
在 1999 年,19 歲的 Shawn Fanning 創造了 Napster[4] ,是世 界上第一個使用 P2P 技術而且受到歡迎的音樂分享服務。Napster 影響了人們使用網路的方式,使得在網路上交換 MP3 音樂檔案變得 相當容易而且流行。但是也因此遭受到唱片公司的控告。
正當 Napster 流行之際,美國法院在 2000 年下令 Napster 網 站必須關閉並且停止音樂交換下載服務。雖然 Napster 因此消失了,
但是卻開啟了後來眾多 P2P 檔案分享服務的先鋒。當 2003 年,
Napster 恢復營運,並且改為付費音樂下載的服務。而免費音樂下載 服務的 Napster 已經不存在了。
6
2.2.2 Gnutella
Gnutella[5] 是一種「純 P2P 技術」應用。剛開始是 AOL 美國線 上的工程師在 2000 年撰寫的,並且以 GNU GPL 授權公開讓大家下 載。雖然隔天就被 AOL 撤下,但 Gnutella 的 P2P 網路已經啟動。
過了一段時間,Gnutella 的協定被反向工程破解,從此與 Gnutella 協定相容的客戶端便陸續誕生。
因為 Gnutella 沒有使用中央伺服器,只要網路上有兩個以上的 客戶端,Gnutella 網路便會存在,因此很難被關閉。
現有的 Gnutella 客戶端大多為 Open Source,如 LimeWire、
Gnucleus、Ares Galaxy、以及 Shareaza。
2.2.3 eDonkey2000
eDonkey2000[6] 簡稱 eDonkey 或 ed2k,由 Jed McCaleb 在 2000 年所撰寫出來,是一種使用 P2P 技術的檔案分享服務。
eDonkey 使用中央伺服器用來尋找檔案,而檔案的傳輸則在客戶端 之間進行。
7
eDonkey 是第一個將檔案切割成片段,讓客戶端能夠下載單一 檔案內的不同片段,有效地讓頻寬使用分散至所有客戶端,而非擁有 完整檔案的客戶端。
eDonkey 使用 MD4 摘要演算法來辨識文件,使得客戶端擁有 的檔案有其獨一性,並可藉由向 eDonkey 的中央伺服器查詢,來得 到欲下載檔案的來源資訊。
而在 2002 年,Hendrik Breitkreuz 啟動了 eMule[7] 計畫,目 的是為創造相容 eDonkey、並且加入新功能、擁有更友善使用者介 面的新軟體。
當 eDonkey 停止發展後,eMule 已成為最受歡迎的 eDonkey 軟體,擁有超過 80%以上的佔有率,且已被移植到各種平台上。
2005 年,美國唱片協會的要求下,eDonkey 網站關閉,也不再 繼續發展。但 eDonkey 的 P2P 網路仍靠著 eMule 與眾多 eDonkey 相容客戶端,存活在於網路上。
8
2.2.4 BitTorrent
2002 年,Bram Cohen 在 CodeCon 發表 BitTorrent[8][9] 軟體 以及 BitTorrent 協定,為一 P2P 檔案分享機制。跟一般 P2P 檔案分 享軟體不同的是,BitTorrent 有著更利於檔案傳輸的特性。藉由 BitTorrent 協定中制訂的幾個規則,檔案的交換效率能更為提升。
BitTorrent 的規則如下:
1. Rarest Piece First Policy 優先傳送最稀有的檔案片段。
2. Strict Priority
盡快完成目前正在下載的檔案片段。
3. Tit-for-Tat Choking Policy
依照對方給予的檔案片段數量,給予回報。
4. Optimistic Unchoking
定時隨機挑選連線,以尋找能力更好的對象。
5. Anti-Snubbing
若一段時間內,皆未從某對象收到片段,便不再上傳給它。
另外還有處理第一片檔案片段的 Random First Piece 以及最後 數片檔案片段的 Endgame Mode。這些規則讓 BitTorrent 的客戶端,
9
能夠盡可能地使用自己的上傳頻寬,以提升整體傳輸速度。
目前,有許多社群維護著自己的 BitTorrent 軟體,在這些社群的 努力下,各項新功能被加入,BitTorrent 仍在快速成長中。