• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
55
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

超節點分散索引型檔案分享架構

An UltraPeers Architecture with Distributed Index for File Sharing

系 所 別:資訊管理學系碩士班 學號姓名:M09210013 溫文銘 指導教授:王偉德 博士

中華民國 九十五 年 八 月

(2)
(3)
(4)
(5)
(6)

中文摘要

超節點分散索引型檔案分享架構

研究生:溫文銘 指導教授:王偉德

中華大學 資訊管理學系

摘要

近幾年來,由於個人電腦的設備性能愈來愈優越,以及網路速度快速提升下,再加 上網路費用已經可以被一般消費大眾所接受,造就了網路的普及化。在這樣的趨勢下,

就衍生出了同儕式(Peer-to-Peer, 簡稱 P2P)這種新興的架構,有別於以往舊有的主從式架 構,使用者能夠直接與其他使用者在 P2P 的架構下進行連線,使用者可以不需完全依賴 伺服器的服務。許多新興軟體就利用這樣的特點,針對於廣大的個人使用戶提供相關的 服務,如:即時通訊、檔案分享等,其中最受使用者大眾之青睞就是檔案分享的部份。

透過軟體,便可連結到世界各地正在使用此軟體的使用者,進行檔案的交換與分享。

而目前檔案分享軟體眾多,如何能夠快速取得檔案及擁有者資訊,便是檔案分享軟 體的重要關鍵,本研究提出了一個以超節點(UltraPeer)為基礎的 P2P 檔案分享架構,在 我們架構中,我們提出一個方式去管理用户與關鍵詞索引,我們將關鍵詞索引分散到眾 多的索引維護者。這些索引維護者是由具有資格的用戶擔任並按層次組織而成。與現行 的 UltraPeer 架構比較,我們可以由較低的查詢次數達到更高的查詢達成率。

(7)

Abstract

An UltraPeers Architecture with Distributed Index for File Sharing

Student: Wen-Ming Wen Adviser: Wai-Tak Wong

Department of Information Management Chung-Hua University

Abstract

The high performance of personal computing equipment, the high speed network bandwidth and the acceptable fee of the network expense impels the recent widespread of network users. Under such a trend, a new network computing model Peer-to-Peer architecture was developed. Unlike the Client/Server architecture, a client can connect other client directly to get a service in Peer-to-Peer architecture. A user does not need to depend on the server solely. Many emerging soft wares use such characteristic to provide personal services to such huge amount of users. For example, the new software for instant messaging and file sharing, especially. Through the software, a user can link to any user in anywhere of the world who is using the same software to perform the file sharing.

Among the current file sharing software, the key point to win is to obtain the target file information and the owner information faster. In this paper, we present a new UltraPeer-based Peer-to-Peer architecture for file sharing. In our architecture, we propose a scheme to manage users and the keyword index. We distribute the keyword index to the Index Keepers acted by the qualified users and organize then in a hierarchy. Comparing to the current trend of UltraPeer architecture we can achieve the higher search efficiency from a smaller number of queries.

(8)

致謝

致謝

這篇論文得以完成,要感謝指導教授王偉德博士的教導,以及口試委員蔡銘箴老 師、游坤明老師給予本篇論文寶貴的意見與建議,讓這篇研究更臻完備。

此外也要謝謝同實驗室裡的伙伴及學妹劉蓉,不時地給我一些意見;還要謝謝勝 宗、文啟、雅君、庭瑄、雅雲這一群鼓勵著我的好朋友們。

最後,要謝謝一直在背後支持我的家人,因為有你們的支持,所以才可以讓我能專 心在課業上學習,完成學業。

溫文銘謹致 中華大學資訊管理系碩士班 中華民國九十五年七月

(9)

目錄

目錄

摘要...I Abstract... II 致謝...III 目錄...IV 圖目錄...VI 表目錄... VII

第 1 章 緒論... 1

第 1 節 研究背景 ... 1

第 2 節 研究動機及目的 ... 2

第 3 節 論文結構 ... 3

第 2 章 文獻探討... 4

第 1 節 Peer-to-Peer的定義 ... 4

第 2 節 現行P2P模型架構 ... 5

2.2.1 Napster ... 6

2.2.2 Gnutella... 7

2.2.3 Freenet... 8

2.2.4 CAN ... 9

2.2.5 Chord... 11

2.2.6 eDonkey/eMule ... 13

2.2.7 BitTorrent ... 14

第 3 節 P2P架構的劃分 ... 14

2.3.1 以世代趨勢劃分... 15

2.3.2 以結構性劃分... 15

2.3.3 小結... 17

第 3 章 理論架構... 18

第 1 節 原理 ... 18

第 2 節 架構論述 ... 19

3.2.1. 角色說明... 20

3.2.2. 當Client加入此架構 ... 20

3.2.3. 當Client離開此架構 ... 21

3.2.4. 當LS離開此架構,Client被挑選成為LS的情況 ... 22

3.2.5. LS突然離線... 22

3.2.6. Client突然離線 ... 23

第 3 節 索引方法、查詢及取得 ... 23

3.3.1. 索引建立與維護... 23

3.3.2. 查詢與取得... 24

3.3.3. 索引雜湊值的劃分... 26

(10)

目錄

3.3.4. 成員的索引負擔量... 28

第 4 章 實驗結果... 30

第 1 節 實驗設備、比較架構說明 ... 30

第 2 節 實驗數據與統計 ... 31

4.2.1 架構特性比較實驗... 31

4.2.2 關鍵字數量為限制條件之比較... 33

4.2.2 TTL數與詢問... 34

第 5 章 結論... 38

第 1 節 研究結論 ... 38

第 2 節 研究限制 ... 38

第 3 節 後續研究建議 ... 39

5.3.1 存取的安全性... 39

5.3.2 節點數與IK層級之間的關聯性 ... 40

5.3.3 分享的公平性及獎勵機制的建立... 40

5.3.4 Local Server與Index Keeper選擇的條件 ... 40

參考文獻... 42

(11)

圖目錄

圖目錄

圖 一、目前P2P檔案交換軟體使用人數統計... 2

圖 二、Napster架構概念示意圖 ... 6

圖 三、Gnutella架構概念示意圖 ... 7

圖 四、Freenet架構概念示意圖... 8

圖 五、CAN架構概念示意圖 ... 9

圖 六、Chord架構概念示意圖... 11

圖 七、Chord架構尋找物件概念示意圖... 12

圖 八、eMule架構概念示意圖 ... 13

圖 九、BitTorrent架構概念示意圖 ... 14

圖 十、UltraPeer架構概念 ... 18

圖 十一、Hybrid架構概念 ... 19

圖 十二、系統概觀圖... 19

圖 十三、新的Client加入此架構之過程 ... 20

圖 十四、某一peer擔任其他peer的LS之交接過程... 21

圖 十五、某一peer開始擔任IK角色的過程... 22

圖 十六、索引分散維護示意... 24

圖 十七、Client向LS提出詢問要求時的過程 ... 25

圖 十八、Client向LS提出更多擁有該檔案的使用者之要求的過程 ... 26

圖 十九、使用者人數與LS、IK個數關係圖 ... 27

圖 二十、LS、IK連線數統計 ... 28

圖 二十一、詢問節點個數比較... 32

圖 二十二、詢問達成率比較... 32

圖 二十三、以關鍵字編號數量為條件的詢問節點個數比較... 33

圖 二十四、以關鍵字編號數量為條件的詢問達成率比較... 34

圖 二十五、IK和TTL與達成率關係圖 ... 35

圖 二十六、TTL與詢問節點數關係圖... 36

(12)

表目錄

表目錄

表 一、P2P架構定義彙總 ... 5

表 二、P2P世代劃分表 ... 15

表 三、P2P架構之結構性劃分 ... 16

表 四、索引負擔表... 29

表 五、架構統計結果... 31

表 六、各架構之路由資料比較... 38

(13)

緒論

第 1 章 緒論

第 1 節 研究背景

由於電腦相關硬體設備研發快速,一般的桌上型個人電腦的運算處理速度已不像從 前緩慢,而今的一般桌上型個人電腦可以擔負起一些簡易的運算服務,甚至能夠成為一 個小型工作站,提供其他遠端的使用者連線登入,再加上輔助儲存媒體(硬碟)可以儲存 的容量不斷隨著技術的研發而持續升高,得以讓個人電腦記載更多的資料檔案內容。並 且隨著網際網路的發展,網路的傳輸速度向上提升,使得全球愈來愈多的人口可以透過 網路進行即時的視訊、在短時間內完成傳送高容量檔案的任務,這些都是今日科技日新 月異的成果。

也因為這樣的科技發展趨勢,在個人電腦的高效能與高速的網路傳遞速度兩者密切 搭配之下,造就了同儕式(Peer To Peer, 簡稱 P2P)檔案交換風氣的興起。近幾年來,P2P 檔案交換受到眾多網路使用者的喜愛,使用者可以透過便利且快速的網路傳輸速度,利 用 P2P 軟體的功能,輕易地與世界各地的 P2P 軟體使用者接軌,進而分享、取得想要檔 案資訊,因此使用 P2P 檔案交換軟體的使用者人數逐年升高。

探究P2P檔案交換的起源,最早是由Napster[1]於 1999 年開始發展,並且曾經創下 千萬人數的會員的紀錄。Napster這樣亮眼的成績,所帶來的這股檔案分享旋風,開啟了 後續其他各種P2P檔案交換分享軟體的開發,也讓許多學者及專家紛紛投入P2P架構的研 究中。

根據Slyck[2]網站紀錄由 2003 年 1 月至 2006 年 4 月所做的P2P使用人數統計,如圖 一所示,針對於目前幾個受歡迎且使用者免付費的P2P檔案交換軟體來進行,其統計結 果顯示出現行P2P軟體擁有巨量的使用者人數,這同時也意味著P2P軟體所帶來的市場潛 力及商機無窮。

(14)

緒論

圖 一、目前 P2P 檔案交換軟體使用人數統計 資料來源:Slyck[2]

在台灣,P2P交換軟體Kuro、ezPeer也有不小的佔有率,依據創市際市場研究顧問 網站[3]於 2003 年 7 至 9 月的研究調查,Kuro軟體的三個月平均軟體下載人數約為 85 萬人次,而ezPeer的三個月平均軟體下載人數則約有 82 萬人次。

因此,在網路普及的今天,愈來愈多的家庭可以連上網路,使得上網用戶的比例每 年創下新高。同時因為電腦軟、硬體快速發展,網路速度提升、網路人口激增的科技趨 勢,全球個人用戶增加的速度已經不容小觑,故有許許多多的軟體鎖定這些龐大的用戶 量,想要開發這個富有商機的用戶市場,而紛紛推出相關的網路服務或分散式運算,並 衍生出與傳統提供服務之主從式架構完全不同的同儕式服務架構,例如:能讓使用者進 行檔案分享-Napster、Freenet、Gnutella、eDonkey、eMule、BitTorrent 等軟體;分散式 資源分享計算-SETI@Home、UNITED DEVICES 等;通訊軟體-Yahoo! Messager、

ICQ、Skype、MSN 等。這些軟體都是自網路快速發展後,個人用戶逐漸受到重視的最 佳例子。

第 2 節 研究動機及目的

有鑑於個人用戶的資源分享性及市場漸漸受到注目,而目前網路上流通的 P2P 交換 軟體的種類繁多,從這些軟體中,我們透過觀察可以發現一個好的 P2P 架構則必須要具 備有幾項條件:

(15)

緒論 (1) 易於搜尋可用資訊及可搜尋的範圍大,以提高搜尋效率;

(2) 易於進行分享,同時讓分享出去資源也易於被找尋;

(3) 易於下載及最快的檔案下載速度。

因此,本篇研究以 P2P 架構的服務來做為研究的主題,且對於目前 P2P 架構服務之 檔案分享的部份進行探討與研究,並將各 P2P 架構做一分析比較,從現有 P2P 架構的缺 點中,提出一個新的解決方案。

第 3 節 論文結構

本篇論文的結構如下:

第 1 章 緒論

敘述本研究的研究背景、動機及目的。

第 2 章 文獻探討

回顧從早期到現在 P2P 模型架構,如 Napster、Gnutella、Freenet、CAN、Chord、

eDonkey、BitTorrent 等及整理 P2P 架構相關的研究文獻。

第 3 章 理論架構

提出本研究的系統架構且以數學運算的方式,證明其可行性。

第 4 章 實驗結果

以模擬程式,將本架構進行模擬實驗與 UltraPeer 架構做一比較,並列出實驗 結果數據。

第 5 章 結論

根據實驗的數據,提出本研究的結論、研究限制,並與目前的 P2P 軟體與本研 究提出的架構做一優缺點比較與整理,也提出建議後續研究者的研究方向。

(16)

文獻探討

第 2 章 文獻探討

第 1 節 Peer-to-Peer 的定義

有關於 P2P 架構的定義,其實眾說紛紜,在本節中將 P2P 一詞之定義做一搜集,並 於本小節末彙總整理。

根據Meta Computing[4]中指出,所謂的P2P(在該文獻中稱為PTP)系統就是分散資源 的集合,而這個集合及資源具有下列幾項特性:

„ 這個分散資源的集合中,具有大量的資源。

„ 資源的擁有及管理是藉由不同的組織或個人所掌控。

„ 這些不同的資源有各自的安全需求及策略。

„ 這些資源是具有異質性的特點,例如:不同的 CPU 架構、不同的作業系統等。

„ 這些資源彼此的連結是透過異質性或是多層次網路(multilevel networks)進行連 接。

„ 這些資源擁有不同的資源管理策略。

„ 這些資源在地理的分布上可能是相距遙遠。

W. Kellerer[5]對於P2P的定義:在一個分散式網路環境中,若參與者分享出他們所 擁有的部份資源,那麼都可以被稱作一個P2P的網路。這些分享出來的資源必須藉由網 路提供服務或是內容。他們可以直接與其他的節點進行存取,這些參與者也同時具有資 源提供者與資源需求者的角色。而R. Schollmeier[6]再根據上述定義,把P2P架構更細分 為:完全式P2P(Pure Peer-to-Peer)、混合式P2P(Hybrid Peer-to-Peer),並由這兩種不同的 特性加以明確定義。完全式P2P首先除了符合W. Kellerer所提之定義,第二,任一節點 可以自網路中離開,而不會造成該網路所進行服務的任何損失;混合式P2P同樣除了要 符合W. Kellerer所提定義,第二,中央(central entity)必須提供部份的網路服務。同時,

文中也對於主從式網路(Client/Server network)做一定義:主從式網路是由一個高效能系 統與幾台較低效能的系統組合而成的網路型態,伺服器是中央的單位,負責提供內容及 服務;客戶端則是對於需求內容及服務提出要求,不須分享任何的資源。

根據台灣國際電子商務中心[7]對P2P架構的定義:P2P架構簡單而言,它是藉由系 統間直接交換來進行電腦資訊和服務的分享。這些資源和服務包括了資訊、週期性流

(17)

文獻探討 程、記憶存儲、和檔案磁片儲存的交換。

Gartner Group[8]定義P2P架構電腦技術為網路使用者之間的直接互動,便利虛擬空 間使用,而這虛擬空間則是與有IP網址的使用者相互連結。

ezPeer[9]則是對P2P架構做了另外一種定義:認為P2P架構強調的是端點對端點 (Peer)、程式對程式(Program)、電腦對電腦(PC)、人與人(Person)之間四重直接的關係。

根據上述對於P2P架構的定義,彙整如表 一所示。

表 一、P2P 架構定義彙總

作者 所定義之 P2P 架構

MetaComputing 所謂的 P2P(在該文獻中稱為 PTP)系統是分散資源的集合。

Wolfgang Kellerer

在一個分散式網路環境中,若參與者分享出他們所擁有的 部份資源,那麼都可以被稱作一個 P2P 的網路。而這些分 享出來的資源必須藉由網路提供服務或是內容。他們可以 直接與其他的節點進行存取,這些參與者也同時具有資源 提供者與資源需求者的角色。

Rüdiger Schollmeier

根據 W. Kellerer 提出之定義,再加以細分 P2P 架構的特性。

完全式 P2P:任一節點可以自網路中離開,而不會造成該 網路所進行服務的任何損失;

混合式 P2P:中央必須提供部份的網路服務。

台灣國際電子商務中心 P2P 架構是藉由系統間直接交換來進行電腦資訊和服務的 分享。這些資源和服務包括了資訊、週期性流程、記憶存 儲、和檔案磁片儲存的交換。

Gartner Group

P2P 架構之電腦技術為網路使用者之間的直接互動,便利 虛擬空間使用,而這虛擬空間則是與有 IP 網址的使用者相 互連結。

ezPeer P2P 架構強調的是端點對端點、程式對程式、電腦對電腦、

人與人之間四重直接的關係。

所以,從上表整理之 P2P 的定義,可以對於 P2P 架構得到一個清楚的概念。簡言之,

P2P 架構就是將網路上的分散資源聚集,每一個節點可以擔負起伺服端與客戶端的雙重 角色,並能直接互相的通訊、分享或交換。

第 2 節 現行 P2P 模型架構

提到P2P一詞,許多人都以為P2P的架構,首先就是要去除「集中化」,其實這樣的 想法是錯誤的,P2P架構並非一定要去集中化,像最早的P2P應用程式-Napster,就是 以中央伺服器來服務每一位使用者[10]。所以P2P結構的核心概念不重於集中化與非集中 化,而是要能讓使用者之間直接進行互相的通訊連結,才是P2P結構的精神所在。在本

(18)

文獻探討 小節中就來回顧幾個重要的P2P運作架構。

2.2.1 Napster

圖 二、Napster 架構概念示意圖

Napster是最早期的P2P檔案交換應用程式,它引領了其後MP3 音樂交換的風潮,同 時,它的崛起也使得檔案交流的方式進入了一個新的時代,個人用戶因此逐漸受到大家 的重視。在架構型態上,如圖 二所示,Napster是屬於標準的主從式架構,每一位使用 Napster軟體的使用者,都必須先聯繫到中央伺服器,並上載所擁有的檔案資訊,以更新 或是新增中央伺服器目前的資訊,透過使用者上載資訊進而更新的方式,可以讓伺服器 的資訊一直維持在最新的資訊狀態。而在節點的配置方法上,每一個新加入的使用者(或 稱節點)並沒有利用任何方式在此架構中進行位置的配置。

藉由中央伺服器彙集所有使用者上載的檔案資訊,透過這樣集中管理的方法,所以 當有使用者發出詢問的要求時,Napster 可以很容易地搜尋目前連接該伺服端的客戶群 中,是否具有符合該詢問者所要求的檔案,並回應給該詢問者,而詢問者與檔案擁有者 再連線進行檔案的分享傳輸。所以由這樣集中管理索引的方式,因此 Napster 在索引技 術上是屬於集中化的管理方式。

(19)

文獻探討 2.2.2 Gnutella

圖 三、Gnutella 架構概念示意圖

Gnutella[11]則是繼Napster之後,另一個典型的P2P檔案交換軟體,它與Napster最大 的差異,則是Gnutella在開發時完全摒棄Napster主從式架構的作法,取而代之的是以完 全分散的環境來構成整個架構,如圖 三所示。要加入Gnutella的網路,新的節點必須要 先取得幾個已經存在於架構中的節點位址,透過這些已知的節點,進而得到更多Gnutella 網路下的其他節點訊息。

Gnutella 的每一個節點的資訊都是由節點自己所管理,並將每一個節點都視為一個 同等的單位,所以節點彼此之間沒有地位高低的區分。若有節點發出詢問要求時,會先 傳送給和它有建立連線關係的其他節點,直到這個詢問要求傳遞到擁有者,擁有者再與 詢問者連線且進行檔案的傳輸,所以 Gnutella 的索引方式與 Napster 大不相同,是屬於 非集中化的管理方式。

但由於完全分散式的檔案分享架構,是藉由節點間的互相詢問及遞送,所以在訊息 傳遞上,常會有訊息氾濫(Flooding)的缺點讓人垢病,後來曾採用存活時間(Time-To-Live) 的機制來抑制訊息氾濫的現象,不過卻也縮小了可以搜尋的範圍,因此成效不佳。故近 幾年來Gnutella的架構改變型態,以某些節點去管理其他節點的超節點(Super-node或

(20)

文獻探討 UltraPeer)[20]架構型式改善了大量訊息傳遞的問題。所以現在的Gnutella架構下,每一個 節點詢問會透過超節點來進行詢問的傳遞,這些詢問只會在相連接的超節點間遞送,並 不會像造成過度的訊息流通量。

2.2.3 Freenet

圖 四、Freenet 架構概念示意圖

Freenet[12]是一個非集中化的P2P網路架構,如圖 四所示,每一個在Freenet中的節 點都具有同等的地位,當其他節點曾經在自己的節點下載過檔案,則那些下載過別人檔 案的節點會被視為可信任節點(trust node),並且被記載下來。所以每一個Freenet的節點 都要維護一份含有其他節點位址資訊與持有的資料金鑰值(Data key)之動態路由表 (Dynamic Routing Table),節點才可以透過這份路由表,將詢問的訊息傳送至另外的節 點。

在檔案的管理上,Freenet 裡的每個資料物件都有三把利用 SHA-1 雜湊出 160-bits 長度的獨特金鑰:(1)關鍵字金鑰(Keyword-Signed Key):將使用者自行輸入描述該檔案 之文字字串進行雜湊編碼而成。而這段由使用者輸入的描述內容,也被用來當作是產生 該檔案的公開金鑰與私密金鑰,因此可以透過這個金鑰就能存取其他節點之資料倉庫 (Data Stores)中的內容;(2)子空間名稱金鑰(Signed-Subspace Key):每個 Freenet 節點除 了公共使用的 Freenet 網路空間可以儲存資料物件外,還可以建立節點個人的網路空間。

而這把金鑰的作用,是為了避免兩個使用者使用相同描述之字詞,以致產生關鍵字金鑰

(21)

文獻探討 相同的情況,因此可以運用節點個人空間名稱來產生新的金鑰做為區別,所以常與使用 者描述串一同公開;(3)內容雜湊金鑰(Content-Hash Key):此把金鑰的作用,是要進行 更新或分割檔案,透過將某一個檔案之內容細分成若干等份進行雜湊編碼,且給予每一 個細分後的檔案區段相同,並具有唯一性的虛擬資料檔案金鑰(Pseuso-unique data file key),以識別這些檔案區段是由同一個檔案所分割出來。

使用者在發出詢問要求時,會先發送到可信任節點上。若無法符合要求,詢問者會 再把此詢問要求向前傳遞第二個可信任節點,以此類推。故 Freenet 在每個詢問要求訊 息裡都會隨機給予一個識別值,用來讓節點判別是否已經接收過這個要求,故可以防止 訊息的傳遞造成廻圈遞送現象。當找到相符於需求的檔案,就依循著原來的訊息傳送路 徑告知發出詢問的使用者。但這樣的路徑記載方式會隨著傳遞節點的多寡,會促使路徑 記載變得龐大且冗長,所以為了要避免路徑記載量過大的情況,Freenet 也將訊息的傳遞 有所限制,在經過一定數量節點之後,訊息即行失去效用,稱之為 HTL(Hops-to-Live)。

每一次詢問要求的達成,所有位於這條詢問成功路徑上的節點,除了沿著路徑回傳 資料物件外,還會儲存一份資料物件的複本在自己的資料倉庫中,並利用詢問時鍵值與 物件複本建立關聯性,將其新增到路由表。所以 Freenet 節點的路由表中,永遠都是處 於最新詢問成功的狀態。

2.2.4 CAN

圖 五、CAN 架構概念示意圖

(22)

文獻探討 Content-Addressable Network(以下簡稱CAN)[13]的架構設計概念是建立在二維或二 維以上的多維度虛擬空間,並且將這個虛擬空間以動態劃分的方式,分給所有加入的節 點(Peer),CAN架構的所有節點都有一個屬於自己獨立的區域(Zone),如圖 五所示。每 一個位於獨立區域中的節點都必須維護一份路由表,其內容是記載所有相鄰節點位置資 訊,包括了IP位址與虛擬區域的相關訊息,透過這份路由表格的記錄,可以讓節點更有 效率地執行路由的工作。

在 CAN 的結構下,每一個節點所發送的訊息內容中,都會含有目的地的座標區域 資訊。而這個訊息的發送者,透過路由表資料的記載,向相鄰節點進行訊息的傳遞,並 且藉助貪婪演算法(Greedy Algorithm)的運算,直到將該訊息傳遞至目標的座標區域為 止。

每一個虛擬座標區域都是運用儲存{Key, Value}的格式,將所有的資源存在於相對 應的區域中。其中 Key 值是利用雜湊函式進行運算,以這項數值來決定位於此座標空間 下某一點 P 的正確座標位置。當確定 P 點的正確位置時,只要在 P 點上找到相符的 Value 值,就可以找到要找尋的資源。

CAN 的網路結構擁有一組自己的 IP DNS 區域名稱,以便可以將一個或多個 CAN 架構下的起始節點(Bootstrap Peers)進行對應。當一個新的節點 N 要加入到 CAN 的架構 時,能夠透過這樣的方式取得 CAN 架構中起始節點的實際 IP 位置。

取得了起始節點位置之後,起始節點會隨機提供幾個目前正在架構的節點之 IP,交 由節點 N 來從這些節點裡選取某一節點 Q,並發送 JOIN 的訊息給予 Q。這個 JOIN 的 訊息,經由路由機制會傳送到 Q 所在的區域中。此時,當節點 Q 接受這個訊息後,會 將自己的區域及管理的資訊與新節點 N 對等均分。在節點 N 取得獨立區域後,N 會向 Q 取得未劃分區域前的鄰近節點資料,並且與 Q 的資料一同加入到路由表中。

當一個節點要離開 CAN 的架構時,立即會執行 Takeover 演算法,以確保已離開之 節點 L 其中之一的鄰近節點 S 可以開始接收這個區域。接收新區域後的節點 S 會開始更 新鄰近節點的資料,接著每一個節點會傳送更新的訊息,來確定所有的相鄰節點更新完 成。

(23)

文獻探討 2.2.5 Chord

圖 六、Chord 架構概念示意圖

Chord[14]的結構概念是使用唯一值雜湊函式(Consistent Hash Function)[19]分配一 些數量的鍵值給每一個節點,所以每一個節點大約都管理相同數量的鍵值。唯一值雜湊 函式是以SHA-1 做為基礎,用來將節點及資料鍵值轉換成一個具有長度為M位元的識別 值。而一個節點識別值是藉由把節點IP位址進行雜湊而產生,鍵值識別值則是資料鍵值 經由雜湊運算後所得之結果。

在 Chord 架構上,識別值的配置以順時針的方式,將其定義在以 2M 長度範圍所構 成的環形結構中,這個環形結構稱之為 Chord ring。鍵值 K 的分派則是給予第一個與鍵 值相等或大於鍵值的節點所管理,此節點稱之為繼承節點(successor),管理此鍵值 K 的 繼承節點,便稱之為 successor(K)。當一個節點 N 加入到 Chord 時,首先會從目前管理 N 的鍵值範圍之繼承節點上,將屬於 N 所掌管的範圍鍵值移轉到 N 節點;在節點 N 離 開 Chord 之後,這些範圍的鍵值才又交由先前的繼承節點管理。所以要尋找某一個物件 資訊,只要給予物件的識別值,透過繼承節點間的轉送,就會遞送到含有該識別值的繼 承節點上,而回應的訊息則沿著相反的傳送路徑回覆。

以M位元構成的Chord ring,每一個在此環形上的繼承節點都要管理m個繼承節點資 訊,並且把資訊記載於節點指示表(Finger Table)中,如圖 六所示。一個繼承節點N的節 點指示表所記錄的第i個繼承節點編號,就是利用s = successor ( N + 2i-1) mod 2m的運算公

(24)

文獻探討 式取得,並且i的數值要介於 1 與m之間。以繼承節點 8 為例,節點指示表所記錄的第一 個繼承節點編號值為:s = successor ( 8 + 21-1 ) mod 26,運算過後得到其數值為 9,再依 照順時針方向得到繼承節點編號值為 14,而節點指示表中其他之節點編號也是由此類推 得到。

圖 七、Chord 架構尋找物件概念示意圖

透過節點指示表的記載,每一個繼承節點都可以得知其他m個繼承節點的資訊,當 某一個繼承節點無法直接找到符合某一鍵值K的資訊時,就會從本身的節點指示表中,

向與鍵值最接近的繼承節點編號傳遞要求訊息,直到找尋至該鍵值落入的管理範圍之繼 承節點為止,如圖 七所示。以繼承節點 8 為例,欲尋找鍵值為 54 的物件資訊,則先傳 遞給與鍵值 54 最接近的繼承節點 42,再由繼承節點 42 逐步逼近,最後發現是由繼承節 點 56 所管理。

因為節點的加入與離開,所以 Chord 會以週期性的方式執行 Stabilization 程式來進 行更新,確保繼承節點之指標與節點指示表內容的正確性,避免錯誤發生。

(25)

文獻探討 2.2.6 eDonkey/eMule

圖 八、eMule 架構概念示意圖 資料來源:eMule[17]

eDonkey[21]和eMule[17]是目前較受一般使用者青睞的同儕式下載軟體之一,每一 個新加入的客戶端,只要透過資訊列表上的伺服器IP位址及開放的埠位編號(Port),就可 以連線到一台伺服器,而該伺服器端可以提供服務,如圖 八所示。節點的配置方式,

只是依據軟體中每台伺服器的人數、回應時間等資訊列表,來讓使用者自行決定該加入 哪台伺服器。

此外,eDonkey/eMule 也具有同時向多個節點下載一個檔案、利用雜湊技術偵測檔 案的狀態、大型檔案細切成若干等份分別進行傳送、搜尋檔案資訊等功能。

每個客戶端節點在加入某一伺服器之後,會告知該伺服器哪些檔案可進行分享,而 每台伺服器則會持有一份檔案分享清單,內容是記載所有已連線之客戶端分享的檔案資 訊,藉由這些資訊讓其他節點便於搜尋並下載;在進行搜尋時,每個客戶端節點先發送 到主要連線的伺服器,伺服器就會把符合詢問要求的檔案資訊清單回覆給該客戶端,而 當想要有更多的結果時,則是透過軟體中的”延伸搜尋”功能,將搜尋的要求傳給其他的 伺服器且等候回覆。

(26)

文獻探討 2.2.7 BitTorrent

圖 九、BitTorrent 架構概念示意圖

BitTorrent(簡稱BT)[15]與eDonkey同樣是屬於目前最受大眾喜愛使用的同儕式下載 軟體。BT架構的形成,一開始是為了要解決主從式架構對大型檔案(如影片、軟體、遊 戲)傳輸而需要大量的頻寬,且會造成伺服器端嚴重的負擔,甚至導致於伺服器端無法 負荷,尤其是愈受歡迎的檔案,更會突顯這個問題的嚴重性。因此,BT的架構就針對這 個問題,直接採以每個節點使用者都成為檔案提供者的形式,來解決大型檔案傳輸的問 題,所以在BT架構的節點數並無上限,節點的聚集是藉由每個大型檔案的來源擁有者之 種子列表所得知,因此聚集而成的節點數也大不相同,如圖 九所示。

BT 架構是採用產生出來的種子資訊檔案(副檔名為 .torrent)來聚集檔案的擁有 者,每個下載檔案的使用者在檔案下載完成後,軟體會隨即製作該檔案的種子資訊檔案 來記載檔案擁有者等相關資料;當有其他的使用者欲取得該檔案時,首先就要取得該檔 案的種子資訊檔,才可以順利向檔案擁有者下載,所以 BT 在節點的詢問上十分不便,

必須要透過其他的方式取得種子資訊檔才可以開始進行下載的動作,但就檔案下載效率 而言,BT 的下載效率優於目前其他的同儕式檔案交換軟體。

第 3 節 P2P 架構的劃分

在第 2 節中,介紹了各具特色的 P2P 架構型態,本小節則針對過去文獻對於這些

(27)

文獻探討 P2P 架構劃分方式,做一個整理。

2.3.1 以世代趨勢劃分

根據Sandvine[16]之調查所歸類出來的P2P結構世代劃分,總共可以區分出三個世 代,分別為:集中化( Centralized Framework )、非集中化( Decentralized Framework)、控 制型非集中化( Controlled Decentralized Framework )等,如表 二所列。從表 二中觀察可 得知目前的架構演化,已從第一代的集中化型式、第二代的非集中化型式,到第三代的 控制型非集中化,顯示架構型態逐漸朝向UltraPeers( 或稱Super-node )的管理方式、節點 配置的區域聚集化及索引資訊彙整的趨勢,而節點傳送詢問息的方式,則改由所管理的 UltraPeer負責進行與其他UltraPeers的溝通。

表 二、P2P 世代劃分表

世代 架構說明 代表軟體

或模型

集中化

具有中央伺服器是此網路架構型態最大的特徵,每一個 使用者都可以發出要求給中央伺服器,透過伺服器的搜 尋,可以找到檔案的擁有者,詢問者能夠直接與擁有者 進行聯繫並下載檔案。

Napster

非集中化

屬於完全分散的形式架構,每一個節點傳送要求是以節 點與節點間互相傳遞尋找的方式來進行,當找到符合的 檔案時,擁有者會與詢問者直接聯繫。

舊有的 Gnutella

版本

控制型 非集中化

融合了前兩代的優點,每一個節點都連結到一個固定存 在 的 節 點 , 這 個 固 定 的 節 點 被 稱 為 Super-node 或 UltraPeer,當節點提出詢問時,經由所連結的 UltraPeer,

再轉送到別的 UltraPeer 進行搜尋的動作,當符合條件 時,詢問者與擁有者會直接聯繫下載。

新的 Gnutella 使用者端

版本

2.3.2 以結構性劃分

除了以世代趨勢做為P2P架構的劃分外,E. K. Lua, J. Crowcroft[22]則是以P2P架構的 結構性與非結構性,來做為分類P2P的標準。

結構性的 P2P:所謂結構性的 P2P 網路架構,係指節點受到一定規則的配置,節點 分享出來的資料內容索引,以某一種特定的順序依序交由給負責的節點,方便在詢問的 達到最有效率的搜尋。

非結構性的P2P:所謂非結構性的P2P網路架構,係指節點加入這個網路環境中,不

(28)

文獻探討 需要依照特定的規則,所以節點沒有特殊配置的位置;節點資訊內容的索引管理部份,

則是以節點自我管理、節點間傳送時互相交換索引資訊為主;詢問的部份,是以大量發 送給相鄰節點的擴散方式來傳遞。其P2P結構性之劃分表,如表 三所示。

表 三、P2P 架構之結構性劃分 結構

性質 項目

結構性 非結構性

P2P 架構 名稱

Napster CAN Chord Freenet Gnutella New Gnutella

Bit Torrent

eDonkey 2000

架構

特色 主從式

多維度 的虛擬 座標空 間

單向環 狀

利用關 鍵字及 描述字 串來辨 別資料 物件的 所在

架構扁 平、訊息 氾濫現 象

為兩層 式 UltraPeer 的階層

須取得檔 案種子列 表,

再依據列 表找到檔 案擁有者

伺服器 提供檔 案資訊 給客戶 端直接 下載

訊息 遞送 方式

交由中 央伺服 器負責

利用成 對的鍵 值,去 定位資 料節點 的位置

比對鍵 值與節 點負責 的數值 範圍

節點間 使用關 鍵字、

描述性 字串進 行搜尋

訊息大 量發送 給各節 點

透過 UltraPeer 詢問

根據列表 追踨擁有 者

主從式 的節點 詢問遞 送

網路 節點 上限

依據中 央伺服 器的能 力而定

最多 N 個節點 在 d 維 度的空 間

最多 N

個節點 無 無 無 種子列表 無

失效 節點

的 影響

嚴重影 響架構 的運作

不影響 架構的 運作

不影響 架構的 運作

不影響 架構的 運作

失效節 點過多 會導致 架構運 作的效 能低下

原來的 節點被 分配到 其他的 UltraPeer

持續嘗試 連結列表 上的其他 擁有者

重新連 結另外 一個伺 服器

(29)

文獻探討 2.3.3 小結

由第二節與第三節綜合整理後,可以得到下列幾個小結論:

„ 集中化網路架構的優點就在於只需要向中央伺服器進行詢問要求,免於節點間 詢問訊息的傳送,但因為是集中化的管理,所以意味著使用者人數愈多,伺服 器的負荷量愈大,這是集中化的最大缺點。

„ 非集中化的網路架構,在進行搜尋時會產生大量的要求詢問訊息,而這些訊息 會充斥在整個架構中,造成網路的效能不佳。雖然可以透過訊息的存活時間機 制有效抑止,不過卻會局限住可以搜尋的範圍,降低了可能被尋找到的機率。

„ 目前的架構都偏向於各節點擁有的檔案資訊經過統整,然後分散到某些特定節 點或是產生特殊檔案進行管理,這種做法可以有效避免所有資訊過於集中到某 一個節點上,不會使得擁有資訊的節點過量負荷;由產生特殊檔案的方式,可 以確保在某些節點群就能夠取得檔案。

„ 為了提高架構中的運作效率,每個節點都可能會被選為管理索引資訊及維護的 角色,以期有效運用一般節點資源,也解決詢問訊息在節點間的大量傳送,降 低網路效能。

„ 具結構性的 P2P 架構,雖然在搜尋的效率上佔有很大的優勢,不過卻有可能會 間接限制整個 P2P 架構的大小;相反地,非結構性的 P2P 架構,在架構的規模 大小方面並沒有上限,所以在搜尋的效率及搜尋範圍,會因為規模過大造成搜 尋效率低下的情況。

(30)

理論架構

第 3 章 理論架構

綜觀目前 P2P 的架構索引方式,仍有數個待解決的問題,如:(1)大量使用者同時湧 入;(2)可搜尋的節點數目;(3)單點失效(single point of failure)等問題。因此本章就針對 這些問題,以分散式索引、使用者流量分散、能夠尋找目前所有節點的檔案資訊等方法,

並且可以快速分享,提出一個新的解決方案。

第 1 節 原理

根據第 2 章觀察所得之現行 P2P 架構的現象,將部份資訊彙集到某些特定節點上的 控制型非集中化之架構,已經成為發展的趨勢。但這樣的架構卻產生了一個隱憂,就是 超節點間仍然必須透過互相的詢問,才可以得知彼此的索引資訊,所以還是會累積不少 的訊息傳遞量。

為了解決巨量的訊息傳遞問題,我們提出了一個解決方案。將所有的超節點層面 上,再加上一層負責連結各個超節點的索引維護(Index Keeper,簡稱為IK)層,有了IK層,

超節點只須要透過詢問幾個索引管理者,便可取得目前架構下,所有節點的索引訊息,

大大減少了訊息的遞送量及詢問節點數。UltraPeer與Hybrid兩架構的概念如圖 十、圖 十 一所示。

圖 十、UltraPeer 架構概念

(31)

理論架構

圖 十一、Hybrid 架構概念

第 2 節 架構論述

在本小節中,會詳述節點的運作方式及行為。而本架構在初始的狀態下,除了Master Server負責節點的出入資訊外之外,還有已存在的Local Server 32 台來擔任初始狀態時,

新加入節點所需連接的伺服器端。整體系統概觀如圖 十二所示。

圖 十二、系統概觀圖

(32)

理論架構 3.2.1. 角色說明

本架構中總共有四種主要的角色,分別為 Master Server(MS)、Local Server(LS)、Index Keeper(IK)及 Client 等。MS 主要是負責將新加入的使用者分派到最適合的 LS 上,同時 也掌控各 LS 的狀態,以便隨時可以進行調整的動作;LS 是擔任管理 Client、將 Client 的檔案資訊上載、負責遞送 Client 的 query 等工作;Keyword Index Keeper(KIK)是掌管 加入此架構中所有 Client 的檔案關鍵字資訊,且每一個 KIK 都各司其職負責不同索引範 圍的部份,Client 則是一般的使用者。

3.2.2. 當 Client 加入此架構

當新進使用者想加入此架構時,首先會在MS註冊,然後再由MS依照當時所記錄之 各LS的負載程度,決定該使用者要加入到哪一台的LS,然後MS會傳遞使用者加入的訊 息給該LS,此時MS會等待LS的回應訊息,以確定該LS目前的情形,再將該新進使用者 分派到此LS管理之下,並給該使用者一個識別的編號。為了避免MS癱瘓後,發生單點 失效的問題,所以MS是採用叢集式(Cluster)的方式進行維護及運作。而在新進使用者加 入到某一LS下之後,該使用者會將這些檔案資訊轉換為一連串的雜湊數值資訊,再將這 些數值資訊傳至LS,由該管理之LS來負責整理。除此之外,也將本身的網路頻寬與硬 體效能等告知予LS,而這些資訊就是日後挑選成為新的或接替離線的LS,及選為IK的 重要依據,如圖 十三所示。

圖 十三、新的 Client 加入此架構之過程

(33)

理論架構

圖 十四、某一 peer 擔任其他 peer 的 LS 之交接過程 3.2.3. 當 Client 離開此架構

該 Client 單純只具有一般節點角色:若 Client 想要離開此架構時,首先會發送一個 使用者退出的訊息告知 LS。當 LS 接到使用者退出訊息時,則會把該使用者的相關資訊 (包含雜湊值資訊與網路、設備資訊)予以刪除,所以當 LS 向 MS 進行回報目前狀態之更 新時,都是保持在最近的負載狀態。

該Client是擔任其他節點的LS或IK角色:如果想要離線的Client是具有LS角色時,除 了會有上述之訊息傳送行為外,同時還會依據自己本身所管理之Client的網路頻寬、硬 體效能等記錄,從中挑選出適合接替LS角色的Client,再發送接任LS的訊息給該適合接 手LS角色的Client,並且把自身所負責之管理訊息的記錄,也一併交由新適任的Client,

完成了舊LS與新任的LS之間的工作交接,如圖 十四所示。如果該Client是具有IK的角 色時,除了同樣會有Client退出的訊息發送行為之外,還會同時發送IK退出的訊息給予 Index維護結構的上層Keeper。此時,原來負責控管該Client的LS會根據當時的網路狀態 挑選出適任者,來接替該Client的工作。當適任者遴選出來之後,舊有的IK便將所負責 之Index範圍資訊,交給新的適任者以完成新舊IK的交接,如圖 十五所示。

(34)

理論架構

圖 十五、某一 peer 開始擔任 IK 角色的過程 3.2.4. 當 LS 離開此架構,Client 被挑選成為 LS 的情況

當此架構之某一 LS 想要離線,或需要再組立一個新的群組時,會先挑選出適合的 Client 來成為新的 LS。在 LS 欲離線的部份,首先 LS 會依照 3.2.2.小節的程序,發送接 任 LS 的訊息給適合接下 Server 角色的 Client,當 Client 接到這個訊息時,Client 可以有 答應或是拒絕接任的權利,並且將決定的結果回覆給 LS。LS 在收到來自於 Client 的回 覆訊息時,若是 Client 答應接任,則後續的處理程序會一樣會依照 3.2.2.小節所述繼續 完成交接的動作;但若是 Client 拒絕接任,則 LS 會繼續發訊息給下一位適合接任的 Client,並且進行前述之相同的訊息傳遞動作。

3.2.5. LS 突然離線

如果 LS 因為某些不可預期的意外,而發生突然離線的情形時,當 Client 無法與該 LS 進行聯繫時,就會向 MS 進行提報的動作,此時 MS 會先與該 LS 進行聯繫,若確認 無法收到該 LS 的訊息回應,則從狀態資訊的記錄中,挑選出接任 LS 的 Client,然後 MS 再將所保管的舊有 LS 資訊給新任 LS,完成交接的動作。在完成交接動作的期間,

(35)

理論架構 如果有其他 Client 發送詢問的要求給 LS,則 Client 在經過短暫時間的等待,發現無法 與 LS 取得聯繫,隨即會發送一個 LS 連線無效的訊息給予 MS,則該詢問要求會等待至 新任 LS 選出之後,再交付新任 LS 處理。

3.2.6. Client 突然離線

若 Client 因為某些因素而發生意外離線的情形時,若有其他的使用者需用到該 Client 所提供之資訊,則會回應無法取得的訊息,並通知管理該 Client 的 LS,由 LS 來刪除該 意外離線的 Client 資訊,再交付給 MS 進行狀態的更新動作。

第 3 節 索引方法、查詢及取得

3.3.1. 索引建立與維護

在索引的建立與維護上,本架構是以雜湊函數(hash function)將檔案的標題、關鍵字 句進行運算轉換成為一連串的數值。在本架構之中,LS負責的雜湊數值區域為最大,而 這些LS再將自己負責的數值區域等分成 32 份,傳送給負責的IK,如此進行相同的動作,

便可將索引以分散的方式,分配給其他的IK,如圖 十六所示。

(36)

理論架構

圖 十六、索引分散維護示意 3.3.2. 查詢與取得

當使用者在查詢時,會先利用關鍵字來進行查詢,然後LS會將此關鍵字經由雜湊函 數的轉換,尋找自己是否有符合需求的檔案,再回應給詢問者,而詢問者根據這份列表 決定下載的檔案,就直接與該擁有者進行連線下載。假若該Client沒有所尋找到想要的 檔案時,LS會再依據該雜湊數值所落入的數值區間,傳送給該區間所負責的KIK。透過 該KIK進行資訊的比對動作,可以得知哪一個LS或是使用者擁有詢問者所需要的資訊檔 案回傳給LS,並由LS把結果回覆給詢問者。若還是無法找到符合需求的檔案,則該KIK 再向上層KIK傳遞詢問要求,直到找到符合需求的檔案或是詢問到最上層的KIK為止,

如圖 十七所示。當關鍵字為兩個或以上的複數時,LS會先傳遞給第一個KIK,透過該 KIK篩選後將符合第一個關鍵字的結果,再從中找尋找符合第二、三…等關鍵字檔案,

(37)

理論架構 並將結果列表回覆給LS,KIK在篩選的過程是依照詢問者要求之結果數量列出,若篩選 後的結果不足詢問者要求的數量,則KIK會再向上層KIK提出要求,直到滿足需求的結 果數量或是詢問到最上層的KIK,即行停止。

圖 十七、Client 向 LS 提出詢問要求時的過程

決定了下載的檔案後,除了與該擁有者進行檔案傳送的要求連線外,Client還會發 送一個檔案傳點下載訊息給LS,由LS將該訊息中的檔案雜湊值,交付給剛才的KIK,由 KIK再交付給上層的KIK比對雜湊值,以取得擁有該檔案的其他擁有者訊息,然後再進 行多點傳輸的下載動作以增加下載的速度,如圖 十八所示。

(38)

理論架構

圖 十八、Client 向 LS 提出更多擁有該檔案的使用者之要求的過程 3.3.3. 索引雜湊值的劃分

以索引雜湊數值為 220區間為例,新加入的使用者所擁有的每一筆檔案資訊透過雜 湊函式轉換後,將這些數值資訊交由LS;而此時LS負責接收登入的使用者所傳來的數 值資訊,並加以記錄。在此架構中,每一LS最多只能管理 32 名的Client,而每 32 台LS 則稱為一個單位(Unit)。當使用者的數量愈來愈多時。每一台LS會挑選出 1 個Client來做 為第一層(Lv1)的IK,負責將此 32 台的LS索引資訊進行收集,而每一IK負責的數值區域 則為 215的索引值,同時MS會根據LS回報的資訊挑選出適任的使用者當作新的LS,當新 的LS遴選出來後,便會產生出另外一個新的單位。若架構中已經滿足於 32 個單位時,

除了一樣會遴選出新的LS外,還會再產生新的單位,並且第二層(Lv2)的IK也會隨之產 生。所以當條件滿足時,就進行遴選LS、產生上層IK的動作反覆進行,就是本架構中同 儕式的分散索引建立程序,Hops數量與Client數量之間的關係,經由數學運算的結果,

如圖 十九所示。從統計圖中可以發現LS與Lv1 呈現固定數量的規律遞增,Lv2 的IK數 量成長則是隨著節點數的增加而遞增,在節點數為 16384 時,除了產生固定數量的LS 與Lv1、Lv2 的IK,還選出了Lv3 的IK連結所有的Lv2 IK,這些選出的Lv3 IK數量不會因

(39)

理論架構 為節點數的大量產生而改變,直到現有Lv3 IK所負擔的資訊量接近飽和,需要再產生Lv3 IK為止。

在此架構下的各節點角色連線數統計,同樣運用數學運算的方式呈現於圖 二十所 示。可以發現每一LS與Lv1 的IK最大連線數,一直都是保持穩定不變的個數,在節點數 為 16384 時,則因為Lv3 IK的產生,使得每一個Lv2 IK角色的連線數提升一倍的情形。

由於都是與固定節點數連線,因此每一個擔任LS或IK角色的節點,不會因為節點數增加 而提升連線數量。

圖 十九、使用者人數與 LS、IK 個數關係圖

(40)

理論架構

圖 二十、LS、IK 連線數統計 3.3.4. 成員的索引負擔量

假設目前線上的使用者有十萬人,根據eMule[17]所建議每位使用者最佳分享檔案設 定值為 500 個檔案,而每一檔案的檔案資訊約為 120bytes(包含雜湊值 3bytes、檔案名稱 50bytes、擁有者IP位址 4bytes、4 個關鍵字共約 60bytes),且假設檔案的分布情形近似 於常態分布。每一位使用者所要上載的檔案資訊為 500×120bytes,約等於 60Kbytes。

以此例而言,一台 LS 會管理 32 位使用者,所以每台 LS 需記載 32×60Kbytes 的檔 案資訊,約等於 1.92Mbytes;而每一台 LS 所記載的 1.92Mbytes,依據常態分布的計算 後,則最高等份佔去了目前檔案資訊總量的 8.30%,並且每一筆檔案資訊有 4 個關鍵字,

因此每一筆資訊則需要拷貝成 4 份交給各所屬的 IK。所以每一個 Lv1 的 IK 會收到 4×32×8.30%×1.92Mbytes 的檔案資訊,約等於 20.40Mbytes;以相同的概念來類推,每一 個 Lv1 IK 資料量的最大等份為目前檔案資訊總量的 16.60%,則 Lv2 的 IK 會收到 16 位 Lv1 的 IK 劃分出來的檔案資訊 16×16.60%×20.74Mbytes,約等於 55.08Mbytes 的檔案資 訊;同樣根據常態分布,每一個 Lv2 IK 的資料量最大等份為目前檔案資訊總量的 16.49%,則 Lv3 的 IK 會收到 16 位相同雜湊範圍的 Lv2 IK 所傳來的檔案資訊 16×16.49%×55.08 Mbytes,約等於 145.3Mbytes 的資訊量。

(41)

理論架構 依照一般的壓縮比率將檔案資訊進行壓縮,檔案資訊大小約為原來的 30%。根據資 策會FIND[18]之調查資料,以日本的網路速度為例,資料量與傳輸速度之時間,如表 四 所示,IK或LS進行交接時,一部份是與舊有的負責成員拿取資訊,另一部份則是向下層 的成員收取,可以同時達到更新資訊的目的,因此新任的負責成員是以下載的速度作為 考量。

表 四、索引負擔表

傳輸時間 角色

原始的 檔案資訊量

(Mbytes)

壓縮後 檔案資訊量

(Mbytes)

12Mbps/

1Mbps

24Mbps/

1Mbps

40Mbps/

1Mbps LS 1.92 0.58 0.37 秒/

4.64 秒

0.19 秒/

4.64 秒

0.12 秒/

4.64 秒 Lv1.IK 20.40 6.12 4.08 秒/

48.96 秒

2.04 秒/

48.96 秒

1.22 秒/

48.96 秒 Lv2.IK 55.08 16.52 11.01 秒/

132.16 秒

5.51 秒/

132.16 秒

3.3 秒/

132.16 秒 Lv3.IK 145.3 43.59 29.06 秒/

348.72 秒

14.53 秒/

348.72 秒

8.72 秒/

348.72 秒

註:傳輸速度以日本為例[18]

(42)

實驗結果

第 4 章 實驗結果

本架構是以模擬程式來進行模擬,並與 UltraPeer 架構進行結果的比較。

第 1 節 實驗設備、比較架構說明

在本小節中,將說明進行模擬實驗所使用的實驗設備,並且簡單說明模擬實驗中的 Hybrid 與 UltraPeer 兩個架構作法。實驗設備如下:機器設備:Intel Pentium4 2.4GHz、1 GB RAM;使用之作業系統:Windows 2003 Server。

模擬實驗之架構作法概述:

Hybrid:此架構的運作概念是以 UltraPeer 的架構為基礎,再加上 IK 層負責彙整各 個 UltraPeer 的索引訊息。在本架構的 UltraPeer 稱之為 LS,每個 LS 負責管理 32 位使用 者,且使用者會上載其檔案資訊至 LS 彙整,並由每一個 LS 再交付不同索引範圍的 IK,

而 IK 會把從各 LS 取得的資訊集中整理,成為連絡各 LS 資訊的橋樑;在詢問的發送上,

使用者會先發問給 LS,若 LS 無法解決則再傳遞至 IK 層,直到滿足詢問條件或發問到 最上層 IK 為止。

UltraPeer:此架構的運作概念是依據現在的UltraPeer架構概念所構成,UltraPeer的 產生是假設該網路架構中已經存在的節點來擔任;每個UltraPeer負責管理若干位使用者 (本研究限制為 32 位使用者),這些使用者將自己的檔案資訊上傳至UltraPeer進行彙整管 理;J. Risson and T. Moors[23]調查指出,每次依據TTL(Time-To-Live)所傳送出去的節點 數,需要小於 7 至 10 個,因此在本研究中,每個UltraPeer間是以數量從 1 至 6 不等的 UltraPeer個數相互連結,構成一個複雜的UltraPeer網路結構;在發送詢問時,透過 UltraPeer間的傳遞,則可以搜尋到其他節點所擁有的資訊;詢問傳送方式,在本模擬實 驗中採用TTL的特性,而根據Sandvine[16]所做的調查報告指出,一般TTL數值設定的範 圍是在 4 至 6 之間,本研究則將一個詢問限制值設定為 7,且TTL值會隨著詢問的傳送 而遞增,意即每一個節點向UltraPeer發問後,假使仍無法解決詢問,則由此UltraPeer為 起點,向與之連結的其他UltraPeer進行詢問,直到TTL值相等於 7 為止。

(43)

實驗結果

第 2 節 實驗數據與統計

4.2.1 架構特性比較實驗

本 次 的 模 擬 實 驗 , 以 132,096 個 節 點 做 為 模 擬 實 驗 的 節 點 總 數 量 , 每 一 個 LS( UltraPeer )管理的節點數量為 32 個節點,每個節點均帶有 120 個關鍵字編號數量,

並以亂數且常態情況進行模擬產生關鍵字編號,而這些編號的範圍區間為 1 至 218之間,

在Hybird的架構下,LS的管理索引範圍為 1 至 218索引值、每一個IK1 的管理索引範圍是 213、每一個IK2 的管理索引範圍是 29、每一個IK3 的管理索引範圍則是 25;詢問結束的 條件是取得目前架構下,符合關鍵字編號之目標數量為 1 至 5 個等不同條件即可;模擬 實驗會執行 1000 次的詢問。簡單的統計結果如表 五所列。

表 五、架構統計結果 項目

架構名稱 達成率 平均

詢問節點數

Hybrid 架構 97.56% 3 UltraPeer 架構 78.28% 153

由表 五觀察可以發現,兩架構在詢問的達成率上相差高達了近 20%左右,且平均 詢問的節點數比較上,UltraPeer架構之詢問節點數約為Hybrid架構的 51 倍之多,顯示在 相同的關鍵字分布情形下,Hybrid架構只要詢問 4 個節點數,就相等於查詢了整個架構 中所有的LS索引資訊,反觀UltraPeer架構還必須透過TTL機制的協助,才可以將詢問要 求傳遞至整個網路架構中,而每次發送詢問時,平均會牽涉到 153 個節點負責解決。加 入了連結各LS的IK層所帶來的成效,的確可以改善現有之UltraPeer架構使用的TTL機制 之缺失。

UltraPeer架構隨著取回的目標數量不同,因此造成詢問節點數產生遞增的趨勢;

Hybrid架構因為有明顯的階層路徑,所以並不會隨著目標數量的不同,在大幅度的增加 詢問節點的個數。兩架構之詢問節點個數統計圖,如圖 二十一所示。

(44)

實驗結果

圖 二十一、詢問節點個數比較

圖 二十二、詢問達成率比較

從圖 二十二的觀察中,以每次設定取回不同的目標數量,兩架構在詢問達成率的 比較上,Hybrid架構均優於UltraPeer架構,顯示出Hybrid架構能夠用最少的詢問節點數 就可以解決詢問;而UltraPeer架構藉由UltraPeer之間的訊息傳遞連繫,隨著取回目標數

(45)

實驗結果 量的增加會產生詢問節點數量多問題,且詢問達成率最高也只接近 80%,顯示出UltraPeer 本身架構上的缺點會造成無法搜尋整個網路的所有節點,以導致詢問達成率受到影響。

4.2.2 關鍵字數量為限制條件之比較

本 次 的 模 擬 實 驗 , 以 132,096 個 節 點 做 為 模 擬 實 驗 的 節 點 總 數 量 , 每 一 個 LS( UltraPeer )管理的節點數量為 32 個節點,每個節點均帶有相同個數的關鍵字編號數 量,並以亂數且常態情況進行模擬產生關鍵字編號,並且這些編號的範圍區間為 1 至 218 之間,在Hybird的架構下,LS的管理索引範圍為 1 至 218索引值、每一個IK1 的管理索引 範圍是 213、每一個IK2 的管理索引範圍是 29、每一個IK3 的管理索引範圍則是 25,詢問 結束的條件是取得目前架構下,符合關鍵字編號之目標數量 5 個即可,而本次模擬實驗 的控制條件,則是由關鍵字編號數量以 40、60、80、100、120 個為主,依據不同的條 件,來觀察Hybrid與UltraPeer架構詢問達成率及詢問節數的情形,並且每次的模擬實驗 均會執行 1000 次的詢問。

圖 二十三、以關鍵字編號數量為條件的詢問節點個數比較

從圖 二十三的觀察中,限制的條件設定為每次取回的目標數量固定為 5 個,來比 較兩架構在詢問節點數量上的差異,可以發現UltraPeer架構在節點擁有關鍵字編號數量 愈少的情形時,每一個詢問所必須傳遞的節點愈多,Hybrid架構則最多是詢問到 4 個,

(46)

實驗結果 而隨著關鍵字編號數量的增加,UltraPeer架構詢問的節點數才會逐漸遞減。因此每一節 點擁有的關鍵字編號數量,對於UltraPeer架構的搜尋上有重大的影響,但對於Hybrid架 構影響的程度而言,僅是增加IK層的索引負載量大小。這也意味著,每一節點在擁有關 鍵字編號數量愈少,只要一個節點進行發問,UltraPeer架構對於每個詢問所影響的節點 數就會愈高,進一步造成詢問訊息在架構內充斥,甚至可能讓整個架構的運作效率降低。

圖 二十四、以關鍵字編號數量為條件的詢問達成率比較

從圖 二十四的觀察中,同樣以設定每次取回目標數量固定為 5 個的情形下,比較 兩架構在詢問達成率的優劣上,可以發現在每個節點擁有的關鍵字編號數量為 40 時,

Hybrid架構與UltraPeer架構於詢問達成率的比較沒有明顯的差距,但隨著關鍵字編號數 量愈來愈多的情形下,UltraPeer架構只維持在達成率接近 80%之間,而Hybrid架構的詢 問達成率則愈來愈高,顯示出Hybrid架構在取回特定的目標數量時,有了IK層級幫忙進 行索引資訊的彙整,所以能以最少的詢問得到最多的目標量。

4.2.2 TTL 數與詢問

本 次 的 模 擬 實 驗 , 以 132,096 個 節 點 做 為 模 擬 實 驗 的 節 點 總 數 量 , 每 一 個 LS( UltraPeer )管理的節點數量為 32 個節點,每個節點均帶有 120 個數量的關鍵字編號,

並以亂數且常態情況進行模擬產生關鍵字編號,並且這些編號的範圍區間為 1 至 218

(47)

實驗結果 間,在Hybird的架構下,LS的管理索引範圍為 1 至 218索引值、每一個IK1 的管理索引範 圍是 213、每一個IK2 的管理索引範圍是 29、每一個IK3 的管理索引範圍則是 25,詢問結 束的條件是取得目前架構下符合關鍵字編號之目標數量 5 個,而本次模擬實驗的控制條 件,則是分別觀察UltraPeer架構對於TTL由 7 至 1 的不同,在詢問時的達成率與詢問節 點數,依據這些的條件來比較Hybrid與UltraPeer架構的差異,而模擬實驗則是執行 1000 次的詢問。

圖 二十五、IK 和 TTL 與達成率關係圖

(48)

實驗結果

圖 二十六、TTL 與詢問節點數關係圖

從圖 二十五中,將模擬實驗設定為執行 1000 次詢問,且設定取回目標數量為 5 的 情形下,觀察TTL數與詢問節點數對於UltraPeer架構詢問達成率的變化。可以從統計圖 中發現在以每個節點擁有 120 個關鍵字編號數量之下,當TTL為 4 時,詢問的達成率僅 為 32%左右;TTL為 5 時,詢問達成率近 71%共成長了約 40%;在TTL為 6 的情形時,

對於達成率的增加則沒有明顯的助益,僅成長了 4%;當TTL為 7 時,詢問達成率只有 增加了 0.6%。Hybrid架構在詢問節點 1 與 2,意即詢問的層級在LS與IK1 時,其所對於 詢問達成率的幫助並不明顯,甚至於完全沒有任何助益;在詢問節點為 3,即IK層級為 2 時,其詢問達成率為迅速成長為 85%;在詢問節點為 4,即IK層級為 3 時,其詢問達 成率則增加了 10%。

從圖 二十六中,可以觀察TTL與詢問節點數之間的關係:TTL為 4 時,每一個詢問 平均會傳送給 102 個節點;TTL為 5 時,則每一個詢問平均會發送給 230 個節點;在TTL 為 6 的情形時,平均傳送的節點數激增為 842;當TTL為 7 時,每一個詢問所平均傳送 的節點數卻大幅度地增加為 2720 個節點。

所以由上述的統計結果顯示,在 UltraPeer 架構下,大部份的詢問均可以在 TTL 為 5 時獲得解決,所以每次詢問的發送則必須在平均詢問二百多個節點之後,才有可能找 到需要的資料;而在 Hybrid 架構下,有 85%的詢問達成率是落於 IK 層級為 2,也就表

(49)

實驗結果 示詢問遞送到 IK2 時,就相等於詢問了 16300 (32×32×16) 個數量左右的節點,詢問遞送 的方式遠比 UltraPeer 架構有更大詢問範圍,且在搜尋效率及達成率更佳。

(50)

結論

第 5 章 結論

第 1 節 研究結論

本研究提出了一個以 UltraPeer 為基礎的混合式 P2P 結構,稱之為 Hybrid 架構,它 為現在的 UltraPeer 形式之 P2P,提出了一個有效降低 UltraPeers 之間搜尋訊息的傳遞量,

並且同時可以尋找目前在 P2P 網路環境下,所有線上使用者節點之索引資訊的可行方 案。Hybrid 架構透過在 LS 層將索引進行分散,每一個 IK 層的節點只須要負責某一區 段範圍的索引值,因此可以透過 IK 角色來聯繫各個 LS,提高搜尋的效率。

透過前述的模擬實驗,我們證明了在詢問節點個數與詢問達成率的比較上,明顯優 於舊有 UltraPeer 架構,這也意味著詢問路徑的簡短與訊息傳遞量的縮減。所以由 IK 角 色擔任 LS 間的連絡管道,可以確實改善 UltraPeer 架構下的缺點。

與舊有的UltraPeer架構相比較,透過IK角色輔助,擴大了搜尋的範圍性,同時,每 一個使用者也都可能被選為擔任LS或IK,有效利用每個使用者資源;與其他P2P架構相 比較,我們所提出的架構不需像CAN、Chord反覆進行尋找目標位置的訊息遞送,也避 免Napster架構的集中化管理,可能會造成中央伺服器瓶頸的情形。在各架構的路由比較 部份,如表 六所示。

表 六、各架構之路由資料比較 P2P

架構 Napster CAN Chord Freenet Gnutella Bit Torrent

eDonkey

2000 Hybrid

取得資 料的路 由數量

1 D*N1/d log N <HTL <TTL 依據種 子列表 上的使 用者而

依據伺 服器傳 回的擁 有者數 而定

4

第 2 節 研究限制

在本研究中,由於實驗設備的不足,因此無法實際建構出真實的 P2P 架構環境,僅 能藉由模擬程式將 Hybrid 與 UltraPeer 架構的架構概念實作後,進行節點間詢問路徑的 紀錄及索引資訊彙整的動作,來觀察其運作。故不能反應各節點在實際網路環境下,所

(51)

結論 會面臨的各種情況。

模擬程式的執行僅是由一台 1 GB RAM 的 PC 負責運算,受限於硬體設備的容量,

因此無法進行模擬更多的節點總數及節點攜有的關鍵字編號,來觀察 Hybrid 與 UltraPeer 兩架構在更多節點數時的各項差異。

第 3 節 後續研究建議

在本小節裡,將討論本研究尚未解決之問題,且提出可能的解決方案,以做為後續 研究的建議方向。

5.3.1 存取的安全性

在本研究中,並沒有在存取安全性的方面做考量,但對於特定且封閉式的社群團體 來說,例如:研究團隊等,除了資料分享所帶來的便利性,分享資料的環境是否具有良 好的安全機制,則是在他們共享資料的同時更注重的考慮因素。因此在這樣的考量下,

傳送資料的保密、節點身份的確認與資料存取的權限控制,就顯得相當重要。以下是幾 個可能的解決方案:

(1) 傳送資料的保密:節點間訊息的傳遞,無論是發送詢問或是資料傳輸都可以利 用 Secure Socket Layer(SSL)的加密技術保護,透過 SSL 協定進行傳送資料,就可以確保 輸送對象的正確性,加密後的訊息內容也可以保護訊息的完整性,不受傳遞過程中其他 第三者惡意的修改訊息,或是偽造不實的訊息內容,造成真實的傳送雙方受到第三者訊 息更改後所帶來的危害。

(2) 節點身份的確認:可以利用現有 X.509 的 PKI 金鑰認證安全技術,讓每個加入 架構的新節點,都賦予一個安全的身份認證及 client 節點編號,以防止其他惡意的節點 冒充;此外每一個 client 節點被選為擔任 LS 或 IK 角色時,系統也會發送另外一個認證 授予給這個節點,因此每個 LS 或 IK 節點會具有原來的 client 身份認證及 LS 或 IK 身份 認證等兩種不同的身份識別碼。所以節點不管是在資料的傳送或詢問訊息的遞送,都須 要經過核取身份認證,才可以取得加密訊息後的金鑰及內容。

(3) 資料存取的權限控制:每個節點可以利用設定存取規則(Policy)的方式,來限制 每項資料內容的取得,針對架構中不同層級的使用者,可以設定其所擁有的權限,透過 存取規則的權限設立,每一個節點只能開啟相對應於權限的檔案及審閱內容,所以也能 夠對於檔案文件的內容做使用者過濾的保護。

參考文獻

相關文件

也就是設定好間隔時間(time slice)。所有的 程序放在新進先出的佇列裡面,首先CPU

如圖,空間中所有平行的直線,投影在 image 上面,必會相交於一點(圖中的 v 點),此點即為 Vanishing Point。由同一個平面上的兩組平行線會得到兩個

聖嚴法師在 1999 年 3 月 2 日所召開的第一次 籌備會議中磣勉勵籌備小組的成員磣不要只站在

Eng, Chi, LS, Bio, Science, Ethics, Hist, Geog, Econ, BAFS, Religious, Computer, HE, PE.. 1) Program Plans (Timing) 2) Activities (Collaboration). Discipline &amp; Guidance

將學習如何畫出「最適線」(best fit line)。將一組座標軸上的點建構出「最適線」的規則

此塊控制電路主要在控制,當一個新的 IP 進來的同時,利用 lookup_change 這根 信號,先送至 Change Table,如圖 3.4.2-1,裡查詢此組 IP 是否已存在 Table

Moreover, using the software LS-DYNA dynamic responses which include dynamic fillet stresses, contact forces and contact stresses, and transmission errors of a standard spur pair

服務選取模組主要目的是從 UDDI (2.1.5 節)眾多服務當中,依照需求選取出 一組合適的網路服務。而