跳轉到內容

P2P 世界:從計算機科學角度看什麼是 P2P

來自華夏公益教科書

從計算機科學角度看

[編輯 | 編輯原始碼]

從技術上來說,真正的點對點應用程式必須僅實現對等協議,這些協議不識別“伺服器”和“客戶端”的概念。這種對等應用程式和網路很少見。大多數被稱為點對點的網路和應用程式實際上包含或依賴於某些非對等元素,例如 DNS。此外,現實世界中的應用程式通常使用多種協議,並且同時或隨著時間的推移充當客戶端、伺服器和對等體。

從計算機科學的角度來看,P2P 為研究創造了新的有趣領域,這些領域不僅集中在網路元件的角色的最新轉變上,而且還集中在它帶來的不可預見的好處和資源最佳化,以及網路效率和穩定性上。

點對點系統和應用程式引起了計算機科學研究的極大關注;一些著名的研究專案包括 Chord 查詢服務、PAST 儲存實用程式和 CoopNet 內容分發系統(有關這些專案的外部連結,請參見下方)。

同樣重要的是要注意,計算機主要是一種資訊裝置,其主要功能是從一個位置複製資料到另一個位置,甚至比執行其他型別的計算更重要。這使得數字複製成為任何計算機正常功能的內在部分,不可能用任何型別的複製保護來實現通用開放計算的目標。在數字時代,版權的執行不應被視為技術問題,而應被視為社會需要適應的新現實。

分散式系統

[編輯 | 編輯原始碼]

分散式系統正在成為 IT 公司資料中心計算的關鍵組成部分。這些系統的通用示例是 Google 基礎設施 或任何類似系統。如今,這些系統的大部分發展都集中在如何分析和改進效能上。P2P 系統也是分散式系統,並且根據實現的不同,共享分散式系統的特性和問題(錯誤/故障檢測、對齊機器時間等)。

Ganglia 是一種可擴充套件的分散式監控系統,適用於高效能計算系統,例如叢集和網格。它基於針對叢集聯合體的分層設計。它利用了廣泛使用的技術,例如 XML 用於資料表示,XDR 用於緊湊的、可移植的資料傳輸,以及 RRDtool 用於資料儲存和視覺化。它使用精心設計的資料結構和演算法來實現非常低的每個節點開銷和高併發性。
Ganglia 已移植到大量作業系統和處理器體系結構,目前正在全球數千個叢集中使用。它已用於將跨大學校園和全球的叢集連結起來,並且可以擴充套件到處理包含 2000 個節點的叢集。( http://ganglia.info/ )

分散式計算

[編輯 | 編輯原始碼]

分散式計算背後的基本前提是在空間上分佈的多臺機器之間傳播計算任務,大多數新專案專注於利用“個人”分散式機器(普通家用 PC)的閒置處理能力。這種當前趨勢是一個令人振奮的技術領域,它與分散式系統(客戶端/伺服器通訊、協議、伺服器設計、資料庫和測試)的子集有關。

這種對舊概念的新實現源於人們認識到,現在我們的家中存在著數量驚人的計算機,這些計算機利用率極低,不僅是家用計算機,而且還有一些企業在一天的 24 小時內都沒有充分利用其計算機。事實上,看似活躍的計算機可能只使用了其一小部分的處理能力。使用文字處理、電子郵件和網頁瀏覽需要非常少的 CPU 資源。因此,“新”概念是利用這種未被充分利用的資源(CPU 週期),這種資源可以以低得多的成本超越多個超級計算機,因為機器是由公眾個人擁有和操作的。

SETI@Home

[編輯 | 編輯原始碼]

最著名的 分散式計算 專案之一,由位於美國加利福尼亞州伯克利 加州大學伯克利分校空間科學實驗室 託管。SETI搜尋地外文明計劃 的縮寫。 SETI@home 於 1999 年 5 月 17 日釋出。

平均而言,它使用數十萬臺連線到網際網路的家用計算機來搜尋地外文明。這些程式的重點是執行你的空閒 CPU 週期,這些週期在其他情況下會處於閒置狀態,原始專案現在已棄用,並將被納入 BOIC

BOINC 由加利福尼亞州伯克利 加州大學伯克利分校 空間科學實驗室 的一個團隊開發,該團隊由 大衛·安德森 領導,他也領導著 SETI@home。

Boinc 代表伯克利開放式網路計算基礎設施,這是一個非商業性的 (免費/開源軟體),在 LGPL 下發布的 中介軟體 系統,最初是為了支援 SETI@home 專案而開發,並且仍在 ( http://boinc.berkeley.edu/ ) 託管,但旨在對數學、醫學、分子生物學、氣候學和天體物理學等各個領域的其他應用程式有用。這是一個用於使用志願者資源進行計算的開源軟體平臺,它擴充套件了原始概念,並允許你將計算能力捐贈給其他科學研究專案,例如

  • Climateprediction.net:研究氣候變化。
  • Einstein@home:搜尋脈衝星發出的引力訊號。
  • LHC@home:改進歐洲核子研究組織大型強子對撞機粒子加速器的設計。
  • Predictor@home:調查與蛋白質相關的疾病。
  • Rosetta@home:幫助研究人員開發治療人類疾病的方法。
  • SETI@home:尋找地外生命存在的無線電證據。
  • Folding@Home ( http://www.stanford.edu/group/pandegroup/folding/ ):瞭解蛋白質摺疊、錯誤摺疊和相關疾病。
  • 細胞計算生物醫學研究。(日語;需要非標準的客戶端軟體)
  • 世界社群網格:推進我們對人類疾病的瞭解。(需要 5.2.1 或更高版本)

作為一種“準超級計算”平臺,BOINC 在全球擁有超過 435,000 臺活動計算機(主機)。BOINC 由 美國國家科學基金會 透過 SCI/0221529、SCI/0438443 和 SCI/0506411 撥款資助。

它也用於商業用途,因為一些私營公司開始使用該平臺來協助自己的研究。該框架支援各種作業系統:Windows (XP/2K/2003/NT/98/ME)、Unix (GNU/LinuxFreeBSD) 和 Mac OS X

世界社群網格 (WCG)

[編輯 | 編輯原始碼]

世界社群網格(World Community Grid,http://www.worldcommunitygrid.org/)由IBM建立,與上述系統類似。十四臺IBM伺服器作為WCG的“指揮中心”。當他們從某個組織收到一項研究任務時,他們會檢查其安全漏洞,將其解析為資料單元,對其進行加密,將其透過排程器執行,然後將其以三份副本傳送給志願者PC大軍。

要成為志願者,只需要下載一個免費的小型軟體代理(類似於螢幕保護程式)。

專案的選擇基於從WCG技術中獲益的潛力以及解決人道主義問題的潛力,由獨立的外部慈善家、科學家和官員委員會選擇。

該軟體是開源的(LGPL),C/C++和wxWidgets,適用於Windows、Mac或Linux。

網格網路

[編輯 | 編輯原始碼]

網格最初出現在美國超級計算機的使用中,當時科學家和工程師尋求訪問集中在少數幾個地點的稀缺的高效能計算資源。

開放科學網格
[編輯 | 編輯原始碼]

開放科學網格(Open Science Grid,http://www.opensciencegrid.org/)由OSG聯盟建立和運營,它是一個美國網格計算基礎設施,透過大學和國家實驗室的科學研究人員和軟體開發人員、儲存和網路提供商之間的開放合作,支援科學計算。

Globus聯盟
[編輯 | 編輯原始碼]

Globus聯盟(http://www.globus.org/)是一個組織和個人組成的社群,他們開發“網格”背後的基礎技術,該技術使人們能夠安全地跨越企業、機構和地理邊界共享計算能力、資料庫、儀器和其他線上工具,而不會犧牲本地自治權。

Globus聯盟還提供Globus工具包,這是一個開源軟體工具包,用於構建健壯、安全、網格系統(超級計算機、叢集和其他高效能系統上的點對點分散式計算)和應用程式。Globus開發人員社群可以使用Wiki(http://dev.globus.org/wiki/Welcome)。

高吞吐量計算(HTC)

[編輯 | 編輯原始碼]

一些科學家試圖從他們的計算環境中提取更多每秒浮點運算(FLOPS)或每分鐘,而另一些科學家則專注於在更長時間尺度(如幾個月或幾年)上實現相同的目標,我們稱這些環境為高效能計算(HPC)環境。

HTC這個術語是在1996年7月在NASA戈達德太空飛行中心的研討會上提出的,作為高效能計算(HPC)和高吞吐量計算(HTC)之間的區別。

HTC關注的是處理能力而不是網路,但這些系統也可以在網路上建立,因此可以被視為針對處理能力最佳化的網格網路。

Condor專案
[編輯 | 編輯原始碼]

Condor專案(http://www.cs.wisc.edu/condor/)的目標是在大型分散式擁有計算資源集合上開發、實施、部署和評估支援高吞吐量計算(HTC)的機制和策略。在受到這種計算環境的技術和社會挑戰的雙重驅動下,Condor團隊一直在構建軟體工具,使科學家和工程師能夠提高他們的計算吞吐量。

IBM網格計算

[編輯 | 編輯原始碼]

IBM與IT領域其他巨頭一樣,投入了一些資源來研究網格計算。他們在網格計算方面的嘗試列在專案門戶頁面(http://www.ibm.com/grid)上。所有這些似乎都試圖利用伺服器機器上的企業優勢來為客戶提供網格服務。最活躍的專案是網格醫療檔案解決方案,這是一個可擴充套件的虛擬儲存解決方案,面向醫療保健、研究和製藥客戶。

內容分發/託管

[編輯 | 編輯原始碼]

分發大型檔案的傳統方法是將它們放在中央伺服器上。伺服器和客戶端可以使用預先約定的協議(從HTTP、FTP到無數的變體)在網路上共享內容,當使用IP連線時,資料可以透過TCP或UDP連線傳送,或者兩者兼而有之,這主要取決於對服務、機器、網路和許多安全考慮因素的要求。

關於速度、可用性和服務一致性方面的最佳化優勢,以及最佳本地化的最佳化優勢,都是不言而喻的。Akamai TechnologiesLimelight Networks等類似解決方案試圖以商業方式解決這個問題,甚至Google也將其資料中心的地理位置分散開來,以加快其服務的響應速度。這解決了大型內容和服務分發方面的需求,但沒有完全實現控制結構的去中心化。

P2P的出現是為了解決一個明顯的問題,即中央伺服器無法很好地擴充套件。頻寬、空間和CPU構成了一個故障點,很容易導致系統的功能結束,就像任何服務的集中化一樣。

注意
關於集中化存在問題的一個簡單示例是拒絕服務攻擊,它通常包括一臺或多臺機器試圖透過過載伺服器來暫時或永久地中斷或暫停連線到網際網路的伺服器的服務。

會議和論文

[編輯 | 編輯原始碼]

P2P尚未成為一個成熟的研究領域,甚至不是一個特定的計算機科學領域。P2P技術涵蓋了太多主題,以至於很難將所有互動都限制在自身領域。因此,許多相關資訊很難找到。

會議

對於會議,其中一個提供非商業化和平臺無關觀點的更新資訊的地方是GNUnet專案https://gnunet.org/conferences上提供的列表。


Clipboard

待辦事項
建立年度會議列表


論文
Clipboard

待辦事項
關於P2P的免費訪問論文的位置

華夏公益教科書