• 沒有找到結果。

第二章、 背景知識

2.2 P2P 檔案分享

2.2.1 Napster – P2P 檔案分享的鼻祖

Napster 是最早採用 P2P 架構的檔案分享應用程式。使用者可以在 Napster 平台中彼 此分享 MP3 檔案。Napster 使用中央式的目錄伺服器來記錄目前線上的使用者資訊及他 們欲分享的 MP3 檔案清單。使用者可利用關鍵字在目錄伺服器上搜尋其他人分享的檔 案,目錄伺服器會將符合搜尋結果的檔案資訊(Metadata)回覆給使用者。取得檔案資訊 後,使用者便可直接與檔案分享者建立直接連線並下載 MP3 檔案。如圖 4 所示,Peer A 先從 Directory server 得知可從 Peer B 下載到檔案 music.mp3。然後,Peer A 直接和 Peer B 建立連線並下載 music.mp3。下載完成後,Peer A 會通知 Directory server,告知 Directory server 說 Peer A 也可提供其他使用者下載 music.mp3。

Napster 服務運作在 1999 年 6 月到 2001 年 7 月之間,總計有 8000 萬個使用者帳戶,

最多同時有 2500 萬個檔案被分享。不幸的是,Napster 最終因為中央式目錄伺服器所引 發的 MP3 版權爭議而中止提供服務。

8

圖 4 Napster 運作示意圖

2.2.2 Gnutella

有鑑於 Napster 引發的版權爭議,後 Napster 時代的檔案分享應用程式在設計規劃時 常採用純 P2P(Pure P2P)架構來規避法律議題。為了避免使用中央伺服器,P2P 節點必須 透過分散式的方法來形成 P2P 網路,而 Gnutella[9]無疑是最經典的例子了。在 Gnutella 中,新加入的節點必須先連線上一個鄰居節點並取得部分的 P2P 節點清單。Gnutella 設 計了一套分散式的方法來達到如同 Napster 查詢目錄的目的。節點使用 Controlled Flooding 或是 Random walking 的方式將關鍵字搜尋訊息透過鄰居節點散佈到網路中,直 到找到符合關鍵字配對的檔案為止。如圖 5 所示,Peer A 使用 Time-to-Live (TTL)為 2 的 Controlled Flooding,將搜尋訊息透過鄰居節點散佈出去。由於 Peer B 擁有檔案 music.mp3,因此 Peer A 可以從 Peer B 直接下載檔案。

9

圖 5 Gnutella 運作示意圖

2.2.3 BitTorrent

BitTorrent[10]是現今最熱門的 P2P 檔案分享服務之一。人們透過實作 BitTorrent 協 定的用戶端程式成為 BitTorrent 網路中的一個節點,並與其他需要相同檔案的節點一起 分享與下載檔案。被分享的檔案會被切割成多個區塊(Piece),而擁有所有 Piece 的節點 被稱為種子節點(Seeder)。其他節點可以從種子節點將部分的 Piece 下載回來,並與其他 節點分享自己擁有的 Piece。檔案的最初分享人必須產生一個 Torrent 檔案,並將這個檔 案以任何方式散佈給其他需要該檔案的使用者,如 E-mail、論壇等。Torrent 檔案中描述 了關於被分享檔案的敘述,例如檔案大小及用來加解密的文字字串。此外,Torrent 檔案 中必須指定一個追蹤伺服器(Tracker)。其他需要該檔案的使用者必須先取得該 Torrent 檔案,並連線到所指定的 Tracker。Tracker 會告訴使用者網路中其他正在下載該分享檔 案的節點的 IP 位址。藉此,正在下載相同檔案的節點們就能夠聚在一起互相交換自己 所擁有的 Piece,進而將所下載的 Piece 拼湊成完整的檔案。

10

根據 ipoque[11]的研究,在 2008-2009 年間,56%的網際網路流量來自於 P2P 應用 程式,且 60%的 P2P 應用流量來自於 BitTorrent 檔案分享服務。

1. HTTP Streaming

HTTP 是最常被使用的串流通訊協定。將影音檔案放置在 Web 伺服器中,使用 者端利用網頁瀏覽器就可即時地從 Web 伺服器下載影音串流回來觀看。其優點在 於 HTTP 封包較不易受到防火牆及代理伺服器的干擾,而缺點是 HTTP 須透過 TCP 的可靠傳輸。儘管可靠傳輸帶來較佳的影音品質,但並不適用於即時影音串流等即 時導向的應用。

2. RTP/RTCP/RTSP

Real-Time Transmission Protocol(RTP)是另一個常用的串流通訊協定。RTP 定義 了標準的封包格式來裝載影音內容,且透過 UDP 通訊協定來傳輸。Real-Time Control Protocol(RTCP)及 Real-Time Streaming Protocol(RTSP)常被用來與 RTP 搭配 的輔助通訊協定。RTCP 可針對一個 RTP 連線提供統計與同步的服務,RTSP 則提 供使用者端控制影音播放的功能,例如暫停、快轉、及倒帶等。由於 UDP 的傳輸

相關文件