熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

P2P (Peer-to-peer technology) 介紹

2013-11-23 19:51:20  來源: Java高級技術 

  什麼是PP?很難有一個確切的解釋也許是由於有著不同的觀點或理解
  BW(JXTA book的作者)給出這樣一個定義PP使得任何網絡設備可以為其他網絡設備提供服務(Peertopeer technology enable any networkaware device to provide services to another networkaware device)
  我個人的理解是PP網絡是一個網絡中的所有節點(設備)的角色行為責任和義務都是平等的(對等的)
  
  看一下我們現今的網絡結構
  大多數情況下我們使用一種稱之為客戶機/服務器(Client/Server簡稱C/S)的網絡模式比如流行的WWW各種網絡游戲等它們的共同特點是
  
  都需要有一個中央服務器來處理絕大部分的運算工作
  
  客戶端和服務段處在完全不同的角色中客戶端更被動通常是發送一個請求而服務端處在一個支配的地位獲取這個請求進行計算然後返回一個結果來相應這個請求
  
  即便如Email這種看上去比較不同的網絡應用也對Client和Server有著明顯得分工
  
  這類網絡應用模型有著一個明顯的缺點就是隨著服務的客戶數目的增多服務端所需要占用的資源也隨之增加顯而易見最終制約了client的數目的增長
  (這種集中式的模型似乎違背了Internet的初衷the ARPANET)
  並且我們需要許多隱藏在Internet深處的服務的支持才能獲取我們需要的服務如DNS如路由這也就是為什麼即便每台機器都開設一個web server也無法被全部被訪問到(由於IP地址的限制不可能每台機器都有一個靜態的IP或是由於內部網絡的原因也許即便你有一個靜態不變的內部地址也可能沒有一個路由到達你的機器或是訪問被防火牆過濾
  並且由於現在的Internet過分的依賴於DNS和網關只要其中有一個服務出了問題相應的其他任何服務就都無法獲得
  
  Edge of Internet
  另一個有趣的現象是由於剛才所說的DNS和路由的限制可能有數以億計的連在Internet上的計算機無法被其他機器訪問這些計算機組成了所謂的Edge of Internet(它們屬於Internet的一部分卻不被整個Internet認可就像處在社會邊緣一般充滿著矛盾和孤寂)我們來做個計算
  假設同時只有千萬台MHz的計算機連接在網絡上(事實上遠不只這些)每台可以提供兆的空余空間bps的空余帶寬和%的空余CPU時間因此這些機器總共提供了PB(^bytes)的存儲空間億bps的帶寬(大約是GBps)和萬MHz的計算能力!這是多麼可觀的數字如果都能加以利用或是只是開發其中的一部分……
  
  Google的麻煩
  我們通常使用的Google就是一個著名的集中式網絡服務的例子Google中檢索的信息依賴著一個巨大的數據庫(大於 billion即便如此Google所保存的數據也只占整個Internet的很小一部分幾個數量級的差別)這個數據庫必須每天更新以保證信息的即時性即便如此Google便利一遍整個Internet也需要十幾天的時間如何能更好的提供搜索服務是很多現今的搜索引擎始終沒有辦法解決的問題除此之外Google還有很多麻煩
  
  Google的服務是建立在一個龐大數目的Linux集群上的(超過台)維護這麼龐大的一群主機就夠受的了
  
  一旦Google發生了故障所有的服務就都玩完了不要說Google發生故障如果DNS路由等除了或者或那的問題……
  
  由於Internet中數據的數量龐大且種類多樣Google不僅無法提供一個精確的索引也無法提供一個完整的索引
  
  Google只能看到靜態的數據它無法訪問到處在數據庫裡的數據
  
  PP的承諾(宣言)
  提供一個真正的完全平等自由的互聯網
  使用很少的資源消耗而提供高可靠性的服務
  
  這似乎非常抽象事實上連我自己也不太清楚我在說些什麼舉個例子先
  音樂愛好者kert想在Internet上找一首歌Sex PistolMy way通常他使用Google來搜索相關的關鍵字Sex Pistol +My way由於只是簡單的依賴關鍵字匹配的方式Google通常會返回幾百或是幾千條匹配的記錄當然包括不相關的那些(絕大多數尤其是當你的關鍵字中出現諸如Sex之類的詞匯)作為一個音樂愛好者kert通常會耐著性子在這幾千條記錄中仔細尋找(頭暈)有時找到一個可能性極大的鏈接卻因為鏈接失效而傷心想象一下Google已經是世界上最好的搜索引擎之一了
  如果換成一個PP網絡應用又會如何?PP網絡會將kert的搜索請求發送給每一個連接在網絡上的節點(peer)每個節點會在自己所管理的資源中查找是否含有匹配的對象然後對kert的請求做出回答和那種集中式的搜索服務相比將相應交給每一個節點的好處是顯而易見的
  
  由於響應由節點即時完成而不是像集中式的服務那樣將在可能已經過期的數據中尋求答案這種方式更准確不會出現讓人沮喪的過期連接另外由於是由節點自由處理請求而非傳統的在靜態網頁中尋找答案精確程度更高
  
  請求分布到了Internet的每個角落信息更完整當然得到結果的可能性就越大
  
  請求分布到了Internet的每個角落不需要大量的主機群不會有網絡阻塞
  
  kert很肯定這個世界上有與他愛好相同的fans因此他信心十足
  
  剛才我們提到一個請求會發送至PP網絡中的每個節點這似乎很不可思議但是事實上(至少在理論上)這是PP網絡的特性之一因此在PP網絡中你所享受的服務的是一個由成千上萬台計算機組成的cluster提供的多麼神奇而令人興奮!
  即便是最基本的路由服務也是有所有節點共同提供的因此不在會有因為某個結點的故障或是人為原因而造成的無法鏈接的現象了你面對的是一個友善自由平等的群體而非強權(路由)和專制(DNS)
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27568.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.