解決方案
去中心化的對等網路沒有索引可供查詢誰持有某個檔案。對整個網路進行 flooding 代價過高;而中央 tracker 又違背了初衷。
2002 年提出的 Kademlia 將距離定義為 160 位元 ID 的位元 XOR。由於 XOR 是其自身的反運算且具對稱性,節點的路由表會依其他 ID 有多少前導位元不同來分桶,每個桶大約保留一個聯絡點。
為了尋找某個對等節點,節點會向已知最接近目標的節點查詢,而每次回覆都會帶來一個更接近的節點,因此搜尋距離每輪減半——大約 log n 跳。此系統具自我修復能力,因為對等節點在回應時會學習並透過 gossip 傳播資訊。
達成了什麼
把 XOR 稱為距離;每個對等節點都與某個節點相近
為何有效
XOR 距離具對稱性,且節點在每個位元層級都與某個聯絡點相近。
路由表保持極小,而觸及範圍卻是全球性的,因此沒有節點認識所有人。
每一跳都使距離減半,形成 O(log n) 的搜尋且無需目錄。
查詢與插入會讓節點認識對等節點,因此網路能自我修復。
可應用之處
在沒有目錄的網路中,選擇一種度量,並讓每個節點在每個距離桶中保留一個聯絡點。如此一來,每個節點都能透過已知最近的鄰居觸及任何其他節點,無需全域清單。
後續影響
Kademlia 成為 BitTorrent 的 DHT、Ethereum 以及許多檔案分享網路的查詢協定。它是在大型對等系統中無需協調者進行路由的標準答案。
追溯依據
參考來源
- Kademlia: A peer-to-peer information system based on the XOR metric IPTPS 2002, Springer · pdos.csail.mit.edu
- Kademlia Wikipedia · en.wikipedia.org