您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > P2P从技术到新开放价值
1P2P:從技術到新開放價值吳明蔚台灣大學電機工程所台北市106羅斯福路四段一號電機系館353室E-MAIL:benson@cis.nctu.edu.tw摘要隨著上網人數不斷的激增,寬頻網路的普及,早期廣泛採用的主從式架構,已逐漸不敷使用者在資料量及即時性的強烈需求,是以網際網路的連線模式正逐漸轉型,對等式P2P網路的技術被廣泛地應用在諸多領域,包括檔案分享、分散式計算、訊息網路、與多人共事平台。正因為P2P的精神是「從分享而達共享」,其概念與開放原碼運動所強調的開放價值不謀而合,是以P2P不僅是網路技術上的變革,更是順應新一代網際網路使用者的趨勢。本文並歸納了P2P與開放源碼皆具備的三個開放價值,並探討P2P的未來發展及其衝擊。關鍵詞:P2P、對等式網路、Napster、Gnutella、延展性I.P2P的源由與架構為什麼要P2P?前幾年的網路泡沫,許多人對B2B、B2C及C2C已經夠感冒了,這幾年竟又崛起所謂的P2P(Peer-to-Peer)。ShawnFanning在1999年的突發奇想,撰寫一套Napster軟體來使同儕間能共享MP3檔案。當時的設計其實還是很主從架構,只是因為資料量在真正傳遞時,是直接由分享雙方對傳的,是以出現了P2P的味道。就像知名開放源碼大老EricS.Raymond(ESR)說過「每件出色的軟體都來自開發者個人的特殊需要(譬如搔癢)」。儘管這個突發奇想出身平凡,卻有驚人魅力吸引著學界與業界,進而在這幾年出現許多P2P的新興領域與市場。我認為P2P能成功的道理在於滿足新世代網際網路使用者所喜愛的兩大需求:分享與開放。P2P的架構從P這個字母就佔了整個術語的2/3來看,Peer是P2P技術中很重要的元件。2既然P2P所強調的觀念就是分享與開放,在整個P2P網路中,只要任意兩方能直接進行連線,滿足彼此的需求,則該兩方即符合P2P行為。是以,並不能因為網路上某個節點所具備的能力和其他人有所差異(譬如有一台集中式索引伺服器或一台代理伺服器)有所差異,即來判定此網路不符合P2P精神。所以,只要使用者彼此之間能做到P2P連線,就算是P2P網路。目前大部分的P2P軟體是架構在TCP/IP協定,所應用的領域以MP3檔案分享最為人知。以開山始祖Napster為例(國內EZPeer及Kuro亦採用此架構),採用集中式架構圖(見圖一),有一個集中式伺服器做索引目錄的建立,因此整個網路的資源消耗較低、速度較快、延展性較高,而缺點是可靠性較低(單點故障)以及維護成本高昂。繼其之後的仿效者如Gnutella及E-Donkey改採用分散式架構(見圖二),沒有集中式的伺服器,相對地網路的延展性變低,容易造成壅塞,而優點則是可靠性高、建置成本極低。試問何者較好?當我們以教堂與市集來形容專屬軟體與開放源碼之間的角色定位時,集中式P2P與分散式P2P不也正有著這麼樣的味道。A.Napster的架構:1.連線:安裝Napster軟體,做為NapsterP2P網路的Peer(Client端),然後連上「事先設定」的伺服器。NapsterClient端會將使用者端的相關資料以及分享檔案列表傳送給Server端。2.搜尋:當你想搜尋檔案時,會將查詢要求傳送給Server,然後Server會尋找本身的資料庫的檔案列表,並將結果回傳回去。3.下載:收到Server的結果後,你可以選擇想下載的檔案,並直接連線至對方(Peer),進行P2P的傳送,而無須透過Server的轉送,但檔案傳送完畢時,Server可進行稽核動作。B.Gnutella的架構:1.連線:安裝Gnutella軟體,做為GnutellaP2P網路的Peer端(是圖一Napster的架構及運作方式3Server也是Client),沒有任何事先設定的伺服器來連結,因此對Gnutella網路可以說一無所知。因此,需要知道至少一台Peer的IP位址和Port,做為第一個連線(起始點)。接著有三件事會發生:a.你宣布你的存在b.他會告知其他Peerc.每個Peer回訊息給你藉由和其他Peer交換資訊以瞭解整個GnutellaP2P網路。2.搜尋:當你想搜尋檔案時,會將查詢要求傳送給你有直接連線的Peer(s),這些Peer(s)會繼續將你的要求傳送給他們有直接連線的其他Peer(s),然後繼續反覆下去。在這散佈過程的每一台Peer也都會尋找本身的檔案列表,並將結果回傳回去,如果找不到符合結果,無須回報。3.下載:陸續收到Peer(s)的結果後,你可以選擇想下載的檔案,並直接連線至對方(Peer),進行P2P的傳送,而無須透過網路上其他Peer(s)的介入。如果連線失敗,則很有可能是對方在防火牆之後,Gnutella會重新發送一個下載要求(Push下載),並以Step2的方式散佈此要求,對方(擁有你想下載的檔案)會嘗試從他那邊直接連線回來,進行P2P傳送。綜觀之前對MP3檔案共享技術的探討,以圖七檔案共享示意圖,製作出表一包括MP3檔案共享技術、傳統主從架構及一般搜尋引擎之比較表做一整體性的歸納。在圖七中,假設有第三者作為平台提供者作為C點,資料需求者為A點,資料供應者為B點。在表一中,淺綠色的部分(即所圍繞區域)點出國內MP3檔案共享平台Kuro採取類似搜尋引擎及Napster的作法,將資料搜尋工作集中由特定索引伺服器來處理。淺藍色的部分(即所圍繞區域)標示出EZPeer及Kuro採用真正P2P的作法,將實際的資料傳輸轉嫁給使用者自行圖二Gnutella的架構及運作方式4處理。圖七:檔案共享示意圖一般網站一般搜尋引擎NapsterGnutella索引存放點C點(網站)C點(搜尋引擎)C點(Napster)每個peer資料存放點C點B點B點B點C1用途網頁存取網頁搜尋檔案搜尋檔案搜尋C2用途不存在事先快取(存入索引伺服器)事先快取(存入索引伺服器)檔案搜尋C3用途不存在網頁存取檔案傳輸檔案傳輸A/B點身份不清楚(僅知IP)不清楚(僅知IP)略知(知IP及帳號)略知(知IP及帳號)發佈即時性(資源如何發佈)快速(C點=B點)普通(多半要等C點去掃)快速(B點主動告知)快速(B點主動告知)搜尋即時性(資源如何發現)即時(C點=B點)事先快取(資料可能已過期)事先快取(資料可能已過期)即時(搜尋B點)主要資料類型網頁文件網頁文件MP3音樂MP3音樂/多媒體表一:MP3檔案共享技術、傳統主從架構及一般搜尋引擎之比較II.P2P軟體/技術之應用熱潮再怎麼樣響亮的專有名詞,若沒有發展出殺手級的應用,則可以說叫好不叫座。不過從這幾年P2P在諸多領域蓬勃發展,不僅軟體界大老紛紛提出結合P2P觀念的完整WebServices解決方案,例如微軟的HailStorm/.Net平台、Sun的JXTA/SunOne架構及IBM的Encina/WebSphere。建議躍躍欲試的朋友從開放平台JXTA著手。是以,P2P除了在檔案分享上出盡鋒頭,在其他領域亦有諸多表現。筆者歸納如下:51.電玩/訊息網路:zCenterSpan()專注在P2P聲音文字訊息傳送,在多人電玩環境的應用。zJabber()是使用XML提供P2P即時訊息的系統,更有效整合ICQ、AOL及MSN等即時訊息軟體。2.分散計算:zAppliedMetaComputing()的產品Legion(羅馬軍團)提供企業做跨平台的P2P資源管理工具及P2P知識管理應用軟體。讓網路內的資源,緊密的整合,且在網路安全、功能及彈性上都有兼顧。zDatasynapse()提供財務公司P2P的網路,最終目標是全球性的財務網路。zEntropia()致力在計算能力分享的軟體設計,結合上萬台電腦的空閒時刻,進行分散式計算,免費協助解決一些人類的共同問題,例如搶救愛滋、藥物搜尋與運算、醫學影像處理等等。當然,某些百分比的計算能力該公司會發展營利用途。3.管理/合作:z惠普(Hewlett-Packard)計畫將推行已一年多的e-speak產品提供P2P上的應用。z由LotusNote創始人RayOzzie所創辦的GrooveNetworks()投入開發採購、批發、貨品管理及客服等應用軟體。z英代爾(Intel)也著眼於企業級的P2P應用軟體,並成立了一個Peer-to-PeerWorkingGroup。zNextPage()讓企業內部的檔案伺服器能以P2P的模式工作。zQuiq()鎖定在的前一千大企業(Fortune1000)並提供虛擬P2P的社群環境。4.Peers代理人/分散式搜尋引擎:z從西門子出來的WebV2()著眼於提供企業的Supplychain,提供P2P的應用軟體讓不同廠商之間溝通、搜尋資料。5.超級分散式:zvTrails()發展出FullDuplexPacketCascading(FDPC),可以有效地減少網站面臨壅塞流量。FDPC將陸續連線進來的使用者,先取一部份做第一個層(tier),剩下的繼續將其分成許多層(tiers)。上一層使用者所下載的資料,會直接變成下一層使用者下載資料的來源,端看最小hop數目以及是否在同一地理區域,以此類推。也就是說FDPC將網站壅塞點,分散至一連串的使用者層(tiers)之間作P2P的下載。在每一台vTrails伺服器,會記錄地理位置圖,瞭解其使用者的位置及IP位址。6z2AM也有類似的:StreamingPeerIII.P2P之新社群經驗與開放價值儘管過去的主從架構亦能提供使用者之間互動的平台,但仍是不夠的。筆者認為P2P除了讓使用者之間能更直接密切的溝通之外,P2P的社群經驗是與OpenSource開放源碼運動契合的,所推動的「開放價值」是一致的。P2P的使用者一直很強調分享,包括:1.資料與資訊的分享(MP3、影片、文件)2.知識的分享(群組合作、即時訊息以及視訊會議)3.IT設備的分享(CPU時間、記憶體以及儲存空間)因為分享而獲得更多,因為開放而擁有更多。筆者歸納P2P與OpenSource兩者間具有的三個開放價值:1.開拓思維與眼界(Openyourmindandvision),敞開心胸與他人分享,你會訝異到別人的獨到見解,並得以豐富自己的思維與心靈。另一方面透過無國界密切地分享交流,讓自己增進眼界,進而培養自身的判斷力與領悟性。2.避免再製與閒置(Avoidre-inventandidle)。程式設計師可以有效地夠過開放分享原始碼來持續激發創意,延續軟體的生命;系統管理者以及一般使用者亦可透過分享來提升資源利用率。同時,我們都該避免同樣的事物再製兩次。ESR說我們應該認為別人的時間亦是很寶貴,同樣的問題不應該被花時間解決兩次。3.團體合作(Teamwork),切勿劃地自限,唯有共同合作才有更大的競爭力,並能教學相長學到更多東西。Linux之父LinusTorvalds說過一句有意思的話:「只有糊塗的人用磁帶機來備份資料,明眼人會直接上傳他重要的東西,然後讓全世界來拷貝」。您覺得呢?IV.P2P的未來發展與衝擊P2P接下來會怎麼走?細看P2P的網路架構,其實就是將點對點(Point-to-Point)的層次,從主從式架構(Client-and-Server)連結(connection)進一步成為Peer之間的連結。然而,觀念雖然簡單,戲法人人會變,但巧妙各有不同。筆者認為P2P在接下來幾年,會在使用者族群繼續蓬勃發展,因為畢竟Peer的概念是比較貼近用戶端的。而另一方面企業用戶則因為Peer觀念,而發展出更符合他們需求的完整解決方案,即WebServices。在一般使用者的角度,他們所關心的是P2P的sharing(分享)能力,整個設計理念應該是這個P2P軟體能分享什麼(what)以及如何
本文标题:P2P从技术到新开放价值
链接地址:https://www.777doc.com/doc-610925 .html