В то время как Napster, ограниченный судом, пытается избежать закрытия, в сети продолжают функционировать другие p2p-сети для поиска и обмена файлами. Одной из таких является Gnutella. Ее основное преимущество — децентрализованная архитектура, которая практически исключает возможность блокировок.
12 февраля текущего года Апелляционный суд Северного округа Калифорнии постановил прекратить работу известного сервиса Napster. Сейчас компания предпринимает решительные шаги для сохранения своей деятельности, несмотря на низкую вероятность успеха, полностью её исключать нельзя. В случае продолжения работы Napster, это произойдет в изменённом формате.
Стоит подчеркнуть, что даже при закрытии Napster сама технология не исчезнет. Она основана на центральном сервере, что облегчает его блокирование, однако исходный код и программа OpenNap доступны в открытом доступе, позволяя создать множество похожих серверов. Их базы данных более скромные, а единого протокола для объединения данных структур не существует, но они продолжают функционировать.
С момента появления Napster появилось новое понятие — Gnutella, которое определяет технологию peer-to-peer (или, как объясняет Роман Лейбов, «человек-человек»). Этот термин обозначает протокол, лежащий в основе первой распределённой системы поиска файлов. Такая система не использует центральный сервер: каждый экземпляр приложения одновременно выступает и клиентом, и сервером.
Создание Gnutella происходило в необычных условиях. Компания Nullsoft, известная благодаря WinAmp, была куплена корпорацией AOL, однако разработка протокола велась без её ведома. После появления программы в сети руководство AOL потребовало её удаления, но было уже поздно — система распространилась. Это случилось в марте 2000 года, вызвав многочисленные слухи о системе, способной превзойти Napster.
С учётом юридических проблем Napster, Gnutella стала рассматриваться как возможная альтернатива. Тем не менее, после четырёх месяцев активного развития интерес начал снижаться. Через месяц из-за растущей нагрузки платформа не справлялась — скорость поиска и загрузок упала, что ослабило приток новых пользователей.
К концу года появились методы улучшения ситуации, стимулировавшие дальнейшее развитие проекта.
Основные характеристики Gnutella, важные для её развития, заключаются в следующем:
- Изначально была доступна только бинарная версия программы без исходного кода и описания протокола. Последующие варианты создавались на основе обратной инженерии сторонними разработчиками.
- Первоначальный дизайн не предполагал масштабного использования — система была ориентирована на сотни или небольшое количество тысяч пользователей.
- Протокол Gnutella предназначен не для передачи файлов, а для поиска компьютеров и файлов на них. Сам обмен данными осуществляется напрямую через протокол HTTP, в отличие от Napster с собственным протоколом передачи. Популярные клиенты содержат встроенные мини-веб-серверы для обмена файлами.
- Множество независимых разработчиков выпустили программы, поддерживающие протокол Gnutella.
Из этого следует, что система имеет свои недостатки, часть из которых уже решены, а часть находится в процессе доработки.
- Появление несовместимых версий, способных искажать сообщения или нарушать маршрутизацию. Полностью избежать подобных случаев сложно, однако строгая фильтрация сообщений помогает минимизировать риски. Обычно такие меры применяются в популярных клиентах Gnutella.
- Проблемы с подключением к серверам. В ранних версиях не было стандартных списков серверов, поэтому для их поиска приходилось обращаться к внешним сервисам, часто содержащим неактивные адреса. Решением стало создание специализированных сервисов с актуальными адресами и автоматическое подключение к ним внутри приложений.
- Недостаточное количество результатов поиска. При возрастании нагрузки пользователи с обычным интернет-соединением испытывали снижение скорости поиска. В ответ были внедрены серверы-отражатели — быстрые узлы, играющие роль прокси для пользователей с медленным доступом.
- Самая серьёзная проблема — невозможность загрузить искомый файл. Несмотря на большое число результатов, загрузка зачастую не удавалась из-за дисбаланса между количеством пользователей, предоставляющих файлы, и теми, кто их ищет. Это связано с неравномерным распределением пропускной способности. Разработчики активно работают над уменьшением этого дисбаланса.
- Некоторые сайты предлагают поиск и скачивание через Gnutella, но без возможности загружать собственные файлы. В последних версиях клиентов, таких как LimeWire и BearShare, такие запросы блокируются — вместо файла предлагается скачать стандартный клиент Gnutella. Также реализуются системы учёта соотношения «скачанных» и «отданных» файлов, стимулирующие пользователей к более активному обмену.
Таким образом, несмотря на дефицит новостей в связи с общей паникой вокруг Napster, Gnutella продолжает работать и развиваться. Количество её пользователей растёт, а общие перспективы выглядят оптимистично. Будущее проекта во многом зависит от того, насколько эффективно смогут объединиться разработчики для предотвращения хаоса: через стандартизацию протоколов или с помощью децентрализованной организации, напоминающей развитие ядра Linux.
На сегодняшний день ежедневная аудитория Gnutella составляет примерно от 80 до 200 тысяч человек.