原文連結『或許不是最原始』:現有p2p協議分類與簡介
(一) 常用p2p協議
一、napster:世界上第一個大型的p2p應用網路;中央集中式,倒閉了。
napster,這是當時很火的一種共用服務,主要用於尋找mp3,它有一個伺服器用於儲存mp3檔案的連結位置並提供檢索,而真正的mp3檔案則存放在千千萬萬的個人電腦上,搜尋到的檔案通過p2p方式直接在個人電腦間傳播共用。這種方式的缺點就是需要一台伺服器,在mp3檔案著作權之爭火熱的年代,napster很快就成為眾矢之的,被眾多唱片公司訴訟侵犯著作權而被迫關閉。當然伺服器一關napster也就不複存在。
二、gnutella和gnutella2(gnutella2是對gnutella的改進和擴充):開源的;第一個真正非中心的無結構p2p網路,檔案查詢採用洪泛方式。gnutella吸取了napster的失敗教訓,將p2p的理念更推進一步:它不存在中樞目錄伺服器,所有資料都放在個人電腦上。使用者只要安裝了該軟體,就將自己的電腦立即變成一台能夠提供完整目錄和檔案服務的伺服器,並會自動搜尋其它同類伺服器,從而聯成一台由無數pc組成的超級伺服器網路。傳統網路的server和client在它的面前被重新定義。
三、fasttrack:
第一個用戶端是kazaa。協議與gnutella類似。02-03年的最大使用者網,05年退至第三名。衰退原因是這個網路無法應對眾多使用者同時使用,而且有著作權擁有者pollution的行為,以及間諜軟體的問題。
imesh也是以fasttrack為協議的。
四、edonkey,overnet,kad:
自私的人們在利用p2p軟體的時候大多隻願“擷取”,而不願“共用”,p2p的發展遇到了意識的發展瓶頸。不過,一頭“驢”很快改變了遊戲規則,這就是電驢-edonkey,它引入了強制共用機制。
edeonkey將網路節點分成伺服器層和客戶層,並且將檔案分塊以提高下載速度。edonkey網路下最普及的p2p用戶端程式是edonkey2000和emule。emule是edonkey的後繼,但是更出色,採用了dht來構建底層網路拓撲,目前非常流行的p2p檔案分享權限設定軟體。
overnet設計的目的是取代edonkey,它沒有中心伺服器,但使用者數少於edonkey。
kademlia 協議,在這裡叫做kad網路,採用udp方式通訊。很類似於overnet,幾乎只有edonkey使用者使用它。
五、bittorrent:藉助分散式伺服器提供共用檔案索引的混合式p2p網路,檔案分區下載。
下載速度高,沒有尋找功能,種子具有時效性。它將中心目錄伺服器的穩定性同最佳化的分布式檔案管理結合起來。
六、direct connect:
一種常用在小的網路和大學內部網路中的協議,適用於小網路環境中,dc++是常見用戶端。
七、ares:類似gnutella網路。
(二) 現有p2p技術主要涉及的領域和發展方向
(1)提供檔案和其它內容共用的p2p網路,例如napster、gnotella、freenet、can、edonkey、emule、bittorrent等。
(2)基於p2p方式的協同處理與服務共用平台,例如jxta、magi、groove、.netmy service等。
(3)即時通訊交流,包括icq、oicq、yahoo messenger等。
(4)安全的p2p通訊與資訊共用,利用p2p無中心的特性可以為隱私保護和匿名通訊提供新的技術手段。例如cliquenet、crowds、onion routing等。
(5)語音與流媒體:由於p2p技術的使用,大量的使用者同時訪問流媒體伺服器,也不會造成伺服器因負載過重而癱瘓。skype與coolstream是其中的典型代表。
(6)格線運算,挖掘p2p分布計算能力。使用p2p技術以集中那些聯結在網路上的電腦的閒置cpu時間片斷、記憶體空間、硬碟空間來替代“超級電腦”。例如seti@home、avaki、popularpower、distributed.net等。格線運算的宗旨是:將遍布全球的數以萬計的計算節點通過高速internet串連並組織成一個巨系統,使其能夠透明、高效地完成複雜計算任務。
(7)ibm、微軟、ariba也在合作開展一個名為uddi的項目以將b2b電子商務標準化
(8)eazel正在建立下一代的linux案頭。
(9)jabber已經開發了一種基於xml、開放的即時訊息標準,jabber被認為是建立了未來使用p2p資料交換的標準。
(10)lotus notes的開發人員建立的groove試圖“協助人們以全新的方式溝通”。
(11)英特爾也在推廣它的p2p技術以協助更有效地使用晶片的計算能力。
(三) p2p資源定位方式
p2p網路中進行資源定位是首先要解決問題。一般採用三種方式:
(1)集中方式索引
每一個節點將自身能夠提供共用的內容註冊到一個或幾個集中式的目錄伺服器中。尋找資源時首先通過伺服器定位,然後兩個節點之間再直接通訊。例如早期的napster。這類網路實現簡單,但往往需要大的目錄伺服器的支援,並且系統的健壯性不好。
(2)廣播方式
沒有任何索引資訊,內容提交與內容尋找都通過相鄰接節點直接廣播傳遞。例如gnutella。一般情況下,採取這種方式的p2p網路對參與節點的頻寬要求比較高。
(3)動態雜湊表的方式
上述兩種定位方式可以依據不同的p2p應用環境進行選擇,但是人們普遍看好dht(distributed hash
table,分散式雜湊表)方式。基於dht的p2p網路在一定程度上可以直接實現內容的定位。一個矛盾的問題是:如果一個節點提供共用的內容表示越複
雜,則雜湊函數越不好選擇;相應的,網路的拓撲結構就越複雜。而如果內容表示簡單,則又達不到真正實現依據內容定位的能力。目前大多數dht方式的p2p
網路對節點所提供共用內容的表示都很簡單,一般僅僅為檔案名稱。
參考資料:
http://hi.baidu.com/yrworld/blog/item/18e2d8fc4d8656fcfd037f5e.html
http://www.chinadv.com/tech/153534/
http://zixiaoruixue731.blog.163.com/blog/static/3366060200711103495214/
http://my.donews.com/yishuai/2006/04/23/p2p%e6%b1%a1%e6%9f%93%e5%88%9d%e6%8e%a2/
http://ausun-net.spaces.live.com/blog/cns!b9153878b5ef5882!1624.entry
http://dolf.cn/articles/knowledge-sharing-on-p2p-networks-and-implementation.html
http://hi.baidu.com/lifi007/blog/item/9c5e12cbe6105f1dbe09e68a.html