分散式與網路作業系統

點對點模型(peer-to-peer model)

想像一個沒有中央圖書館的社區換書活動。如果你想要一本書,你就在鄰居間打聽;誰有就借你;而你也回過頭把自己的書借給別人。每個人同時既是借書者也是出借者。點對點模型把分散式系統正好組織成這個樣子:沒有特殊的伺服器,也沒有特殊的客戶端。每個節點(稱為一個 peer,對等點)都是平等的,同時既當客戶端(開口要東西)也當伺服器(提供東西)。

實務上,對等點彼此尋找、直接分享資源,不必把一切都擠過某一台中央機器。要查找某樣東西,一個對等點可能去問它認識的鄰居,鄰居再去問它們的鄰居,直到請求傳到持有那份資料的人手上。許多設計採用一套結構化的方案,讓一個對等點能在 n 個對等點之中、用大約 O(log n) 跳就定位到資料,而不必去問所有人。因為工作與資料都分散在這些對等點本身,系統只要加入更多對等點就能成長——每個新加入的對等點都帶來自己的容量。

為什麼重要,以及取捨:點對點移除了中央瓶頸與單一故障點,因此能夠擴展得非常龐大,也能在個別節點離開時仍存活(檔案分享網路與許多區塊鏈就是這樣運作的)。誠實的代價是:少了中央權威,每件事都變得更難:沒有一個地方握有唯一的真相,於是「找資料、維持副本一致、對任何事達成共識、阻止惡意參與者」全都變成真正困難的協調問題。你是拿中央伺服器的簡單,去換取韌性與規模。

在一個點對點檔案分享網路裡,你下載的一部電影並不是來自某一台大伺服器——它是一塊一塊地,從數十台「已經有部分內容」的其他一般電腦傳來,與此同時你的電腦也把一塊塊上傳給別人。沒有任何單一機器在主導,而且即使個別對等點來來去去,網路仍持續運作。

每個節點同時是客戶端也是伺服器。沒有中心可成為瓶頸,但協調更難。

點對點並非天生就「比較好」過主從式。它以「資料查找、一致性、信任都難得多」為代價,換來了可擴展性與容錯。許多真實系統是混合式的(用對等點做大量傳輸,再用一台小型中央伺服器做協調)。

又稱
P2P點對點架構對等網路