轉載allen303allen的空間vue
在Gnutella網絡中存在如下問題:算法
冗餘消息多,對帶寬的消耗存在必定的浪費。Gnutella網絡協議採用泛洪式(Flooding)消息傳播機制,這種消息傳播機制產生了呈指數級增加的冗餘消息。據統計,P2P軟件白天佔Internet上運行帶寬的40%~70%,晚上有時能達到80%。安全
搜索效率低,可擴展性差。Gnutella網絡的搜索協議將全部資源與節點統一對待,沒有考慮節點的性能差別,也沒有利用查詢成功的歷史經驗,使得搜索效率低下。服務器
KaZaA協議中節點大致上也是無結構鏈接的。可是在KaZaA協議中存在一種「超級節點」。這種「超級節點」實際上是來源於各個普通的客戶端節點,但它們通常具備計算能力強、接入帶 寬大、在線時間穩定等特色。在KaZaA協議中,超級節點承擔着部分服務器的任務,如管理部分普通節點,負責搜索消息的轉發等。每個節點上線後會尋找一 個超級節點掛靠,並和原先掛靠在該超級節點下的其餘普通節點隨機相連,組成一個小的無結構網絡。普通節點的共享文件索引彙報給所掛靠的超級節點。因 而,KaZaA網絡大致上能夠看做是兩層的無結構網絡,上層是超級節點組成的無結構網絡;下層是普通節點組成的多個無結構網絡,按所掛靠的超級節點分紅多 個簇。當普通節點發起文件搜索請求時,將請求消息發給所掛靠的超級節點,超級節點從本身存儲的共享文件索引信息中查找區域內符合條件的文件,同時將搜索請 求轉發給若干個其餘超級節點,由它們返回其區域內搜索結果。若是須要,這個轉發過程能夠執行多步以得到更大範圍內的搜索結果。這樣的混合式結構對異構的終 端節點「分而治之」,能夠充分利用一些能力較強的終端節點來擔任「小」服務器的角色,可謂是「人盡其才,物盡其用」。網絡
除了這些無結構的P2P文件共享協議以外,幾乎全部的DHT網絡均可以並已經用來實現文件共享的應用,如Chord、Pastry、KAD、CAN等應用。架構
(3)流媒體直播app
曾經人們覺得P2P作文件共享最合適,但如今你們發現P2P模式是如此適合於流媒體直播,以致於研究熱點在很短的時間內迅速轉移到P2P的流媒體上來。中 國最先的P2P流媒體直播軟件應該算香港科技大學計算機系研究的Coolstreaming[5]、華中科技大學集羣與網格計算湖北省實驗室研究的AnySee[9]以及清華大學的Gridmedia等系統。負載均衡
Coolstreaming是一款基於網狀無結構網絡拓撲的流媒體直播軟件,中文名叫作「酷流」。在Coolstreaming中,每一個節點經過登陸服務 器(BS)進入網絡,並獲得一些鄰居列表。每一個節點和鄰居之間共享媒體數據。Coolstreaming中節點共享媒體數據是基於一種稱做「數據驅動」的 機制。首先,對於節點緩衝區內所擁有的數據,使用一種「緩衝映射表」(Buffer Map)來進行標記:對於每一秒的媒體內容,若是節點已經從節目源或鄰居處獲取,則標記該秒數據爲「1」,不然標記爲「0」。這樣,一個80秒長度的緩衝 區就對應一個80位長度的緩衝映射表。其次,節點之間以「心跳」(Heartbeat)方式按期交換各自的緩衝映射表,經過比對獲得本身沒有而鄰居擁有的 數據位,而後根據數據調度算法,選擇合適的鄰居,請求獲得相應的數據。Coolstreaming採起全網狀結構組織網絡中的節點,每一個節點鏈接20個左 右的鄰居,在按期交換緩衝映射表的同時,還要交換本身的鄰居列表。這樣,在一個鄰居離開時,能夠從它最近提供的鄰居列表中選擇一個鏈接數沒有達到上限的鄰 居做爲「替補」鄰居進行鏈接。最先期的Coolstreaming是採起隨機選取鄰居的策略,即從BS上隨機返回一些當前在線的節點列表,而後隨機從中選 擇一些節點進行鏈接,在選擇「替補」鄰居時也是隨機的。這樣作同時又能夠達到必定程度的負載平衡效果,由於每一個節點鏈接的鄰居數基本是均勻的。可是這樣作 的缺點也是明顯的,兩個距離很遠、鏈接不好的節點也可能被調度成爲鄰居,大大影響的系統的服務質量。ide
華中科技大學集羣與網格計算湖北省重點實驗室是中國最先研究P2P流媒體直播的小組之一,它所研發的AnySee軟件指望可以使得用戶在網上任什麼時候候任何地點都能觀看多媒體直播節目。oop
AnySee的第一個版本基於樹狀結構:節目源是一個多播樹的根節點,以後的節點被調度爲其「兒子」或子樹。每一個節點向其父節點索要數據,並將數據提供給 多個子節點。這樣的結構可使得節點快速加入到網絡中,而且能夠根據IP鄰近原則構建起一棵IP多播樹,使得節點加入位置都是和本身IP鄰近的節點,從而 優化服務質量。以後AnySee推出第二個版本,結合了原有的樹狀結構和流行的網狀結構,使得「控制數據走樹,媒體數據走網」,既能幫助節點快速定位到加 入點,又能實現必定程度的負載均衡,並緩解了原有純樹狀結構中底層節點和頂層節點之間播放時差較大的問題。最近的AnySee版本已經取消了樹的結構,演 化成了優化的網狀結構(如圖2所示),即每一個節點維護必定數量的鄰居成員,並從中選出最合適的「夥伴」節點與之交換數據。夥伴的數量既有上限又有下限,在 不知足下限時,節點會不斷尋找新的合適節點加入夥伴列表;在達到下限時,節點中止主動尋找夥伴的過程,但能夠接受其餘節點將其加入夥伴列表的請求;在達到 上限時,節點再也不和新的節點創建夥伴關係。
除 了學術界對P2P流媒體直播的研究外,中國還涌現了不少成功的P2P流媒體直播商業產品,如PPLive、PPStream、沸點和TVAnts等,其中 以PPLive最爲有名。PPLive目前擁有數百個頻道,在2006年「超級女聲」決賽期間,頻道觀看人數達到十萬人,能夠說是把P2P發揮到了極限。 此外,國外也有很多對P2P流媒體直播的研究,如SplitStream[10]等。
(4)流媒體點播
因爲觀看直播節目時用戶不能選擇觀看指定片斷,因此在人們熱烈研究P2P流媒體直播時,已有人開始將目光轉向P2P流媒體點播服務。目前成功推出P2P流 媒體點播的機構還很少,典型的有GridCast[11]系統、PPStream點播系統。GridCast也是一款由華中科技大學集羣與網格計算湖北省 重點實驗室於2005年12月份成功研發並投入使用的對等視頻點播系統,具備支持多人共享點播片斷、跟蹤(Tracker)服務器用戶引導、環狀結構內容 組織等特色。因爲一個點播頻道的人數每每不會太多,因此在用戶進行視頻錄放(VCR)操做時(即先後拖動播放點、暫停/繼續播放等操做),可否快速將用戶 定位到觀看該點節目的其餘用戶處就成了P2P點播技術的關鍵。爲了實現快速定位,GridCast中採起了一種同心圓環的媒體內容組織結構。在每個節目 頻道里,媒體內容按指數遞增的區間進行劃分,例如一個一個半小時的電影節目,可劃分紅[0, 5]、(5, 15]、(15, 35]、(35, 75]和(75, END=90]幾段,其單位爲分鐘。每一個節點記錄幾個正在觀看各個段之間內容的節點。這樣,在和AnySee相似的網狀結構中,能夠按期交換這種分段記 錄,從而,在某個用戶拖動觀看點時,能夠快速定位到相應段的記錄節點處,並從這些節點當時所觀看的區間內獲得大量備用記錄以請求該區間媒體數據。此 外,GridCast還根據用戶習慣對數據調度策略進行優化。
(5)IP層語音通訊
IP層語音通訊(VoIP)是一種全新的網絡電話通訊業務,它和傳統的PSTN電 話業務相比有着擴展性好、部署方便、價格低廉等明顯的優勢。在全球範圍內的VoIP應用中,因爲通訊各方可能處於不一樣的網絡情況下,因此採起少數幾個服務 器來進行話音包中轉不只存在壓力過大的問題,還可能沒法爲指定通訊雙方提供滿意的通話質量保證。因此採起P2P技術動態自適應地根據通訊雙方網絡進行鏈路 控制與消息轉發是可行的解決方案。
目 前風靡全球的Skype[12]便是一款典型的P2P VoIP軟件。Skype因爲可以提供清晰的語音質量和免費的服務,使用起來又方便快捷,因此吸引了全球數千萬的用戶,天天在線用戶達500萬人,而且注 冊用戶數天天增長15萬。基本上,Skype採起相似KaZaA的拓撲結構,在網絡中選取一些超級節點。在通訊雙方直連效果很差時,一些合適的超級節點則 擔當起其中轉節點的角色,爲通訊雙方建立中轉鏈接,並轉發相應的語音通訊包。
(6)網絡遊戲平臺
大型網絡在線遊戲和網絡對戰遊戲是很多「網蟲」的至愛。但因爲服務器能力有限,大型網絡在線遊戲每每須要限制場景人數或者不斷增長服務器,而網絡對戰遊戲也必須侷限在局域網內進行或者依賴獨立的服務器端程序及機器實現Internet上的電子競技。目前,已有研究人員將P2P技術引入網絡遊戲和網絡遊戲支撐平臺中。
目前較爲成功的P2P遊戲平臺是華中科技大學集羣與網格計算湖北省重點實驗室推出的PKTown[13]系統。PKTown系統是一個支持多種網絡對戰遊 戲的P2P平臺。P2P網絡對戰遊戲平臺的難點在於將嚴格延時約束的節點彙集在一塊兒,這由對戰遊戲自己要求所決定:延時是影響對戰遊戲用戶體驗的關鍵因 素。在衆多在線用戶中,如何將新加入用戶調度到周圍都是延時鄰近的環境中去呢?PKTown也是採起GridCast中出現過的指數增加的同心圓環方式, 很好地解決了這個問題。
PKTown不須要改變遊戲自己的代碼,而是將用戶和Internet鄰居組建成一個虛擬局域網,將遊戲發出的通訊包截獲後負載上虛擬局域網的地址,轉發 出去,遊戲進程接收到以後認爲是來自同一局域網的遊戲包,則能夠正常進行遊戲。目前PKTown支持魔獸爭霸、星際爭霸和反恐精英幾款遊戲,已經在高校範 圍內進行公測,併成功舉辦華中科技大學第三屆Race War遊戲大賽,用戶反應良好。
3 結束語
自P2P技術從1999年出現以後,如今已經發展繁榮起來。前文中提到的不少技術都已經趨近成熟,如拓撲構建和內容分發等相關技術。因爲P2P架構靈活,適用面廣闊,因此將P2P應用到新領域的現象層出不窮,P2P的軟件產品也如雨後春筍通常爆炸性增加。
經過本文的描述能夠看出,P2P蹬基本原理是容易實現的,人們的研究方向也由基礎架構的構建和維護及優化算法等桎梏中擺脫出來,開始深刻到P2P技術的根 本性問題中去。最新的研究成果代表,很多研究人員已經開始將重心轉入到覆蓋層網絡的節點延時彙集研究、覆蓋網之間(Inter-Overlay)優化研 究、P2P支撐平臺研究以及P2P安全方面的研究等方面。相信隨着對P2P技術研究的不斷深刻,人們可以對P2P計算有一個更深刻的認識並解決目前P2P 領域中大部分科學問題。能夠預見,P2P所帶來的技術創新和應用創新還將繼續。
4 參考文獻
[1]STOICAI,MORRIS R, KARGER D, et al. Chord: a scalable peer-to-peer lookup service for Internet applications [C]// Proceedings of the International Conference of the Special Interest Group on Data Communication (SIGCOMM'01), Aug 27-31,2001, San Diego, CA, USA. New York, NY, USA: ACM Press, 2001:149-160.
[2]HEFEEDAM,HABIB A, BOTEV B, et al. PROMISE: Peer-to-peer media streaming using CollectCast [C]// Proceedings of the 11th ACM International Conference on Multimedia, Nov 2-8, Berkeley, CA, USA. New York, NY, USA:ACM Press, 2003:45-54.
[3]BANERJEES,BHATTACHARJEE B, KOMMAREDDY C. Scalable application layer multicast [C]// Proceedings of the International Conference of the Special Interest Group on Data Communication (SIGCOMM'02), Aug 19-23,2002, Pittsburgh, PA, USA. New York, NY,USA: ACM Press,2002, 205-217.
[4]TRANDA, HUA K A, DO T T. ZIGZAG: An efficient peer-to-peer scheme for media streaming [C]// Proceedings of the 21st Annual Joint Conference of the IEEE Computer and Communications Societies (INFOCOM '03): Vol 2, Mar 30-Apr 3,2003, San Francisco, CA, USA. New York, NY, USA:IEEE, 2003:1283-1292.
[5]ZHANGXinyan,LIU Jiangchuan, LI Bo, et al. CoolStreaming/DONet: a data-driven overlay network for peer-to-peer live media streaming [C]//Proceedings of 24th Annual Joint Conference of the IEEE Computer and Communications Societies: Vol 3, Mar 13-17, Miami, FL, USA. Piscataway, NJ,USA:IEEE,2005: 2102-2111.
[6]LEIBOWITZN,RIPEANU M, WIERZBICKI A. Deconstructing the Kazaa network [C]// Proceedings of 3rd IEEE Workshop on Internet Applications (WIAPP’03), Jun 23-24, 2003, Santa Clara, CA,USA. Piscataway, NJ, USA:IEEE,2003:112-120.
[7]POUWELSEJA, GARBACKI P, EPEMA D H J, et al. The bit torrent P2P file-sharing system: measurements and analysis [C]//Proceedings of the 4th International Workshop on Peer-to-Peer Systems, Feb 24-25, 2005, Ithaca, NY, USA. Berlin, Germany: Springer-Verlag, 2005: 205-216.
[8]RIPEANUM.Peer-to-Peer architecture case study: Gnutella network [C]//Proceedings of Peer-to-Peer Computing, Aug 27-29,2001, Skyways, Sweden. Los Alamitos, CA, USA: IEEE Computer Society, 2001:99-101.
[9]LIAOXiaofei,JIN Hai, LIU Yunhao, et al. AnySee: peer-to-peer living streaming [C]//Proceedings of 25th IEEE International Conference on Computer Communications (Infocom’06), Apr 23-29, 2006, Barcelona, Spain. Piscataway, NJ, USA: IEEE, 2006: 1-10.
[10]CASTROM,DRUSCHEL P, Kermarrec a m, et al. SplitStream: High-bandwidth multicast in cooperative environments [C]// Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, Oct 19 - 22, 2003, Bolton Landing, NY, USA .New York, NY, USA:ACM Press,2003:298-313.
[11]CJENGB,LIU X, ZHANG Z, et al. A measurement study of a peer-to-peer video-on-demand system [C]//Proceedings of 6th International Workshop on Peer-to-Peer Systems (IPTPS'07), Feb 26-27,2007,Bellevue,WA, USA. 2007.
[12]BASETSA, Schulzrinne h G. An analysis of the Skype peer-to-peer Internet telephony Protocol [C]//Proceedings of 25th IEEE International Conference on Computer Communications, Apr 23-29, 2006,Barcelona, Spain. Piscataway, NJ,USA: IEEE ,2006:1-11.
[13]JINH,YAO H, LIAO X, et al. PKTown: A peer-to-peer middleware to support multiplayer online games [C]//Proceedings of International Conference on Multimedia and Ubiquitous Engineering, Apr 26-28, 2007,Seoul, Korea. 2007: 54-59.
做者簡介:
金海,華中科技大學特聘教授、博士生導師,華中科技大學計算機學院院長。長期從事計算系統虛擬化、網格計算、對等計算、集羣計算等相關領域的研究。獲國家 發明專利14項。已發表學術論文300餘篇,被SCI、EI索引收錄160餘篇次。廖小飛,博士,華中科技大學副教授。從事對等計算、流媒體服務等領域的 研究。已發表論文30餘篇,其中被SCI、EI等索引引用10餘篇次。