2012-11-21 53 views
5

這是我第一次讀到Kademlia今天,有些觀點我認爲我沒有把它們弄對。Kademlia路由表和距離度量

節點和鍵之間的距離是它們值的xor。

所以,如果我有密鑰x和節點y,它們之間的距離是x xor y。

但爲什麼要挖掘我所瞭解的節點並按前綴長度對它們進行排序?這似乎沒有直接連接到節點ID的異或以找到最接近我的節點?

當我得到一個值的請求時,我在最近的桶中搜索節點給我,也就是那些與我有最大共享前綴的節點,即160個桶中的前幾個桶?

或者我會在所有桶中檢查所有我知道的節點,然後計算我正在查找的密鑰和這些節點ID之間的異或,然後根據xoring結果將我的請求發送給前k個匹配與密鑰ID?

對不起,我對DHT有點新,發現網上的解釋有點不太清楚。

回答

9

我想我明白了。常見的前綴相同的桶事情確實與xor值直接相關,所以它確實對它們進行排序。我發現這些幻燈片很有幫助:http://heim.ifi.uio.no/michawe/teaching/p2p-ws08/p2p-5-6.pdf

+0

感謝讓我們保持循環。 :-)事實上,距離越小,常用前綴越長。這意味着,如果你XOR兩個值非常接近,如果結果在開始時有很多零;-) –