Таблица маршрутизации Kademlia и метрика расстояния

Сегодня я впервые читаю о Кадемлии, и в некоторых моментах я не думаю, что понял их правильно.

Расстояние между узлами и ключами - это xor их значений.

Итак, если у меня есть ключ x и узел y, расстояние между ними равно x x или y.

Но зачем сгруппировать известные мне узлы и упорядочить их по длине префикса? Кажется, это не связано напрямую с xor идентификаторов узлов, чтобы найти ближайшие ко мне узлы?

Когда я получаю запрос значения, я ищу в узлах в ближайших к мне сегментах, то есть в узлах, которые имеют самый большой общий префикс со мной, то есть первые несколько сегментов из 160 сегментов?

или вместо этого я проверяю все узлы, о которых я знаю, во всех бакетах, и я вычисляю xor между ключом, который я ищу, и этими идентификаторами узлов, а затем отправляю свой запрос в верхние k совпадений на основе результатов xoring с идентификатором ключа ?

Извините, я немного новичок в DHT, и объяснения в Интернете были немного непонятными.


person xander    schedule 21.11.2012    source источник


Ответы (1)


Думаю, я понял. Общий префикс того же ведра действительно напрямую связан со значениями xor, поэтому он действительно их сортирует. Я нашел эти слайды очень полезными: http://heim.ifi.uio.no/michawe/teaching/p2p-ws08/p2p-5-6.pdf

person xander    schedule 21.11.2012
comment
Спасибо, что держали нас в курсе. :-) Действительно, чем меньше расстояние, тем длиннее общий префикс. Это означает, что если вы XOR два значения, они очень близки, если результат имеет много нулей в начале ;-) - person Peter Wippermann; 27.11.2012