Что означает "сложный" в "сложных запросах" о неструктурированных наложениях для архитектуры P2P?

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

1 ответ

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам