Мегаобучалка Главная | О нас | Обратная связь


Отличия сетей Gnutella и Gnutella2.



2020-02-04 310 Обсуждений (0)
Отличия сетей Gnutella и Gnutella2. 0.00 из 5.00 0 оценок




Протокол Gnutella2 был создан в 2003. В соответствии с этим протоколом часть узлов становится концентраторами, остальные же  - обычные узлы(листья). Каждый обычный узел соединен одним или несколькими концентраторами. А сам концентратор соединен с десятками других концентраторов и с множеством листьев. Узлы периодически отправляют концентратору список идентификаторов ключевых слов, по данным спискам осуществляется определение публикуемых данным узлом ресурсов. Эти идентификаторы хранятся в общей таблице на концентраторе. Списки идентификаторов и запросы пересылаются на концентраторы по протоколу UDP.

Одно из отличий Gnutella2 заключается в возможность размножения в сети информации о файле, при этом копирование самого файла не осуществляется. Обе сети имеют много общего и отличаются в основном только форматами пакетов и методом поиска. Формат пакета сети Gnutella2 изначально разрабатывался с возможностью расширения в отличии от формата пакета сети Gnutella, для которого возможность расширения не предусматривалась разработчиками изначально. Для пакетов, передаваемых внутри сети, создан собственный формат, реализующий возможность увеличения функциональности сети в результате добавления дополнительной служебной информации, данный формат похож на XML.

Другое серьёзное отличие одной сети от другой было в алгоритме поиска. Сеть Gnutella 0.4 использовала метод поиска query flooding, а сеть Gnutella2 использует метод обхода сети или метод блужданий.  Ключевая идея метода случайных блужданий (Random Walkers algorithm, RWA) заключается в том, что каждый узел случайным образом пересылает сообщение с запросом, именуемое «посылкой», одному из своих соседних узлов. Чтобы сократить время, необходимое для получения результатов, идея одной «посылки» расширена до «k посылок», где k — число независимых посылок, последовательно запущеных от исходного узла.
Ожидается, что «k посылок» после T шагов достигнет тех же результатов, что и одна посылка за kT шагов. Этот алгоритм напоминает метод RBFS(Метод случайного широкого первичного поиска), но в RBFS предполагается экспоненциальное увеличение пересылаемых сообщений, а в методе случайных блужданий — линейное. Оба метода — и RBFS, и RWA — не используют никаких явных правил, чтобы адресовать поисковый запрос к наиболее релевантному содержанию.
Еще одной методикой, подобной RWA, является адаптивный вероятностный поиск (Adaptive Probabilistic Search, APS). В APS каждый узел развертывает локальный индекс, содержащий значения условных вероятностей для каждого соседа, который может быть выбран для следующего перехода для будущего запроса. Главное отличие от RWA в данном случае — это то, что в APS узел использует обратную связь от предыдущих поисков вместо полностью случайных переходов. Такой способ поиска имеет несколько преимуществ. Он более эффективен, так как продолжение поиска в сети, не увеличивает сетевой трафик экспоненциально. Запросы не направляются через большое количество посредников, и это позволяет клиенту остановить поиск при получении требуемого количества информации. Одновременно повышается сложность созданной сети, поэтому может потребоваться специализированное обслуживание сети.

Также появилось различие в терминологии. Узлы, поддерживающие работу сети в Gnutella, называются Ultrapeer, а в сети Gnutella2 — Hub. Также изменилась топология сети.

Спецификация Gnutella2 состоит из двух основных частей: Gnutella2 Network, в которой описывается архитектура сети, и Gnutella2 Standard, где содержатся требования к приложениям, работающим на базе Gnutella2. Обмен информацией в сети может вестись с помощью двух протоколов - UDP и TCP. Сама сеть будет состоять из двух типов узлов: центральных (hub) и концевых (leaf). Главная роль в организации работы сети принадлежит центральным узлам. Они выбираются из наиболее мощных и наиболее доступных компьютеров, способных выполнять функции обслуживания большого числа запросов.

Принцип работы:

1. При первом запуске клиентской программы(узел — A), пользователь передает в клиент IP-адрес одного из работающих в сети узлов (узел B). Не зная ни одного адреса работающих узлов, пользователь не имеет возможности установить соединение с сетью. Данная информация предоставляется рядом централизованных серверов.

2. Клиент посылает запрос узлу B на подтверждение подключения к сети. Если узел B не активен , то клиент посылает ещё один запрос, иначе узел А также посылает второму узлу Ping-запрос. В котором указывает кроме общей информации, содержится Time To Live(TTL) — число, показывающее, количество переходов, который может совершить данный запрос от узла к узлу. При прохождении узла TTL уменьшается на 1(если TTL больше 0 и при условии что они не получали этот запрос ранее - способ защиты от зацикливания). Далее узел рассылает запрос своим соседям. По умолчанию Time To Live = 7.

3. Все узлы, получившие Ping-запрос, отправляют Pong-ответ, в котором находятся IP-адрес отправителя ответа, номер порта и информация о файлах в фонде обмена. Pong-ответ отправляется тем же путем, что и пришел Ping-запрос. При получении клиентом(узлом А) ответов - составляется список доступных клиенту узлов.

4. При отправлении пользователем поискового запроса – данный запрос рассылается программой по всем узлам из списка, а клиент ждет входящих сообщений. Каждый из узлов - получивший этот запрос, ищет указанный файл в своем фонде.  Если искомый  файл был найден, то узел посылает ответ с информацией о файле и о себе (IP-адрес) источнику запроса. Иначе узел не отвечает. После получения ответов, программа выбирает один узел из всех приславших ответы и устанавливает стандартное HTTP-соединение, после чего происходит загрузка файла. Все сообщения (от Ping-запроса до скачивания файла) посылаются по HTTP, что затрудняет их отслеживание и блокировку.

В качестве базового сетевого протокола Gnutella применяет IP, тогда как коммуникации между узлами определяются протоколом прикладного уровня, поддерживающим четыре типа сообщений:

· Ping – запрос к определенному хосту с целью объявить о себе;

· Pong – ответ на сообщение Ping, содержащий IP-адрес, порт запрошенного хоста, а также количество и размеры разделяемых файлов;

· Query – поисковый запрос. В него входят строка поиска и минимальные скоростные требования к отвечающему хосту;

· Query Hits – ответ на запрос Query, включает IP-адрес, порт и скорость передачи отвечающего хоста, количество найденных файлов и набор их индексов.

Более подробная информация – в спецификация Gnutella.

Архитектура сети.

Gnutella — полностью децентрализованная файлообменная сеть в рамках Интернета, потомок Napster, отличается принципиальным отсутствием центрального сервера. Сеть формируется, когда один пользователь Gnutella соединяется с другим пользователем, после чего они могут обмениваться доступной информацией. Тот пользователь, в свою очередь, соединяются со следующими, в чего результате может получиться сеть с миллиардами узлов.  В основе сети Gnutella лежит понятие универсального терминала или сервента (объединение слов "сервер" и "клиент"). Фактически в системе Gnutella был осуществлен переход от централизованной архитектуры сети Р2Р к полностью распределенной системе, что в большей степени соответствует идеологии сети Р2Р.

В Gnutella, Ultrapeer поддерживают небольшое количество связей с листьями и большое количество связей с другими узлами сети (c ultrapeer и peer). В Gnutella2, наоборот, Hub поддерживает связь с большим количеством листьев, и малое количество связей с другими узлами (hub). Такое различие в топологиях вызвано тем, что различные методы поиска имеют различные оптимальные топологии сети.

Популярные клиенты:

· Shareaza;

· LimeWire;

· Cabos;

· mlDonkey;

 

Сводная таблица №4

  LimeWire Cabos mlDonkey Shareaza
Бесплатный + + + +
Открытые исходные тексты + + + +
Windows + + + +
Linux + - + -
Mac OS X + + + -
Русский язык интерфейса - - - +
Шифрование соединений - - - -
Веб-интерфейс - - - +
Предварительный просмотр загружаемого медиа - - - -
Ограничение скорости передачи данных + - + -
Поддержка приоритетов - + + +
Наличие чата + - + +
IRC-клиент - - - +
Планировщик - - + +
Автоматическое обновление продукта + - - -
Наличие встроенного аудиоплеера + - - -


2020-02-04 310 Обсуждений (0)
Отличия сетей Gnutella и Gnutella2. 0.00 из 5.00 0 оценок









Обсуждение в статье: Отличия сетей Gnutella и Gnutella2.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (310)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)