Где хранятся файлы в пиринговых сетях

Обновлено: 07.07.2024

Стремление людей создавать децентрализованные сообщества всегда является ответом на давление или неспособность централизованных структур нормально работать.

Такие объединения заведомо более слабых (по сравнению с хорошо организованными и управляемыми из центра организациями) рядовых участников являются эффективным и довольно устойчивым способом противодействия или отстаивания своих прав — распределенная сеть аккумулирует ресурсы членов и способна выживать при их потере.

Однако история человечества не помнит случаев длительного существования децентрализованных структур:

  • в долгосрочной перспективе они оказываются менее эффективными по сравнению с централизованными;
  • само существование сообществ на основе распределенных сетей — это угроза организациям иерархической модели управления, что вызывает непрекращающиеся попытки разрушить или подчинить первых вторыми;
  • под действием этого давления или конкуренции децентрализованные сообщества либо распадаются, либо приобретают черты централизованных.

СЕТИ РАВНОПРАВНЫХ УЧАСТНИКОВ

Децентрализованные сети — это способ самоорганизации в компьютерную эпоху: с теми же целями, идентичными способами и с похожей судьбой. В сети peer-to-peer все участники равноправны. Каждый из компьютеров, объединенных в пиринговую (одноранговую, децентрализованную) сеть, может выполнять задачи и поставщика, и потребителя данных.

P2P-сети строят «поверх» обычных сетей, таких как Интернет, соединяя отдельные устройства логически, то есть при помощи дополнительных наборов правил. Цель сетей peer-to-peer — создание такого объединения, которое позволит каждому участнику получать выгоду от распределения ресурсов, а вся сеть будет устойчива к потере составляющих ее узлов.

Пиринговая сеть связывает компьютеры, которые могут обращаться к любому участнику сети и отвечать на обращения других. Свод правил работы такой структуры содержится в программах (клиентах), которые выполняются одновременно у всех членов сети. Сами правила разрабатываются с учетом возможных сбоев у любого участника. Совместная проверка действий отдельных членов сети обеспечивает ее устойчивость и сопротивление угрозам захвата контроля.

РАСПРЕДЕЛЕННЫЕ ФАЙЛООБМЕННЫЕ СЕТИ

Для массовых пользователей peer-to-peer-проекты стали известны в начале нулевых годов нынешнего века. С развитием компьютеров и сетей возможности распространения информации стали выше, однако правообладатели и продавцы контента не спешили использовать достижения прогресса — их устраивала традиционная модель бизнеса.

В ответ на это стали появляться файлообменные распределенные проекты, пользователи которых подключали свои компьютеры в общую сеть и свободно обменивались музыкой, фильмами, книгами. Примеры таких сетей и проектов: Napster, eDonkey2000, Kazaa, DC, BitTorrent.

Это было время великой войны правообладателей и пиринговых сетей. Уютно устроившиеся в своих офлайн-магазинах, владельцы бизнеса по продаже пластинок, компакт-дисков и бумажных книг восприняли P2P в штыки: они почувствовали, что прибыль утекает сквозь пальцы, как песок, но меняться категорически не желали: Интернет — какая-то новая игрушка гиков — посмела бросить им вызов?

Последовали судебные иски, штрафы, запреты, аресты. Многие проекты закрылись, другие перешли в «серую» зону, третьи практически не подают признаков жизни. Однако нельзя не отметить: лучшим и более успешным направлением развития бизнеса правообладателей все-таки оказалась тактика использования возможностей компьютерных технологий, а не запрещение их. Пример — стриминговые сервисы.

ПИРИНГОВЫЕ СЕТИ И АНОНИМНОСТЬ

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

Этот конфликт — возможности информационного обмена, предоставляемые современными технологиями, с одной стороны, и стремление государств и корпораций ограничивать эти возможности, с другой, — стал стимулом появления анонимных P2P-проектов и технологий, таких как TOR, Freenet, l2p.

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

Как и любые другие децентрализованные технологии, эта тоже испытывает на себе давление со стороны государств и корпораций. Причина та же: она бросает вызов принципам существования иерархических организаций, источник власти которых — ограничение доступа к ресурсам.

P2P В КРИПТОИНДУСТРИИ

Индустрия блокчейна и криптовалют — это феномен современного мира, который очень ярко демонстрирует описанные выше процессы эволюции распределенных организаций:

  • начало — это стремление общества к децентрализации и созданию структур, противодействующих иерархическим;
  • середина жизни — успешное продвижение, получение преимуществ, популярность;
  • завершающая стадия — разрушение или постепенное приобретение иерархических черт под постоянным давлением со стороны централизованных структур.

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

Биткоин в нынешнем состоянии вряд ли можно назвать образцовым децентрализованным проектом:

  • рядовым участникам недоступны майнинг и поддержка работы сети — этим занимаются бизнесмены, вложившие средства в недешевое оборудование и целые организации;
  • хранение всего блокчейна на компьютере не требуется — легкие клиенты могут работать без этого;
  • кошельки на всевозможных централизованных сервисах уязвимы и нарушают принцип распределенной сети;
  • приняты скандальные SegWit и Lightning Network, модифицирующие структуру блокчейна в угоду удобству, быстродействию и масштабируемости;
  • биткоин не стал полноценным платежным средством или инвестиционным инструментом;
  • государства усиливают контроль за точками, в которых биткоины можно обменять на традиционные ценности и валюты, планомерно, методично и жестко.

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

Эта же участь ждет другие криптопроекты и всю индустрию в целом: такова природа, таковы законы эволюции. Обладающие огромными ресурсами централизованные организации в конце концов либо раздавят, либо подчинят себе криптоотрасль. И тогда настанет время для появления новых, более совершенных и лучше подготовленных к жизни децентрализованных проектов.

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

Для разных типов данных применяются разные способы их передачи. К одному из таких способов можно отнести пиринговые сети (P2P), с помощью которых можно обмениваться файлами практически любого размера – от совсем небольших, до тех, которые достигают нескольких десятков гигабайт. Конечно, это не единственная сфера применения одноранговых сетей (это исходное название сетей такого типа). Например, с помощью них можно производить распределенные вычисления, позволяющие задействовать удаленные компьютеры пользователей для выполнения сложной обработки данных. Но в рамках нашего материала мы будем рассматривать эту технологию, именно как удобный инструмент для файлообмена в сети между пользователями.

Пиринговые сети имеют свои правила обмена данными между пользователями, а для осуществления самого обмена требуется использование определённых программ. Наверняка многие из вас слышали такие названия, как µTorrent, eMule, Shareaza, KaZaAи прочие, которые упоминаются, как правило, когда речь заходит о получении какой-либо информацией из сети. Но давайте обо все по порядку. В этом материале мы разберемся, что же такое пиринговые сети, а так же обратим внимание на их самые важные и ключевые моменты работы, дабы принцип их существования стал более понятным.

ЧТО ТАКОЕ ПИРИНГОВЫЕ СЕТИ

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

Одним из таковых является вариант, когда все объединённые между собой компьютеры имеют равнозначные функции, то есть, могут, как принимать информацию, выступая в роли сервера, так ее и отдавать, выступая в роли клиента. Такие сети получили название одноранговых или пиринговых (P2P), от английского «peer-to-peer», что дословно можно перевести как, «равный к равному». Еще такие сетевые объединения называют децентрализованными.

ПРИНЦИП РАБОТЫ ПИРИНГОВЫХ СЕТЕЙ

По своей сути пиринговая сеть представляет собой объединение компьютеров, которое базируется исключительно на равноправии всех участников, называемых в таких системах пирами. От клиент-серверной архитектуры, легшую в основу построения Интернета, такие сети отличаются непосредственно тем, что подобная организация способна сохранить работоспособность совершенно всей пиринговой сети при любом количестве доступных узлов (пиров), а также при любом их сочетании. То есть, при работе с обычными сетями все зависит от пропускной способности самого сервера, а в случае пиринговых сетей такого существенного недостатка нет.

Что бы более наглядно понять разницу между клиент-серверной и пиринговой архитектурой, давайте рассмотрим пример передачи файла по сети в каждой из них. Любая информация в сети передается небольшими кусочками, так называемыми пакетами. Чтобы передать файл от одного компьютера другому, его тоже необходимо разделить на множество частей (пакетов), которые после скачивания собираются в единое целое на машине пользователя, который этот файл запросил.

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

С пиринговой моделью передачи данных по сети дела обстоят несколько по-другому. Здесь не нужно находить конкретный сервер (узел), содержащий необходимый вам файл. С помощью специальных каталогов достаточно просто убедиться, что он где-то присутствует в сети. Если объект найден, то вы легко его можете скачать с помощью специальной программы. Основное отличие от вышеописанного способа заключается в том, что кусочки файла будут приниматься одновременно от нескольких источников. Помните, о чем мы говорили ранее? В одноранговых сетях все компьютеры пользователей являются серверами, а это значит, что закачка файла может вестись одновременно с многих машин, на которых он имеется. Именно поэтому, если каких-то пользователей имеющих нужный вам объект в определенное время не будет в сети, то выручат другие, а скорость получения информации, будет зависеть от количества людей, имеющих ее и конечно, возможностей вашего пропускного канала.

Как уже было сказано ранее, одной из основных сфер применения P2P-сетей является обмен файлами. Описанная выше модель «чистой» одноранговой сети в современной сфере файлообмена практически не встречается. Несмотря на некоторые преимущества такого варианта, например высокую скорость распространения запросов и надежность самой системы, при такой организации обмена данными, существуют и недостатки. Одним из таковых можно назвать сложность поиска именно тех пользователей, у которых имеется нужный в данный момент времени файл и в тоже время находящихся в сети в активном состоянии. Разрешить эту трудность, удалось с помощью использования гибридных сетей, где все же существуют выделенные серверы, на которые возложены функции координации работы, поиска существующих машин в сети, а так же определения их текущего статуса («в сети» или «не в сети»). Именно такая гибридная модель и была положена в основу большинства современных пиринговых файлообменных сетей.

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

ПОПУЛЯРНЫЕ ФАЙЛООБМЕННЫЕ P2P-СЕТИ

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

К наиболее крупным и популярным файлообменным сетям можно отнести:

  • ED2K (eDonkey2000). Для обмена файлами по протоколу MFTP используется клиент eMule или более устаревший Edonkey. Поддержка этого проекта была прекращена разработчиками в 2005 году, правда сама сеть продолжает функционировать.
  • BitTorrent – самая популярная файлообменная сеть, с высокой скоростью передачи данных. К основным клиентам можно отнести uTorrent, BitComet, BitSpirit, Azureusи прочие.
  • Direct Connect – связанные между собой небольшие хабы (сервера), используемые для поиска информации на компьютерах участников этих сетей. Используется для организации файлового обмена в крупных районных или городских локальных сетях. Основной клиент - DC++.
  • Gnutella и Gnutella2 – одноранговые сети в чистом виде, использующие для передачи данных свой собственный протокол, разработанный фирмой Nullsoft. Основные клиенты: Shareaza, LimeWire, Phex, Morpheusи прочие.
  • FastTrack. Использует классическую версию протокола P2P, правда в передаче информации участвуют только те источники, которые имеют полные версии файлов. Основные клиенты – KaZaA, giFT(KCeasy) и mlDonkey.

ПРАВИЛА ФАЙЛОВОГО ОБМЕНА В ПИРИНГОВЫХ СЕТЯХ

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

Как уже было сказано выше, в основе P2P-сетей лежит принцип равноправия, из которого следует, что файлы нужно не только скачивать, но и обязательно ими делиться. Это самое основное правило, нарушать которое нельзя. Если вы желаете только получать информацию, то в таком случае к вашим услугам множественные файлообменные серверы, типа DepositFiles, Rapidshare, Letitbit, Vip-Files и прочих, использующих клиент-серверную архитектуру. Правда, бесплатно скачивать данные с таких серверов получиться только после просмотра кучи рекламы и на низкой скорости.

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

Чтобы не попадать в неприятные ситуации, следует придерживаться нескольких элементарных правил:

  • После того, как закончилось скачивание файла, не нужно его сразу удалять. Пока есть возможность, продолжайте держать его на вашем компьютере, чтобы дать возможность другим скачивать его.
  • Не перемещайте скаченные файлы сразу же после их загрузки, иначе они станут недоступными для других пользователей.
  • Без особой необходимости не стоит занижать скорость исходящего соединения. Естественно, это является определенной нагрузкой на компьютер, однако при низкой скорости отдачи и объемы информации, получаемые от вас другими пользователями, будут малы.
  • Помните, что ваши интересы могут не совпадать с интересами других пользователей, так что на всякий случай, держите всегда на своем компьютере несколько популярных файлов, которые будут интересны многим.

ЗАКЛЮЧЕНИЕ

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

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

Что делать, если корпоративный сайт компании, с которого вы хотели скачать файл , закрыт вместе с компанией, ссылки на файловые хранилища оказываются нерабочими, а ваши друзья и знакомые понятия не имеют о том, что вам нужно? Поисковик выдает унылый ответ – не найдено ничего, и даже поиск на зарубежных сайтах ничего не дал? Пришло время окунуться в новый срез Интернета, который существовал всегда в загадочном мире хакеров, но с которым Вам не приходилось пока сталкиваться.

Пиринговые сети – блестящая иллюстрация неуязвимости Интернета, который должен был работать даже тогда, когда половину страны накрыл массированный ядерный удар. Эти сети децентрализованные, поэтому обмен информацией будет продолжаться до тех пор, пока остаются хотя бы два компьютера с неразрушенным каналом связи.

Большинство обычных пользователей не сталкиваются с пиринговыми сетями, даже работая с Интернетом по несколько лет. На это есть две причины: первая – работа с ними сопровождается кажущейся сложностью (но только кажущейся). Вторая связана с практически полной бесконтрольностью этих сетей, со всеми вытекающими отсюда последствиями. Содержимое сетей не индексируется обычными поисковыми системами и устранить файл , который даже нарушает чьи-либо права , очень сложно. Можно пресечь деятельность одного, двух, трех – хоть десятка участников сети, но оставшиеся пользователи смогут предоставлять эту информацию. Как при ядерном ударе.

Пиринговые, одноранговые или децентрализованные сети (от англ. peer-to-peer , P2P — один на один, с глазу на глаз) – это компьютерные сети , в которых нет выделенных серверов. Все участники равноправны, а каждый пользовательский компьютер (узел, peer) как принимает, так и отдает информацию. Это очень важный момент – мы привыкли работать с серверами, на которых круглые сутки, в любое время доступны нужные нам файлы. Потому что сервера включены все время, никому и в голову не придет выключать их на время обеденного перерыва. Однако, как мы уже знаем, в тех же самых файловых хранилищах – в случае бесплатного их использования, нас ждет куча ограничений – скорость закачки, количество трафика в день и т.д). В пиринговых же сетях, мы можем предоставить содержимое своего жесткого диска или отдельной папки всем желающим, в обмен на содержимое их папок.

Первая мысль, которая приходит в голову после знакомства с сетями P2P звучит примерно так: если мы отдаем друг другу файлы, то это значит, что я должен быть круглые сутки в сети? Нет, это не совсем так. Представим себе, что вы сделали превосходную фотографию своего города с высотного здания. Отличный снимок, отличного качества, занимающий размер 20 МБ. Понятно, что файл является совершенно уникальным и другого такого нет. Вы выкладываете его в доступную для всех папку и другой пользователь начинает его качать. После завершения скачивания он также выкладывает вашу фотографию для всех пользователей. В результате, в сети уже есть два источника, предлагающих ваш файл . Третий пользователь , который входит в сеть , будет видеть, что этот файл есть в двух местах. Он уже будет получать его по частям сразу из двух источников. В результате, скорость скачивания увеличится вдвое. Для четвертого участника файл будет доступен из трех источников, для пятого – из четырех и т.д. Если этот файл будет в 5-10 источниках, то понятно, что если один из пользователей решит пойти спать и выключит свой компьютер , то число доступных источников просто станет меньше на единицу. Немного уменьшится скорость загрузки, только и всего. Возможность скачивать один и тот же файл одновременно с множества компьютеров – вот замечательная особенность пиринговой сети.

А как определяются файлы? Не получится так, что ваш файл "Мой любимый город. tiff " (20 МБ) совпадет с файлом другого фотографа, который также назвал свою работу "Мой любимый город. tiff " и который тоже занимает объем ровно 20 МБ? Не получится ли так, что пользователи, качающие этот снимок из двух источников одновременно, получат в результате неработающую мешанину? Нет, такие ситуации исключены. Дело в том, что при выкладывании файла в сеть он получает уникальный хеш-код, который определяет данный файл совершенно точно. Разные файлы, имеющие абсолютно одинаковые названия и даже размеры, получат разные хеш-коды и никогда не перепутаются. Однако один и тот же файл , расположенный на разных компьютерах, будет иметь одинаковый хеш-код, и будет выдаваться с множества источников.

3,2 МБ) при помощи обычного браузера, устанавливаем и начинаем ее настраивать. Весь процесс нас сопровождает мастер, поэтому ошибиться в чем-либо сложно. Указываем название своего компьютера – под этим именем он будет отображаться в сети (рис. 9.14):

Задание имени компьютера

Это имя желательно указывать вместе с языком, например так chk (rus). Дело в том, что без этого вас могут не пустить на некоторые российские сервера. Впрочем, имя можно будет легко поменять в настройках программы. В следующем шаге мастера нам предлагается проверить работу портов, работающих по умолчанию (рис. 9.15):

Проверка портов

В подавляющем большинстве случаев все будет работать по умолчанию – если наш Интернет - провайдер ничего не блокирует. Впрочем, нажимаем на кнопку "Тест портов" и оказываемся на сайте программы, где выдается результат успешной проверки (рис. 9.16):

Успешное тестирование портов

Далее нам предстоит согласиться с политикой о приоритете файлов. Идея ее заключается в том, чтобы скачивание файлов с небольшим количеством источников осуществлялось независимо от загрузки популярных файлов. Словом, соглашаемся с отмеченными галочками и нажимаем на кнопку "Далее" (рис. 9.17):

Настройка приоритета

Вуалирование (от слова "вуаль") работы приложения позволит обойти ограничения, которые могут налагаться вашим провайдером. Попробуем работать без этого вуалирования (рис. 9.18):

Настройка вуалирования

По умолчанию, eMule предлагает работать сразу с двумя пиринговыми сетями – eDonkey (eD2K) и Kademlia (Kad). Оставим без изменений эту настройку – чем больше сетей, тем больше в них доступных файлов (рис. 9.19):

Выбор пиринговых сетей

Все, настройка завершена. Мастер еще раз напоминает, что все внесенные значения доступны для изменений в ходе работы в настройках программы (рис. 9.20):

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

Тем не менее файлообменники вовсе не являются раем для пользователей нелицензионного программного обеспечения в силу того, что имеют значительное число ограничений, среди которых: размер одного файла и время его хранения, допустимое число потоков с одного IP-адреса, максимальный объем закачиваемых файлов в течение некоторого времени и ограничения на ширину потока.

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

Файлообменные сети

Общий принцип работы пиринговых сетей следующий: клиентская программа передает в сеть список файлов, которые она может предоставить для скачивания и которые хочет получить сама. При этом если поиск подходящих партнеров осуществляется с помощью сервера, а сами данные качаются напрямую или, если прямое соединение не может быть установлено, при посредничестве сервера, то такая модель называется централизованной. Если же любые компьютеры сети могут одновременно выполнять функции и клиентов, и серверов, посылая запросы друг другу, как в эстафете, то подобный тип сетей называется децентрализованным. Сеть, которая поддерживает централизованный и децентрализованный режимы работы, является смешанной (гибридной).

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

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

KaZaA

Рис. 1. Окно программы-клиента KaZaA

Рис. 1. Окно программы-клиента KaZaA

Для любого файла, помещаемого в eDonkey, вычисляется хеш-сумма (специальная контрольная сумма, зависящая от содержимого файла), в соответствии с которой он однозначно идентифицируется в сети независимо от его названия. Ссылки на файлы в сети E2DK имеют вид «ed2k://|file|SomeFile.zip|43573472|94cb15b58509c52afcf8bed5dd7a4bd|», где имя файла «SomeFile.zip» ни на что не влияет и служит лишь для удобства и указания, под каким именем следует сохранять на диск файл, имеющий соответствующие контрольные суммы.

Список файлов, которые пользователь скачивает у других или которые располагаются у него на диске в специальных «расшаренных» директориях, при подключении к сети передается на соответствующий сервер, и они становятся доступными для скачивания другим клиентам, подключенным к тому же узлу. Но при этом распространение базы данных отдельного сервера по другим серверам происходит достаточно медленно, поэтому нужный файл не всегда легко найти.

Любой файл качается по кусочкам от нескольких пользователей одновременно. Клиент eDonkey сам находит тех, у кого есть недостающие фрагменты, и осуществляет их закачку. При этом вполне возможна ситуация, когда два пользователя качают друг у друга разные фрагменты одного и того же файла, полученные ими раньше от других пользователей. Поэтому если файл полностью есть хотя бы у одного человека, подключенного к сети, то рано или поздно он будет получен целиком всеми пользователями сети. Однако тут есть и некоторые подводные камни.

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

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

Gnutella

Рис. 2. Окно программы-клиента Morpheus

Рис. 2. Окно программы-клиента Morpheus

Сопровождение и развитие проекта взяла на себя группа энтузиастов. Их добровольным, хотя не всегда скоординированным усилиям Интернет-сообщество обязано возникновению более двух десятков клиентов для сети Gnutella, из которых наиболее известен Morpheus (рис. 2). К главным недостаткам Gnutella относятся медленный и зачастую неточный поиск, что является платой за децентрализованный принцип работы.

eDonkey2000

Рис. 3. Окно клиентской программы eDonkey2000

Рис. 3. Окно клиентской программы eDonkey2000

Кроме того, eDonkey содержит встроенный Overnet-клиент, используемый для обмена файлами без применения серверов и работающий на собственной сети. Overnet использует тот же протокол передачи, что и eDonkey, но его главное отличие заключается в том, что при поиске файлов он запрашивает их у других пользователей, за счет чего достигается хороший охват.

eMule

Рис. 4. Окно программы-клиента eMule

Рис. 4. Окно программы-клиента eMule

Клиент eMule обладает более удобным интерфейсом по сравнению с eDonkey. В нем присутствует встроенная поддержка русского языка и нет рекламы. При создании eMule была переработана и оптимизирована процедура загрузки файлов. Например, в первую очередь загружаются наиболее редкие блоки файла, а при повреждении блока повторно скачивается только его поврежденная часть. Кроме того, был улучшен поисковый механизм. Функция «Предпросмотр» позволяет ознакомиться с фильмами и заглянуть в архивы еще до того, как они скачаны до конца. В состав eMule включен планировщик задач, а также небольшой web-сервер, позволяющий удаленно управлять программой через Интернет или с мобильного телефона, поддерживающего Java.

Специальная система очереди и кредитов действует таким образом: пользователь получает нужные ему файлы гораздо быстрее, если закачивает их кому-нибудь еще. При необходимости можно ограничить доступ к спискам сетевых адресов или к именам конкретных клиентов пиринговой сети. eMule может получить список серверов не только с определенного ресурса, но и от партнеров по сети. Кроме того, партнеры могут обмениваться списками источников скачиваемых файлов, что снижает потребность в серверах.

Shareaza

Рис. 5. Окно программы-клиента Shareaza

Рис. 5. Окно программы-клиента Shareaza

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

BitTorrent

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

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

Рис. 6. Сайт BitTorrent

Рис. 6. Сайт BitTorrent

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

И крупные и мелкие компании довольно быстро поняли преимущества, которые они могут получить, работая с этой технологией. Сегодня BitTorrent активно используют многие Open Source-проекты, а такие компании, как Red Hat и Mandrake, на деле убедились в ее достоинствах. Распространяя свои гигабайтные дистрибутивы, они нередко сталкивались с возрастанием нагрузки на серверы, что зачастую приводило к их отказам и соответственно к проблемам с доступом. Когда же раздача файлов стала осуществляться с помощью BitTorrent, то, по словам сотрудников Red Hat, загруженность серверов снизилась примерно в сто раз.

Не только файлы

Поддержка протокола PNRP (Peer Name Resolution Protocol), также относящегося к peer-to-peer-системам, была включена в состав Windows Vista Beta 1, выпущенной в конце августа текущего года. По заявлению Microsoft, включение данной функции в новую операционную систему было сделано главным образом для использования в онлайновых играх.

Читайте также: