Что означает «сложный» в «сложных запросах» о неструктурированных наложениях для архитектуры P2P? - PullRequest
0 голосов
/ 07 ноября 2010

Что касается P2P, я знаю, что структурированные оверлеи хороши для запросов с точным соответствием. И я читал, что неструктурированные оверлеи хороши в сложных запросах. Я не понял, что здесь подразумевается под «сложным», в каком смысле или логике?

1 Ответ

1 голос
/ 24 ноября 2010

Убедитесь, что вы понимаете, что такое «структурированные наложения».Структурированные p2p-сети на самом деле представляют собой распределенные хеш-таблицы, которые работают с парами KEY / VALUE (например, простая хеш-таблица).

Я попытаюсь сделать это намного проще, допустим, вы подключены к сети p2p, и вынравится, чтобы скачать новую песню.Сначала вы должны найти ресурсы, как вы это делаете?

В структурированных p2p-сетях (DHT) вам нужно взять имя файла и создать ключ, передав его через функцию хеширования / контрольной суммы - Теперь вы получилиключом, следующим шагом является поиск узла, который хранит этот ключ => сеть организована, процесс маршрутизации основан на ключе.

Вы видите проблему здесь?

Эти ключиуникальны, это означает, что вам нужен ключ EXACT для того, чтобы связаться с партнером, который хранит необходимую информацию.Например, это затрудняет поиск по ключевым словам.

"New_song.mp3" и "new_song.mp3" будут выдавать совершенно разные ключи.

Тогда, если кто-то в сети поделится файлом -«New_song.mp3», вы не найдете его, выполнив поиск «new_song.mp3».

В неструктурированном одноранговом узле просто заполняйте сеть поисковым запросом - это не основанная на ключах маршрутизация, которая делает ее намного прощеобрабатывать такие поисковые запросы.

Чтобы решить эту «проблему», мы можем опубликовать множество ключей вариаций имени файла.

(строчные, прописные, без пробелов / расширений и т. д.)

Вот как сеть Kademlia решает эту проблему.

...