軟件架構雜談(四) --- P2P

淺談軟件架構() linux

—— P2P 算法

----cnyinlinux 安全

本文將討論一種特殊的軟件架構——P2P網絡。這與時下正流行的O2O有些神似,不過兩者沒有聯繫,也不是同類物種。O2O指的是互聯網虛擬世界(Online)與顯示世界(Offline)的協做模式。而P2P指的是同處在互聯網世界中的兩個節點(對等終端)之間的情仇愛恨。所以也有人稱之爲對等網絡。 服務器

和今天熱炒的「去中心化」有着不可割捨的關係。還有一個神奇的物種與它有着絕對關聯關係——比特幣。下面咱們來研討下P2P網絡的原理。 網絡

P2P網絡是Peer to Peer的簡稱,即節點到節點直通網絡。處在網絡上的節點相互之間直接創建聯繫,完成網絡通訊任務。好比生活中普通人都時常能用到的P2P下載器,迅雷下載客戶端就是一個典型的P2P的實現。舉個例子來理解:假設你如今要在某網站下載一部電影,而你的室友電腦上正好有該資源,且迅雷客戶端正在運行,這時候徹底不須要下載來自遙遠服務器傳來的數據,直接從你室友電腦局域網傳輸過來,即節省了網絡資源也縮短了獲取資源的時間。換句話說,全部的迅雷客戶端共同構成了一個資源下載P2P網絡。而迅雷就是P2P軟件,也即Peer。如此原理工做的 架構

那麼,你的迅雷是怎麼知道旁邊電腦有資源的呢?這就得從P2P的實現技術提及了。目前的P2P技術已經發展到第4代了,確切說是第3代的升級完善中,真正第4代的全新技術的P2P尚未開發出來。下面咱們逐代進行介紹。 負載均衡

 

1代,中央控制網絡體系結構。 性能

全網絡的節點計算機都經過網絡與中央控制服務器鏈接,全部的服務請求均發送給中央服務器,由中央服務器運算查找合適的節點(Peer)來肯定P2P鏈接。拿以前下載的例子來講,你在迅雷客戶端請求下載電影的時候,在向電影資源提供站點提交下載請求的同時,也將此信息發送給了迅雷中央服務器。迅雷中央服務器在全部在線的Peer中找出與你距離更近且擁有資源的節點,反饋此信息後你的迅雷客戶端與該Peer創建P2P傳輸通道,這樣一來你就能夠下載該Peer的數據了。固然不是你要下載的全部資源都被附近的人下載過,因此並不是全部下載都能P2P化。在找不到合適的Peer的狀況下,仍是老老實實從資源提供站點下載吧,不過這以後,你就會成爲別人下載同一資源的合適Peer了。 網站

這種方式的P2P模式,好處是網絡架設簡單,軟件設計方便實現,還能更充分的掌握Peer的運行情況和資源分佈。對於中央控制器來講,壓力較大。須要實時運算不可勝數的客戶端的請求。響應的速度就會受制於各Peer與中央控制節點間的網絡情況,以及中央控制節點的運算能力。因此就有了更爲離散化的P2P技術出現。 spa

 

2代,分佈分散網絡體系結構,也即去中心化P2P網絡。

近年流行的比特幣網絡,拒傳就是去中心化純P2P網絡。讀者可自行查閱相關信息。

http://en.wikipedia.org/wiki/Bitcoin 本文貼出維基百科的解釋,敬請參考!

 

去中心化的P2P網絡中,各Peer間的關係就像上圖所示,沒有中央控制節點,全部節點平等的處於網絡中。也被稱爲「純P2P網絡」。 它沒有集中的中央控制服務器,每一個Peer隨機接入網絡,並與本身相鄰的一組鄰居節點經過端到端鏈接構成一個邏輯覆蓋的網絡。對等節點之間的內容查詢和內容共享都是直接經過相鄰節點廣播接力傳遞,同時每一個節點還會記錄搜索軌跡,以防止搜索環路(死循環)的產生。純P2P網絡結構解決了網絡結構中心化的問題,擴展性和容錯性較好。因爲沒有一個對等節點知道整個網絡的結構,網絡中的搜索算法以泛洪(廣播)的方式進行,控制信息的泛濫消耗了大量帶寬並很快形成網絡擁塞甚至網絡的不穩定,從而致使整個網絡的可用性較差,另外這類系統更容易受到垃圾信息甚至是病毒的惡意攻擊。因而又有了更爲可靠的技術來完善它。

 

3代,混合網絡模型。也即前兩種模式的混合。

 

混合式網絡結構綜合了純P2P去中心化和中央控制式P2P快速查找的優點。按節點能力不一樣(計算能力、內存大小、鏈接帶寬、網絡滯留時間等)區分爲普通節點搜索節點兩類。搜索節點與其臨近的若干普通節點之間構成一個自治的簇,簇內採用基於中央控制式的P2P模式,而整個P2P網絡中各個不一樣的簇之間再經過純 P2P的模式將搜索節點相連起來。能夠在各個搜索節點之間再次選取性能最優的節點,或者另外引入一新的性能最優的節點做爲索引節點來保存整個網絡中能夠利用的搜索節點信息,而且負責維護整個網絡的結構。因爲普通節點的文件搜索先在本地所屬的簇內進行,只有查詢結果不充分的時候,再經過搜索節點之間進行有限的泛洪。這樣就極爲有效地消除純P2P結構中使用泛洪算法帶來的網絡擁塞、搜索遲緩等不利影響。同時,因爲每一個簇中的搜索節點監控着全部普通節點的行爲, 能確保一些惡意的攻擊行爲能在網絡局部獲得控制,在必定程度上提升整個網絡的負載均衡。

 

4代,智能P2P網絡。

其實還處在發展中並未完善,不過從技術思想層面看已經超越以前的幾代技術了。

大致分爲如下3種模式:

(1)動態口選擇之一。目前的P2P應用通常使用固定的端口,實際上可引入動態選擇傳輸口,通常說口的數目在 1024~4000之間。甚至P2P流能夠用原來用於HTTP(SMTP)的口80(25)來傳輸以便隱藏。這將使得識別跨運營商網絡的P2P流量計算變得更困難。

  (2)雙向下載。該項技術能夠多路並行下載和上載一個文件和/或多路並行下載一個文件的一部分。而目前傳統的體系結構要求目標在徹底下載後才能開始上載。這將大大加快文件分發速度。

(3)智能結點彈性重疊網絡。智能結點彈性重疊網絡是系統應用P2P技術來調度已有的IP承載網資源的新技術,在路由器網絡層上設置智能結點用各類鏈路對等鏈接,構成網絡應用層的彈性重疊網。能夠在保持互聯網分佈自治體系結構前提下、改善網絡的安全性。智能結點能夠在路由器之間交換數據,可以對數據分類(分辯病毒、垃圾郵件)保證安全。經過多個幾何上分佈的結點觀察互聯網,共享信息能夠了解互聯網蠕蟲感染範圍和性質。提供高性 能、可擴張、位置無關消息選路,以肯定最近的本地資源位置。改進內容分發。使用智能結點探測互聯網路徑蹤影而且送回關於蹤影的數據。解決目前互聯網跨自治區路徑選擇方面存在的問題。減小丟包和時延,快速自動恢復等。

 

<<本文完結>>

相關文章
相關標籤/搜索