• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 自媒體 查看內容
    • 2914
    • 0
    • 分享到

    DAG的基本概念和技術 | P2P對等網絡

    2018-11-20 11:07

    來源: matrixeconmy

    因特網是最大的計算機網絡,它自誕生以來也一直存在著集中式與分布式兩種不同的工作方式。客戶/服務器模式(client/server mode,簡稱C/S)是因特網最傳統、最成熟的集中式工作模式,許多重要的因特網應用協議(如HTTP、FTP、SMTP等)采用了這一模式。在這種集中式的模式下,服務器將一直運行,被動地等待客戶的主動接人,客戶將請求發給服務器,服務器返回給客戶所要的信息。客戶/服務器模式在因特網的最初階段工作得非常好,然而,隨著因特網在規模上不斷膨脹、在功能上不斷擴展,服務器的負擔越來越重,客戶/服務器模式的低效率與難以擴展的缺陷暴露出來,它不再能適應需要極高效率與巨大規模的現代因特網。

    1 P2P網絡基本概念

    當傳統的客戶/服務器模式不再能適應現代因特網需求的時候,人們將目光重新放回到長久被忽視的分布式系統上,對等模式(Peer-to-Peer mode,簡稱P2P)正是在這種情況下受到重視并很快成為研究熱點。“Peer”一詞在英文中的意思是“同等、對等的人”,故而“Peer-to-Peer”譯為“對等(計算)”;國內很多人將P2P稱作“點對點”,這是不恰當的,因為“點對點”是“point-to-Point”,和P2P不是一回事。對等模式的本質思想在于打破傳統的客戶/服務器模式,讓一切網絡成員享有自由、平等、互聯的功能,不再有客戶、服務器之分,任何兩個網絡節點之間都能共享文件、傳遞消息。圖 2–9反映出從C/S到P2P的轉變,Peers之間的邏輯連接構建在物理連接的基礎上。

    圖 2–9 從C/S到P2P(實線表示物理連接,虛線表示邏輯連接)

    對等網絡是分布式系統與計算機網絡相結合的產物,是采用對等模式工作的計算機網絡。圖 2–10描繪了隨著分布式系統規模的擴展,分布式計算的模式相應發生的改變。在對等網絡中,每個網絡節點在行為上是自由的,在功能上是平等的,在連接上是互聯的,所有節點分布式地自組織成一個整體網絡,因此,它能夠極大程度地提高網絡效率,充分利用網絡帶寬,開發每個網絡節點的潛力。

    圖 2–10 分布式計算模式與系統規模的關系

    2 P2P網絡的特性

    P2P網絡區別于其他系統的本質特點如下。

    (1)網絡拓撲結構嚴格

    P2P網絡在網絡應用層構建了一個有(嚴格)拓撲結構的覆蓋網,覆蓋網拓撲結構對于一個P2P網絡具有基礎性的意義,系統的其他許多機制如分布式散列表、路由、負載均衡、容錯與自適應、自組織都以它為基礎。

    (2)節點和數據對象位置確定

    分布式散列表(DHT)是P2P網絡的核心設施。如圖 2–11所示,它通常基于一致性散列函數,提供對于任何一個節點、數據對象在覆蓋網中的位置映射。這一點在結構化P2P網絡中尤其重要,因為它保證了能夠準確地定位到某個節點或者數據對象。具體地說,如果分布式散列表采用一致性散列函數H(),對于某個網絡節點(IP,Port,…),該節點在覆蓋網上將有唯一對應的“節點標識”nodeID = H(IF,Fort,…),IP為節點IP地址,Port為端口號,…表示其他屬性;對于某個數據對象(Key,…),它在覆蓋網上也有唯一的“對象標識”objectID=H(Key,…),Key為對象關鍵碼,…表示其他屬性。對于節點而言,nodelD確定了它的覆蓋網位置,對于數據對象而言,objectID確定了它的索引信息在覆蓋網上的存放位置。

    圖 2–11 DHT在P2P系統中的位置

    (3)高效路由

    基于P2P覆蓋網與分布式敢列表,P2P網絡通常有適合自己的路由算法,以保證高效路由。任意兩個節點間定位所需的覆蓋網路由跳數典型地為TTL(無結構網絡)或log N(結構化網絡),TTL(time to live)為跳數限制,N為網絡節點總數。因為覆蓋網與物理網的不一致性,實際IP路由跳數會高于覆蓋網路由跳數,但仍可以控制在log N的常數倍范圍之內。

    (4)負載均衡

    P2P網絡使用分布式散列表將節點、數據對象分布到覆蓋網上,由于它通常使用一致性散列函數,所以這種分布是均衡的:所有節點大致均勻地分布在整個覆蓋網中,所有數據對象的索引大致均勻地分布在所有節點中,即使有新節點加入、舊節點離開、新對象發布、舊對象刪除,一致性散列函數都能保證高效的動態調整和調整后網絡仍然保持很好的負載均衡。負載均衡是分布式系統努力追求的系統屬性,它對于P2P系統的高效率、可擴展性、動態自適應具有重要意義。

    (5)容錯與動態自適應

    P2P網絡是動態變化的,不斷地有新節點加人、舊節點離開、新對象發布、舊對象刪除,當這些發生以后,P2P網絡必須有很好的自適應性,做高效的調整,以保持網絡的拓撲結構、位置映射、負載均衡和路由信息的更新。如上節所述,自適應最 重要的是更新節點狀態,自適應的方法有周期性探測、按需檢測、捎帶確認等。

    (6)行為的自由性與匿名性

    P2P網絡是一個自由、平等的網絡,兩個對等節點之間做什么事情、采取什么樣的行為、交換哪些信息,完全由雙方自由決定。另一方面,P2P網絡中的用戶是匿名的,因為分布式散列表采用安全散列函數將用戶信息、數據對象信息映射到了一個表面上看起來沒有任何意義的數值標識ID,這個ID唯一地代表用戶和數據對象。由于安全散列函數的單向性與抗沖突性,不可能從此ID破解出它所代表的信息。

    3 P2P網絡拓撲構建與維護技術

    P2P網絡的最大特點和難點,在于它極大的動態性:不斷有新節點加入、舊節點離開、節點失效等情況發生。面對這樣一個動態環境,P2P網絡需要一套健全、可行的方法來處理這些情況:在新節點加人時通知其他節點新成員的到來,在舊節點離開時通知其他節點老成員的離去,而最難的是需要高效、合理地檢測到節點失效并及時修復P2P網絡。下面介紹基于Gossip的P2P網絡拓撲構建和維護技術。

    Gossip算法又被稱為反熵(Anti-Entropy),熵是物理學上的一個概念,代表雜亂無章,而反熵就是在雜亂無章中尋求一致,這充分說明了Gossip的特點:在一個有界網絡中,每個節點都隨機地與其他節點通信,經過一番雜亂無章的通信,最終所有節點的狀態都會達成一致。每個節點可能知道所有其他節點,也可能僅知道幾個鄰居節點,只要這些節可以通過網絡連通,最終他們的狀態都是一致的,當然這也是疫情傳播的特點。

    要注意到的一點是,即使有的節點因宕機而重啟,有新節點加入,但經過一段時間后,這些節點的狀態也會與其他節點達成一致,也就是說,Gossip天然具有分布式容錯的優點。Gossip是一個帶冗余的容錯算法,更進一步,Gossip是一個最終一致性算法。雖然無法保證在某個時刻所有節點狀態一致,但可以保證在”最終“所有節點一致,“最終”是一個現實中存在,但理論上無法證明的時間點。因為Gossip不要求節點知道所有其他節點,因此又具有去中心化的特點,節點之間完全對等,不需要任何的中心節點。實際上Gossip可以用于眾多能接受“最終一致性”的領域:失敗檢測、路由同步、Pub/Sub、動態負載均衡。

    Gossip假定同步會按照一個固定進度表執行,每個節點定期隨機或是按照某種規則選擇另外一個節點交換數據,消除差異。有三種類型的反熵協議:推(push),拉(pull)和推/拉(push/pull)混合(如圖 2–12所示)。

    l push: A節點將數據(key,value,version)及對應的版本號推送給B節點,B節點更新A中比自己新的數據

    l pull:A僅將數據key,version推送給B,B將本地比A新的數據(Key,value,version)推送給A,A更新本地

    l push/pull:與pull類似,只是多了一步,A再將本地比B新的數據推送給B,B更新本地

     

    圖 2–12三種類型的反熵協議

    如果把兩個節點數據同步一次定義為一個周期,則在一個周期內,push需通信1次,pull需2次,push/pull則需3次,從效果上來講,push/pull最好,理論上一個周期內可以使兩個節點完全一致,push/pull的收斂速度是最快的。假設每個節點通信周期都能選擇(感染)一個新節點,則Gossip算法退化為一個二分查找過程,每個周期構成一個平衡二叉樹,收斂速度為O(N2),對應的時間開銷則為O(log N)。這也是Gossip理論上最優的收斂速度。但在實際情況中最優收斂速度是很難達到的,假設某個節點在第i個周期被感染的概率為pi,第i+1個周期被感染的概率為pi+1,則pull的方式:

    而push為:

    顯然pull的收斂速度大于push,而每個節點在每個周期被感染的概率都是固定的p(0<p<1),因此Gossip算法是基于p的平方收斂,也成為概率收斂,這在眾多的一致性算法中是非常獨特的。

    Gossip算法還需要考慮協調機制,即是討論在每次2個節點通信時,如何交換數據能達到最快的一致性,也即消除兩個節點的不一致性。上面所講的push、pull等是通信方式,協調是在通信方式下的數據交換機制。協調所面臨的最大問題是,因為受限于網絡負載,不可能每次都把一個節點上的數據發送給另外一個節點,也即每個Gossip的消息大小都有上限。在有限的空間上有效率地交換所有的消息是協調要解決的主要問題。

    總結來看,Gossip是一種去中心化、容錯而又最終一致性的絕妙算法,其收斂性不但得到證明還具有指數級的收斂速度。使用Gossip的系統可以很容易的把Server擴展到更多的節點,滿足彈性擴展輕而易舉。唯一的缺點是收斂是最終一致性,不適用那些強一致性的場景。


    曹源

    博士。資深區塊鏈技術專家和網絡安全專家,從事區塊鏈技術研究與應用近10年,對DAG技術有深入研究,基于DAG技術的明星區塊鏈項目InterValue的創始人兼CEO。

    西安電子科技大學區塊鏈應用與評測實驗室副主任、浙江大學計算機學院區塊鏈研究中心特聘研究員、湘江區塊鏈研究院副院長、矩陣數字經濟智庫專家成員。

    此外,他還是北京理工大學機電學院特聘研究員、湘潭大學碩士生導師、湖南宸瀚信息科技有限公司董事長、哈希奈特(北京)科技股份有限公司董事長、四川宸瀚信息科技有限公司董事長、浙江物信科技有限公司董事長。


    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频