Интернет магазин китайских планшетных компьютеров



Компьютеры - Gnutella - Механизм работы

04 мая 2011


Оглавление:
1. Gnutella
2. Механизм работы
3. Клиенты



  1. Пользователь загружает программу.
  2. При первом запуске программы, пользователь сообщает клиенту IP-адрес одного из функционирующих узлов. Данная процедура может и не повторяться в будущем, но при первом запуске она обязательна. Это один из самых «скользких» моментов в реализации данной сети: без адреса хотя бы одного из работающих в данный момент узла пользователь не сможет подключиться. В принципе, существует целый ряд централизованных серверов, предоставляющих подобную информацию, но такая схема уже приводит к некой централизованности.
  3. Программа посылает запрос узлу B на предмет подтверждения активности.
  4. Узел В подтверждает свою активность, если нет — см. шаг 2.
  5. Узел А посылает узлу В так называемый Ping-запрос. В этом запросе указывается, помимо прочей информации, TTL — число, означающее, сколько переходов от узла к узлу данный запрос может совершить. Обычно TTL равняется 7.
  6. Другие узлы, получив Ping-запрос, посылают Pong-ответ, в котором содержится IP-адрес отправителя, номер порта и минимальная информация о файлах в фонде обмена.
  7. Кроме того, узлы, получившие Ping-запрос, уменьшают TTL данного запроса на единицу, и если TTL больше 0, а также если данный запрос они не получали ранее, рассылают его своим соседям.
  8. Каждый узел, получивший Ping-запрос, отсылает Pong-ответ, тем же путем, которым этот запрос получил.
  9. Когда Pong-ответы доходят до своего источника, программа составляет список доступных узлов. Как правило, этот список насчитывает от 2 до 10 тысяч узлов и от 500 тысяч до миллиона файлов в обменном фонде.
  10. Пользователь вводит запрос. Программа рассылает запрос на поиск файла всем узлам в списке, а далее просто ждет входящих сообщений.
  11. Каждый узел, получивший запрос на поиск, ищет в своем фонде указанный файл. Если файл не найден, то узел просто не отвечает.
  12. Если файл найден, узел отсылает инициатору запроса ответ с информацией о файле и о себе.
  13. Получив ряд ответов, программа выбирает один из узлов, устанавливает с ним стандартное HTTP-соединение и загружает файл. При этом все сообщения посылаются по HTTP, что затрудняет их отслеживание и блокировку.

Некоторые клиенты Gnutella работают в соответствии с приведенным алгоритмом, а некоторые нет. Связано это с тем, что Gnutella — это, прежде всего, протокол взаимодействия узлов, и в нем не определены некоторые из аспектов этого взаимодействия.

Поиск в Gnutella построен на децентрализованной технологии gPulp.



Просмотров: 2626


<<< Суперсид
Энтропия (сеть) >>>