Как работает пиринговая сеть

We use cookies. Read the Privacy and Cookie Policy

Как работает пиринговая сеть

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

Таким же преследованиям подвергались и другие аналогичные проекты. Но процесс вышел из-под контроля. И файлообменные пиринговые сети продолжали существовать, пользуясь все возрастающей популярностью у пользователей. Причина такой живучести пиринговых сетей заключается в принципе их работы. Работа пиринговой сети кардинально отличается от сетей, построенных по принципу "клиент — сервер". Данная сеть работает по принципу "клиент — клиент". То есть, если говорить правильно, технология называется Peer to Peer (P2P) — (одноранговый) узел (сети) к (одноранговому) узлу (сети). Здесь компьютер каждого пользователя выступает одновременно и как клиент, и как сервер.

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

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

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

Как уже говорилось ранее, правообладатели музыкальных или видеофайлов постоянно пытаются закрыть и закрывают файлообменные сети. Но на примере пиринговой сети eDonkey2000 видно, что закрыть пиринговую сеть невозможно. Официально протокол, по которому работает данная пиринговая сеть, принадлежит компании MetaMachine. Из-за исков, поданных на данную компанию, пиринговая сеть eDonkey2000 была официально закрыта в 2007 году. Но, как бы это странно не звучало, закрытие нескольких десятков серверов этой компании практически не отразилось на работе данной пиринговой сети. Почему же так произошло? Все дело в том, что инструменты этой компании перестали быть популярными у пользователей. Пользователи в большинстве перешли на альтернативное программное обеспечение. А если учесть, что данная сеть децентрализована, т. е. компьютер и клиентская программа каждого пользователя сети являются одновременно и клиентом, и сервером, сеть вышла из под контроля MetaMachine. Поэтому закрытие нескольких серверов данной компании на работе сети не сказалось совершенно. И сеть будет существовать, не смотря ни на что, пока не лишится последнего пользователя.

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

У наиболее понятливых из вас сразу возникает вопрос: а как другие пользователи в Интернете узнают о том, что я раздаю какой-либо файл? Вполне закономерно. Вот тут на помощь приходят трекеры — веб-сайты, на которых осуществляется публикация сведений о раздачах, запускаемых пользователями. Помимо описания вашего "дистрибутива Linux", вы создаете и выгружаете на трекер специальный торрент-файл, содержащий все данные о том, как, что и откуда скачивать. Другой пользователь скачивает этот файл (размером обычно в пару сотен килобайт) на свой компьютер, открывает в ассоциированной программе-клиенте и начинает его скачивать у вас.

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

Итак, условно всех пользователей можно разделить на сидеров, пиров и личеров.

Сидер или сид (от англ. seeder или seed — сеятель или зерно) — это пользователь, имеющий все части файла. Это может быть пользователь, начавший раздачу, или пользователь, полностью скачавший файл и не вышедший из сети (начавший раздавать файл).

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

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

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

Вернемся к терминологии, принятой в пиринговых сетях.

Доступность — количество полных копий файла, доступных клиенту. Каждый сид добавляет значение 1,0 к этому числу; личеры увеличивают доступность в зависимости от количества скачанного, которого нет у других личеров. К примеру, если на раздаче есть один сид и два личера, скачавшие по 50 % файла (скачанные части равны между собой), то доступность равна 1,50.

Рой (от англ. swart — рой) — все пользователи (пиры) и сидеры, участвующие в раздаче.

В процессе работы с торрент-файлами, скачивания и раздачи данных вы встретите еще два термина — анонсирование и DHT.

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

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

Данный текст является ознакомительным фрагментом.