p2p симуляция и распределенная хеш-таблица - PullRequest
1 голос
/ 25 апреля 2011

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

  1. Создайте одноранговую программу, способную присоединиться к p2p «сети». В сети есть коллекция таких пиров. Пир идентифицируется через идентификатор процесса в машине.

  2. Когда создается одноранговый узел, т. Е. Присоединяется к сети, он объявляет о своем прибытии через самозагрузку себя на «мастер-узел» или трекер. Когда одноранговый узел объявляет о своем прибытии, главный узел обновляет свой список одноранговых узлов (идентификаторы процессов) и возвращает список одноранговых узлов, доступных в сети, новому узлу.

  3. Оказавшись в сети, партнер может теперь загрузить файл из сети или загрузить файл во входящий запрос на файл, который у него есть. Файлы, которые одноранговый узел получает через сеть, автоматически становятся доступными для загрузки.

  4. Для загрузки файла одноранговый узел вызывает алгоритм определения местоположения, который находит одноранговый узел с файлом, который текущий узел пытается загрузить.

Как видите, в моем понимании дизайна есть пробел. Исходя из моего наивного подхода, я вижу № 2 и № 3 как разные шаги. Однако у меня есть ощущение, что они должны как-то быть связаны. Я предполагаю, что моему пониманию не хватает знания того, как работает распределенная хеш-таблица и алгоритм, такой как Chord или CAN. Мне нужна помощь в обобщении этих разбросанных идей, которые помогут мне на самом деле реализовать симуляцию.

Для начала мой первый вопрос: где и как мне запустить алгоритм определения местоположения? Или где распределенная хеш-таблица создается на шагах, перечисленных выше?

1 Ответ

2 голосов
/ 25 апреля 2011

У вас есть выбор: внедрить сервер трекера в стиле Napster.Или вы можете реализовать DHT-совместимые узлы - стиль Bit torrent.

В первом случае трекер отслеживает все узлы и файлы, которые они размещают.

А во втором каждый узел отслеживает информацию (по крайней мере, один узел всеть предполагается в этом случае).Затем новый одноранговый узел свяжется с одним из поддерживающих DHT одноранговых узлов и получит информацию об узле, на котором размещен требуемый файл.

...