• 沒有找到結果。

        本章節介紹 P2P 技術背景,以及與論文主題相關的各種 P2P 檔 案分享  (file sharing)  應用技術。 

 

2.1    P2P技術 

        P2P (Peer‐to‐Peer)  為一種新型的網路技術,藉由使用在 P2P 網 路中客戶端的頻寬與計算能力,而非依賴少數幾台伺服器的服務,

來快速完成目的。 

 

        最早 P2P 技術的設計為非中央化,也就是不需中央伺服器,網 路上每個客戶端皆有相同的地位,同時具備伺服端與客戶端的能 力,這種 P2P 類型我們稱之為「純 P2P 技術」。 

         

        然而因應用上的特性與需求,出現了所謂的「混合 P2P 技術」。

此類 P2P 網路有著中央伺服器,負責保存每個客戶端的資訊,並回 覆來自客戶端對於這些資訊的請求。 

 

        純 P2P 以及混合 P2P 各有其優缺點,也各適用於不同的應用環 境。目前的 P2P 技術發展,已逐漸地將兩者的優點結合,並已套用 在一些廣受歡迎的 P2P 應用上。 

2.2    P2P相關應用 

以下將介紹數種使用 P2P 技術的相關應用。 

2.2.1    Napster 

1999 年,年僅 19 歲的 Shawn Fanning 創造了 Napster[3],第一個 應用 P2P 技術且受到大眾歡迎的音樂分享服務。Napster 的出現影響 了人們使用網路的方式,使得在網路上交換 MP3 音樂檔案相當容 易。但也因此受到唱片公司的控告。

 

 

        正在 Napster 流行之際,法院在 2000 年下令 Napster 網站關閉,

停止服務。雖然 Napster 已經消失,但卻為後來眾多 P2P 檔案分享 服務,開啟了一條道路。 

 

        在 2003 年,Napster 恢復營運,改為提供付費音樂下載的服務。 

最早以 P2P 技術提供免費音樂分享的 Napster 已不存在。 

 

2.2.2    Gnutella

 

Gnutella[4]  是一種不需要中央伺服器的「純 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[1],簡稱 eDonkey 或 ed2k,由 Jed McCaleb 在 2000 年所創造,為一使用 P2P 技術的檔案分享服務。eDonkey 的中央伺 服器用來尋找檔案,而檔案的傳輸則在客戶端之間進行。 

 

        eDonkey 首創將檔案切割成片段,讓客戶端能夠下載單一檔案 內的不同片段,有效地讓頻寬使用分散至所有客戶端,而非擁有完 整檔案的客戶端。 

 

        eDonkey 使用 MD4 摘要演算法來辨識文件,使得客戶端擁有的 檔案有其獨一性,並可藉由向 eDonkey 伺服器查詢,來得到欲下載 檔案的來源資訊。 

 

        在 2002 年,Hendrik Breitkreuz 集合了一群出色的程式設計師,

啟動了 eMule[5]  計畫,目的為創造相容 eDonkey、加入新功能、並 擁有絕佳使用介面的新軟體。 

 

        在 eDonkey 停止發展後,eMule 已成為最受歡迎的 eDonkey 軟 體,擁有超過 80%以上的佔有率,且已被移植到各種平台上。 

 

        2005 年,在美國唱片協會的要求下,eDonkey 網站關閉,也不 再繼續發展。但 eDonkey 的 P2P 網路仍靠著 eMule 與眾多 eDonkey 相容客戶端,存在於網路上。 

 

2.2.4    BitTorrent 

        2002 年,Bram Cohen 在 CodeCon 發表 BitTorrent[2][6]  軟體與其 協定,為一 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 的客戶端,能 夠盡可能地使用自己的上傳頻寬,以提升整體傳輸速度。 

 

        目前,有許多社群維護著自己的 BitTorrent 軟體,在這些社群的 努力下,各項新功能被加入,BitTorrent 仍在快速成長中。 

 

        本論文實作系統中,客戶端 MDS Client、以及 MDS Client 與 Super  Seeder 之間的通訊,便是參考自 BitTorrent。論文「以 P2P 為基礎之 巨量發佈系統  ‐  客戶端與效能分析研究」[7]  將會詳細介紹

相關文件