Русская Википедия:Gnutella

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Стиль статьи Шаблон:Карточка программы

Gnutella — полностью децентрализованная файлообменная сеть в рамках Интернета, потомок Napster, отличается принципиальным отсутствием центрального сервера. Сеть формируется, когда один пользователь Gnutella соединяется с другим пользователем, после чего они могут обмениваться доступной информацией. Обмениваться можно файлами любых форматов, есть множество удобных функций. В результате полной децентрализации сеть практически невозможно уничтожить, так как для этого потребуется вывести из строя каждый узел сети.

История появления сети Gnutella

Первый клиент сети Gnutella был разработан Джастином Франкелем и Томом Пеппером из Nullsoft в начале 2000 года, вскоре после приобретения их компанией AOL. 14 марта программа была доступна для скачивания на серверах в Nullsoft. Первая версия программы давала возможность пользователю искать и обмениваться всеми видами файлов с другими владельцами Gnutella без участия каких-либо серверов. Это событие было заранее анонсировано на Slashdot и в этот день программу скачали тысячи людей[1][2]. Исходный код должен был быть выпущен позже, в соответствии с GNU General Public License (GPL).

На следующий день AOL остановила распространение программы по правовым вопросам и отстранила Nullsoft от выполнения любой дальнейшей работы над проектом (официально AOL назвала Gnutella как «unauthorized freelance project» и открестились от него), после чего разработчики Gnutella, во главе с Джастином Френкелем, уволились. Но это не помешало распространению Gnutella, через несколько дней протокол был подвергнут реверс-инжинирингу и начали появляться свободные и открытые клоны. Этот изначальный процесс параллельного развития различных клиентов различными группами продолжается и сегодня.

Механизм работы

При подключении клиент получает от узла, с которым ему удалось соединиться, список из пяти активных узлов; им отсылается запрос на поиск ресурса по ключевому слову. Узлы ищут у себя соответствующие запросу ресурсы и, если не находят их, пересылают запрос активным узлам вверх по «дереву» (топология сети имеет структуру графа типа «дерево»), пока не найдётся ресурс или не будет превышено максимальное число шагов. Такой поиск называется размножением запросов (query flooding).

Понятно, что подобная реализация ведёт к экспоненциальному росту числа запросов и соответственно на верхних уровнях «дерева» может привести к отказу в обслуживании, что и наблюдалось неоднократно на практике. Разработчики усовершенствовали алгоритм, ввели правила, в соответствии с которыми запросы могут пересылать вверх по «дереву» только определённые узлы — так называемые выделенные (ultrapeers), остальные узлы (leaves) могут лишь запрашивать последние. Введена также система кеширующих узлов.

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

Клиенты

На 2007 год Gnutella являлась одной из наиболее популярных файлообменных сетей[3]. Работа сети Gnutella непрерывно совершенствуется благодаря усилиям разработчиков множества клиентов сети:

Специализированные
Мультисетевые

Реакция со стороны FSF

Название Gnutella первоначально было игрой слов GNU, так как разработчики планировали выпустить исходный код под лицензией GNU GPL, и Nutella — марки любимой ореховой пасты этих разработчиков. Однако, ни самая первая программа, ни соответствующие современные проекты не являются официальным проектом GNU, включая использующие протокол Gnutella gtk-gnutella, mutella и gnucleus. В рамках проекта GNU развивается собственная программа для одноранговых сетей - GNUnet[4]. Кроме того, Фонд свободного программного обеспечения сосредоточен на свободе копирования и изменения программного обеспечения, в то время как Gnutella — это, прежде всего, сеть обмена музыкальными файлами. И хотя существует некоторое сходство в вопросах этики копирования программного обеспечения и музыкальных записей, FSF попросила разработчиков Gnutella изменить название программы для избежания путаницы[4].

См. также

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Rq

Шаблон:Анонимные сети Шаблон:IPstack

  1. Gnutella announcement Шаблон:Wayback March 14, 2000 on Slashdot
  2. AOL and Gnutella Шаблон:Wayback March 15, 2000 by CNN
  3. По данным на сентябрь 2007 года, сеть Gnutella является самой популярной — она используется на 40,5 % компьютеров, подключённых к p2p-сетям, и её популярность продолжает увеличиваться. [1] Шаблон:Wayback
  4. 4,0 4,1 Шаблон:Cite web