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) могут лишь запрашивать последние. Введена также система кеширующих узлов.

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

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

Клиенты[править | править вики-текст]

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

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

Реакция со стороны FSF[править | править вики-текст]

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

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

Ссылки[править | править вики-текст]