Tuesday, June 26, 2007

淺談P2P

Written By John J. WU

以新視窗展開此篇文章


壹、摘要

P2P(Peer-to-peer)的開發之下,此一網路架構帶給我們無限的便利。透過點對點的傳輸,不管是在資源或頻寬上都有顯著的增加。在本文當中,我們先從傳統的網路架構談起,接著再說到P2P的特色,並且與其作比較。最後,我們再從P2P被限制談起,說明著作權的侵犯與我的看法,並且再進一步介紹其他正當合法的軟體。

貳、本文

P2P(Peer-to-peer),無疑地,為現今網路架構上一個重要的應用。從BTMSNSkype都廣泛應用到這個概念。而相較於傳統的網路架構(Client-Server Model),其較為動態且自動化。以下,我們將分別探討這兩種架構間的差異及優缺點,並且進一步討論其應用跟限制。

傳統的網路架構(Client-Server Model),主要將網路分為客戶端和伺服端。所謂的客戶端,一般是指我們使用者的瀏覽器、電子信箱等等,而伺服端則指的是遠端的HTTP主機或是資料庫、終端機等等。在運作方面,首先,客戶端會送出訊息或請求,接著這個封包會傳至伺服主機或是經由CGI處理,再將結果傳回到客戶端。以網頁的系統來說,當一個或多個使用者填入帳號密碼後,瀏覽器會將此訊息藉由HTTP的封包送給CGIDatabase,然後再把登入的訊息送回給客戶端。

簡單來說,Client-Server Model大致上有以下一些特色。以客戶端來說,它利用圖形介面的方式(GUI),主動提出請求,並且等待遠端的回應。此外,一個客戶端可能同時連上很多主機。而對伺服端來說,它則是被動的等待客戶端傳來訊息,當封包送達時再進行處理、回應。而相對於客戶端,一台主機或伺服器可能要同時面對並處理多個客戶端傳來的訊息。除此之外,伺服端的設計有可能是有記憶效應的(Stateful),也就是說客戶端的一切請求都會被伺服端記住,當下一次客戶端要再請求資料時,伺服端會終止或是另外處理。

就優點來說,Client-Server Model的主要優點在於其安全性和管理的方便。在管理方面,由於此架構有中央處理的機制,當中央主機要進行升級或資料更動時(比方說Web主機IP的變動),並不會影響到客戶端對主機的連接以及對資源的需求。此外,由於中央控管的方式,對於資源的管理和分配較為簡單,而且對資料的安全性跟可靠度也相對較高,因為除了伺服端外,客戶端並無權更改資料的內容。

而就缺點來說,Client-Server Model的缺點其實就是來自於其中央控制的機構。當過多的客戶端請求送達伺服端時,由於伺服端的buffer並非無限,此點終將使伺服端難以負荷,以致網路癱瘓。另外一個缺點則是,當伺服端遭受攻擊或摧毀,其對外的連線將完全中斷。此現象就好像一般家用電話的Circuit Switch,當一個區域的電信分局遭受破壞,我們便無法打電話到外面去。因此,基於這些缺點,P2P便開始慢慢的發展起來。

P2P的網路架構,它打破了傳統主從(Master and Slave)網路的型式,它並沒有固定的客戶端或伺服端;換言之,每一台電腦都可以是伺服端或是客戶端。在整體的架構方面,首先必須先強調的是,在此之下的每台電腦皆被看作是一個節點,而節點和節點之間的連結是靠著一條虛擬的線,但是溝通上還TCP/IP的方式。此外,在架構上還分有CentralizedDecentralizedUnstructuredStructureHybrid等五種。拿UnstructuredStructure來說,前者Unstructured主要使用者為Gnutella,其特色在於點跟點之間並沒有系統化或邏輯化的管理,而且在搜尋的方式上,是隨機選擇節點進行,而執行所需的代價和結果,一般皆無法預期且每次都不相同。相較之下,Structure(用於CANChord等等)則擁有邏輯化的系統管理,而在搜尋上則採用了hash key的方式。

在運作方面,大體而言,當一個客戶端發出請求時,它會先查看它所連結的節點是否的在線上,接著它再將封包送給在線上的各個節點。當這些節點擁有符合此封包請求的資源, 這個節點便會把資源送回給發送訊息的客戶端。相反的,假使這些節點並沒有符合此客戶所要的資源時,它們會將封包往下傳送給它們所連結的其他節點,如此下去,當取得資源時,此資源會透過這些中間點往回傳給那個發送者。當然,假使客戶端的請求一直無回應,此封包當然也不會一直傳遞下去,而會在一定的時間後在網路上被刪除,這就是TTL(Time-to-leave)的概念。

簡單說來,P2P的網路架構有下列一些特色:

一、Overlay。如同前面所述,P2P上的每個節點,本身都可以是客戶端也可以是伺服端,且每個都是靠虛擬的線連結。如此之下,對每個節點來說,其實都是一起共用彼此的資源、頻寬,此點相較於Client-Server Model資源掌握在單一伺服端來說,在彈性上較大。

二、動態連結。由於每個節點都會連結到多個節點,因此當其中一個點發出請求時,只要有另外一個節點在線上,便可以此進行資料的搜尋。它並不需要每個點都必須在線上。但是相反的,Client-Server Model在伺服端斷線或遭破壞時,客戶端便無法向其進行資料的要求。

三、穩定。誠如第二點說的,假使P2P上的任何一個點遭到破壞,其實並不會影響整體的運作,因為它還是可以透過其他點進行運作。這就像是Packet Switch的概念一般,當傳遞中的一點無法前進時,封包會自動找尋其他可行之點進行傳輸,不會受限於固定的線路,因此較為穩定。當然,Client-Server Model則非如此。

四、匿名。這個特色可以保護資源的擁有者和請求者。簡單來說,當一號節點向二號節點要求資源時,一號節點無法得知二號節的請求是它本身所需要的,抑或是它代替別人詢問的;相反的,假使一號節點擁有該資源時,二號節點當然也不知道其是否為一號節點本身所有,還是它向其他點所要得。因此,對於防止網路侵權的人來說,此為一嚴重的問題。因為像Client-Server Model,客戶端到伺服端的所有連結其時都會被紀錄在伺服端當中,所以對誰向誰取的盜版的資料或軟體,其實非常好調查。然而,對P2P來說,對於特定的某一點進行調查其實都不對,因為我們難以知道這個連結紀錄其真正的起點和終點到底在哪裡。

因此,針對上述的特色,P2P的優點在於其每有一個中央的控制機構(除了Napster),且每個點一起分享大家的資源、頻寬等等;所以當網路上的節點越來越多時,大家共享的東西將會越來越多,而且並不需要外增加硬體的需求量。此外,其整體架構較為穩定,不易受到破壞。而就其缺點來說,在資料的搜尋上其實較沒有效率,因為你不知道什麼時候會找到所需的資料,也因此搜尋所需的時間不無法事先預料。

再談完了傳統的和現今流行的P2P架構及特色後,我們接下來要說的,便是現今許多學術或商業團體其實都蠻限制P2P的使用。其實這個原因相當簡單,因為透過P2P的軟體,許多音樂、軟體或文件在未經授權的的情形下,在網路上流傳,造成著作權被侵犯的現象。對此,許多學術和學校網路開始針對P2P的軟體進行封鎖。就我的看法,其實學校網路或其他學術或商業網路,並沒有限制此一軟體的必要。當初在設計P2P的時候,其實並沒有考慮到著作權等問題,所以或許該說其實限制P2P不太合理,因為造成此一濫用且侵權的,是使用者自己,而非P2P本身。然而,話雖如此,我們也很難限制使用者使用P2P,因為即使不使用P2P軟體,還是有很多其他方法取得我們想要的東西。因此,如何在其中取得平衡,我想是比較重要,但也蠻困難的。對我的來說,可能比較好的方法是在每個軟體上加上些編碼,讓使用者在下載時,此馬會透過封包回傳給著作者,以防止盜版或侵權。雖然我知道這種方法也會被破解,但就我曉得的,MatLab軟體便是使用此一技術防止盜載。但無論如何,最後還歸結到我們使用者的道德心。即使使用P2P下載歌曲、音樂或其他軟體十分容易跟快速,但是站在著作者的角度想想,這些都是他們嘔心瀝血的創作,當然也是他們掙錢的工具,我們在未經同意之下取用,是否有曾考慮過它們的感受跟心情呢?如果是你,你又會如何呢?

但是,縱使P2P在使用上有其弊端,我們還是可以將其用在正確且無違法之下。比方說,現在流行的Skype軟體,即是利用Packet Switch的方式,將聲音在網路上傳播,雖然相對於傳統的電話系統其沒有好的品質,使用介面也較為複雜,但是其費用小的優點,也身受跨國電話使用者的喜愛。此外,在一間公司裡面,文件分享跟協同是很重要的,而在P2P發展之前,都是靠內部門戶系統和協作服務器,但是對於資料更新來說卻是相當麻煩的。然而,在使用P2P之下,漸漸打破此一藩籬。另外,在重視高性能計算的科技公司當中,P2P透過其節點共同分享頻寬和資源,實現了此一效能。

總的來說,P2P的開發,讓我們在網路的使用上多了一種選擇,在資源的使用上也較為快速且豐富。儘管在現今的法律下有些許的爭議,但是我相信,只要我們秉持著基本的道德觀念,再加上技術的持續開發,P2P一定可以為我們帶來更大的便利跟好處。當然,伴隨著傳統的Client-Server Model,我們的網路將會更加的友善和豐富。

參、文獻參考

1. Skype說明(無日期)Skype。民國96617日,取自:http://www.skype.com/intl/zh-Hant/download/explained.html

2. Can Erten(民國96331)P2P介紹和互聯網應用。民國96617日,取自:http://www.yeeyan.com/articles/view/huahua/666

3. Client-Sever(民國9663)WIKIPEDIA。民國96617日,取自:http://en.wikipedia.org/wiki/Client-server

4. Peer-to-peer(民國96612)WIKIPEDIA。民國96617日,取自:http://en.wikipedia.org/wiki/P2p

5. Anonymous P2P(民國96612)WIKIPEDIA。民國96617日,取自:http://en.wikipedia.org/wiki/Anonymous_P2P

6. 同儕式網路虛擬環境(無日期)ACN Lab。民國96617日,取自:http://acnlab.csie.ncu.edu.tw/research.php#p2p-nve

7. P2P遇上著作權法(民國941013)。明沂法律事務所。民國96617日,取自:http://www.mingyi-law.com/word.asp?ID=183

8. 火線話題:傳輸軟體一把抓?住宿生當心觸法(民國941117)。中正e報。民國96617日,取自:http://enews.ccu.edu.tw/modules/news/article.php?storyid=453

9. 電算中心該不該禁止學生使用P2P軟體?(民國96516)。龍華電子報。民國96617日,取自:http://www.lhu.edu.tw/e_paper/95/lunghwa_paper_95015/special_column.htm

No comments: