歷史
P2P架構體現了一個網際網路技術的關鍵概念,這一概念被描述在1969年4月7日第一份RFC文檔“RFC 1,主機軟體”中。而最近,在不用中心索引伺服器結構實現多媒體檔案交換的背景下,這個概念已經變得非常普遍了。
分類
根據中央化程度
1、純P2P
節點同時作為客戶端和伺服器端。沒有中心伺服器。沒有中心路由器。如Gnutella。
2、雜P2P
有一個中心伺服器保存節點的信息並對請求這些信息的要求做出回響。節點負責發布這些信息(因為中心伺服器並不保存檔案),讓中心伺服器知道它們想共享什麼檔案,讓需要它的節點下載其可共享的資源。路由終端使用地址,通過被一組索引引用來獲取絕對地址。如最原始的Napster。
3、混合P2P
同時含有純P2P和雜P2P的特點。如Skype。
根據網路拓撲結構
1、結構P2P
點對點之間互有連結資訊,彼此形成特定規則拓撲結構。需要請求某資源時,依該拓撲結構規則尋找,若存在則一定找得到。如Chord、YaCy、Kademlia。
2、無結構P2P
點對點之間互有連結資訊,彼此形成無規則網狀拓撲結構。需要請求某資源節點時,以廣播方式尋找,通常會設TTL,即使存在也不一定找得到。如Gnutella。
3、鬆散結構P2P
點對點之間互有連結資訊,彼此形成無規則網狀拓撲結構。需要請求某資源時,依現有資訊推測尋找,介於結構P2P和無結構P2P之間。如Freenet。
P2P網路的特點
P2P網路的一個重要的目標就是讓所有的客戶端都能提供資源,包括頻寬,存儲空間和計算能力。因此,當有節點加入且對系統請求增多,整個系統的容量也增大。這是具有一組固定伺服器的Client-Server結構不能實現的,因為在上述這種結構中,客戶端的增加意味著所有用戶更慢的數據傳輸。
P2P網路的分布特性通過在多節點上複製數據,也增加了防故障的健壯性,並且在純P2P網路中,節點不需要依靠一個中心索引伺服器來發現數據。在後一種情況下,系統也不會出現單點崩潰。
當用P2P來描述Napster 網路時,對等協定被認為是重要的,但是,實際中,Napster 網路獲取的成就是對等節點(就像網路的末枝)聯合一個中心索引來實現。這可以使它能快速並且高效的定位可用的內容。對等協定只是一種通用的方法來實現這一點。
優點
•擁有較佳的並行處理能力。
•運用記憶體來管理交換資料,大幅度提高性能。
•不用投資大量金錢在伺服器的軟,硬體設備。
•適用於小規模的網路,維護容易。
缺點
•架設較為複雜,除了要有開發伺服器端,還要有專用的客戶端。
•用在大規模的網路,資源分享紊亂,管理較難,安全性較低。
套用
點對點技術有許多套用。共享包含各種格式音頻,視頻,數據等的檔案是非常普遍的,即時數據(如IP電話通信,Anychat音視頻開發軟體)也可以使用P2P技術來傳送。
有些網路和通信渠道,像Napster,OpenNAP,和IRC@find,一方面使用了主從式架構結構來處理一些任務(如搜尋功能),另一方面又同時使用P2P結構來處理其他任務。而有些網路,如Gnutella和Freenet,使用P2P結構來處理所有的任務,有時被認為是真正的P2P網路。儘管Gnutella也使用了目錄伺服器來方便節點得到其它節點的網路地址。
還有學術性P2P網路。2015年1月28日,賓夕法尼亞州立大學的開發者,聯合了麻省理工學院開放知識行動,西蒙弗雷澤大學的研究人員,還有第二代網際網路P2P工作組,正在開發一個P2P網路的學術性套用。這個項目稱為LionShare,基於第二代網路技術,更詳細地說是Gnutella模型。這個網路的主要目的是讓眾多不同學術機構的用戶能夠共享學術材料。LionShare網路使用雜P2P網路類型,混合了Gnutella分散的P2P網路和傳統的C/S網路。這個程式的用戶能夠上傳檔案到一個伺服器上,不管用戶是否線上,都能夠持續的共享。這個網路也允許在比正常小得多的共享社區中使用。
這個網路與當前正在使用的其他P2P網路的主要不同是LionShare網路不允許匿名用戶。這樣做的目的是防止著作權材料在網路上共享,這同時也避免了法律糾紛。另一個不同是對不同組有選擇性的共享個別的檔案。用戶能個別選擇哪些用戶可以接收這一個檔案或者這一組檔案。
學術社區需要這種技術,因為有越來越多的多媒體檔案套用在課堂上。越來越多的教授使用多媒體檔案,像音頻檔案,視頻檔案和幻燈片。把這些檔案傳給學生是件困難的任務,而這如果用LionShare這類網路則容易的多。
展望
技術上,一個純P2P套用必須貫徹只有對等協定,沒有伺服器和客戶端的概念。但這樣的純P2P套用和網路是很少的,大部分稱為P2P的網路和套用實際上包含了或者依賴一些非對等單元,如DNS。同時,真正的套用也使用了多個協定,使節點可以同時或分時做客戶端,伺服器,和對等節點。完全分散的對等網路已經使用了很多年了,象Usenet(1979年)和FidoNet(1984年)這兩個例子。
很多P2P系統使用更強的對等點(稱為超級對等點(Super Node))作為伺服器,那些客戶節點以星狀方式連線到一個超級對等點上。
在1990年代末期,為了促進對等網路套用的發展,昇陽(SUN)公司增加了一些類到Java技術中,讓開發者能開發分散的實時聊天的applet和套用,這是在即時通信流行之前。這個工作現在由JXTA工程來繼續實現。
P2P系統和套用已經吸引了計算機科學研究的大量關注,一些卓越的研究計畫包括Chord計畫,ARPANET, the PAST storage utility,P-Grid(一個自發組織的新興覆蓋性網路),和CoopNet內容分發系統。