Пиринговые файлообменные сети. Что такое пиринговые сети

В качестве примера текущий движок позволяет добавлять такие сервисы как:

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

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

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

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

Инфраструктура проекта

Установка серверного ПО

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

    Git clone https://github.com/basenetwork/base.server-node

  3. Установить модуль sqlite3 для Node.js

    Cd base.server-node && npm install sqlite3 --build-from-source && cd ..

  4. запустить ноду nohup base.server-node/base.node.js --size=32 >/var/log/base.node.log &
В качестве параметра size необходимо указать свободный объем на диске (в ГБ), который вы готовы выделить под ноду.
Для работы ноды необходимо выделить внешний IP адрес и свободный порт. По умолчанию система попытается автоматически использовать один из внешних IP адресов в списке network interfaces операционной системы. Возможно вручную указать IP-адрес и порт, используя параметры запуска --host и --port:

Nohup base.server-node/base.node.js --size=32 --host=41.34.55.66 --port=2222 >/var/log/base.node.log &
Проверить работоспособность ноды можно, сделав http-запрос к веб-серверу:

Curl http://41.34.55.66:2222/-/about

Исходный код

Со всеми исходниками проекта можно ознакомится на GitHub - github.com/basenetwork . Аккаунт содержит несколько репозиториев:
  • base.server-node
    Собственно, сама серверная нода. Репозиторий написан на Node.js. Инструкция по установке base-ноды на свой сервер была представлена выше.
  • client-js
    Клиентское ядро. Проект написан на JavaScript. Включает в себя базовые функции по работе с системой. Это непосредственно тот самый код, который подгружается при открытии любого сайта системы - http://base.network/core.js Сайтовым движкам для работы с сетью ядро предоставляет специальный API - baseAPI
  • site-engine-js
    Сайтовый движок. Написан на JavaScript с использованием библиотеки React.js. В качестве фреймворка для верстки и стилей использует Bootstrap v3. Это собственно тот код, который организует структуру сайтов, их внешнее представление. Реализует систему редактирования контента для владельцев сайтов. В данный момент в качестве теста движком реализованы такие сервисы как блоги, фотоальбомы и списки медиа, а также систему комментариев к постам и фотографиям. Движок не работает напрямую с сетью, а использует для этого специально предоставленный ядром API.
  • static-builder
    Специально разработанный билдер статических файлов. Билдер написан на Node.js. Работа билдера заключается в компиляции всех статических файлов в один единственный javascript-файл. Необходим для компиляции ядра и движка сайта. Скомпилированный файл включает в себя полностью весь функционал для работы с сайтом: программный код, логику, формы, стили, шрифты и иконки, используемые в оформлении сайта. Полученный файл выкладывается в сеть и подгружается пользователем в качестве движка один единственный раз, при посещении сайта.
    Билдер в css-файлах стилей непосредственно вместо ссылок на шрифты и иконки вставляет закодированное в base64 их содержимое. А уже полученные css-файлы, а также скомпилированные js и jsx объединяет в один единственный js-файл.
К сожалению, еще пока не создано подробной документации по проекту. Нет детального описания структуры репозиториев и протоколов обмена. Функционал не покрыт тестами (исходный код для ознакомления представлен в весьма сыром виде). Надеюсь, что ситуация будет исправлена в ближайшем времени.

Планы

  • Доработать сайтовый движок. Переработать дизайн и повысить юзабилити существующего функционала. Добавить ряд полезных функций, чтобы по функционалу не уступать современным социальным сетям.
  • Локализовать веб-интерфейс для популярных языков.
  • Добавить сервис личных сообщений с обеспечением полной анонимности. Сервис помимо шифрования непосредственно содержимого сообщений будет скрывать сам факт переписки двух лиц, чего сложно добиться с использованием централизованной системы. Реализация такого сервиса требует лишь небольших доработок сайтового движка на стороне клиента. Серверная часть уже сейчас вполне готова для воплощения подобного функционала.
  • Переписать серверное ПО на языке GO, поскольку скорость работы с криптографического алгоритмами на Node.js оставляет желать лучшего.
  • Покрыть весь функционал тестами.
  • Составить подробную документацию к проекту, API и протоколам общения клиент-сервер.
  • Создать своего рода Store сайтовых движков, сервисов и плагинов, а также стилей и дизайн-тем.

Поддержка проекта

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

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

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

Спасибо за поддержку!

Заключение

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

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

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

«Этическая» сторона вопроса

Вообще, в последние годы активно «демонизируется» пиринговая сеть. Что это «опасно» с точки зрения получения вирусов и нелицензионного контента, говорят практически во всех СМИ.

Вот только журналисты отчего-то стыдливо умалчивают, что не менее 70% трафика от протокола Р2Р приходятся на абсолютно законопослушных пользователей и даже целые компании, которые просто разгружают свои серверы, вовлекая в обмен данными рядовые компьютеры. Простой пример: уже давно «Метелица», она же компания Blizzard, использует эти сети для обновления клиентов того же «Варкрафта» и прочих своих игр. Не стоит и упоминать, какое от игроков со всего мира там генерируется!

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

Наиболее распространенные программы

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

Определение

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

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

Основные принципы работы

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

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

Отличия от стандартной сети

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

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

Преимущества пиринговой модели передачи данных

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

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

Некоторые недостатки пиринговой модели

Мы неоднократно подчеркивали, что основной сферой использования такого рода сетей является обмен данными. Как ни странно, но в мире практически не встречается описанная нами выше пиринговая сеть. Что это означает? Дело в том, что классическая модель имеет не только многие достоинства, но и некоторые критические недостатки.

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

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

Наиболее крупные и популярные сети для обмена файлами

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

Наиболее крупными, известными во всем мире, являются следующие Р2Р сети:

    ED2K. Передача данных осуществляется по протоколу MFTP. Клиент — известная программа eMule. Уже с 2005 года проект находится в состоянии «хронической смерти», но пока что сеть продолжает стабильно функционировать, пусть даже и скорость передачи данных быстрой никак не назвать.

    BitTorrent. Пожалуй, наиболее популярный сегмент пиринговой системы, отличающийся громадным количеством пользователей и высокой скоростью. Имеет огромное количество клиентов, к числу которых относится «эпический» uTorrent, BitComet, а также десятки иных.

    Direct Connect. Более специфический вариант, когда хабы, образованные некими группами людей, используются ограниченным (сравнительно) кругом пользователей. Чрезвычайно популярна эта модель в качестве локальной сети провайдера. Основной клиент - DC++.

    Gnutella. Вот это самая настоящая, чистая пиринговая система. Используется особый протокол передачи данных, который был создан компанией Nullsoft, разработчиком общеизвестного (хотя и умершего) «Винампа». Какие в этом случае используются клиенты пиринговых сетей? Известна программа Shareaza, LimeWire и прочие.

    FastTrack. Также характеризуется «чистой» моделью P2P, но в обмене файлами могут участвовать только те компьютеры, которые имеют их полную версию. Программы - KaZaA, mlDonkey.

Каковы основные преимущества всех этих сервисов? Все просто — никакая настройка пиринговой сети совершенно не требуется. Ставите программу, переходите по «магнитной» ссылке и... вуаля, файл начал качаться!

Основные правила обмена файлами

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

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

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

Что желательно делать при обмене?

Очень желательно, скачав какой-то файл, раздать с него же равный объем информации. Как правило, если пользователь только скачивает, но ничего не раздает, системой могут быть введены «штрафные санкции», предусматривающие полное исключение возможности получения новых файлов. Может использоваться даже блокировка по IP или МАС-адресу. В частности, этим отличается пиринговая сеть "Билайн".

    Ни в коем случае не удаляйте файл, только-только завершив его скачивание. Если есть такая возможность, как можно дольше сохраняйте его на своем жестком диске.

    Нельзя также перемещать или переименовывать полученные файлы, так как в этом случае другие пользователи также не смогут получить к ним доступ.

    Ни в коем случае не занижайте искусственно скорость исходящего канала. Разумеется, такая передача в какой-то степени нагружает ваш жесткий диск и саму систему, однако не стоит так отмахиваться от нужд других людей.

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

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

О защите авторских прав

Мы уже отмечали, что пиринговые сети в последние годы ассоциируются исключительно с пиратством. И чаще всего такое отношение довольно-таки оправдано, так как пользователи массово скачивают не то... Вот только в большинстве случаев пиратскому контенту есть вполне адекватная и бесплатная замена. Всегда помните об этом!

Первой пиринговой сетью в июне 1999 года стала Napster, созданная американским студентом Шоном Фэннингом для упрощенного обмена музыкальными файлами (до Napster пользователи могли обмениваться файлами между собой через FTP, IRC, Usenet и ряд других сервисов, но крайне неудобных для передачи большого объема данных). Работу сети контролировало несколько центральных серверов, на которых хранились логи поиска и закачиваемых файлов пользователей, которые использовали одноименное клиентское приложение. Процесс файлообмена работал по следующей схеме: пользователь вводил название МР3-файла в поисковую строку, после чего программа-клиент отсылала запрос на центральный сервер; затем, приложение получало список компьютеров, подключенных в данный момент к Napster, на которых эта композиция имелась. Спустя 2 года, в июле 2001 года сеть была закрыта из-за распространения пиратского контента.

Второй пиринговой сетью в том же 1999 году стала Gnutella, проект, созданный NullSoft и по инициативе AOL, но прекративший свое существование почти сразу же после релиза. В основе этой сети уже реализовался в полной мере ключевой принцип пиринга - децентрализация: сеть давала возможность пользователю искать и обмениваться всеми видами файлов с другими владельцами Gnutella без участия каких-либо серверов. Тем не менее несколько энтузиастов смогли возродить программный код Gnutella и восстановить сетевой протокол. В итоге появилась масса программ-клиентов для работы с протоколом Gnutella: BearShare Pro, LimeWire, необычайно популярный на Западе Morpheus и других.

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

Торренты

Эволюция пиринговых сетей в начале 2000-х годов привела к появлению самой современной на сегодняшний день сети обмена файлами, а именно BitTorrent (в 2001 году). Отличительная черта этой сети - загружать файлы в ней можно только при условии отдачи своих (то есть, пользователи должны делиться своими файлами между собой). Центральные серверы, называемые трекерами, позволяют распределять равномерно нагрузку между пользователями, скачивающими данные (загрузка идет не только от раздающего (сидера), но и с тех, кто скачивает в данный момент файл (пиры)). В новых версиях протокола были разработаны бестрекерные (англ. trackerless) системы, которые решают некоторые из предыдущих проблем. Отказ трекера в таких системах не приводит к автоматическому отказу всей сети. Создатель BitTorrent Брэм Коэн (Bram Cohen) такой схемой хотел избавиться от главной проблемы всех пиринговых сетей - границ роста сети (поскольку большинство пользователей используется пиринг исключительно для загрузки контента на свой компьютер, но не для предоставления взамен своих файлов другим пользователям). В системе BitTorrent такое поведение (таких участников называют личерами), в принципе, возможно, но обычно строго наказывается (преимущественно, баном на трекере).

Работа в пиринге

Для работы в пиринговой сети (в частности, в BitTorrent), необходимо иметь установленный программный клиент (одними из самых популярных являются μTorrent, BitComet, некоторые файловые менеджеры, как Free Download Manager, GetRight, FlashGet, поддерживают работу в сети), а также правильно сконфигурированную сеть (разрешить определенные порты в сетевом экране, в некоторых случаях иметь регистрацию на трекере, внешний IP-адрес (для абонентов "домовых сетей").

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

Правовые вопросы

Сами по себе клиентские приложения для работы в пиринговых сетях не являются нелегальными, поскольку сама сеть создана для обмена данными между несколькими компьютерами. В то же время, на самих пользователей ложится определенная доля ответственности за то, что обмен ведется в том числе и информацией, защищенной копирайтом или же нарушающей правила распространения (разнообразные варианты кряков, кейгенов, патчей, а также серийные номера, эмуляторы). Так, по оценкам ИК "ФИНАМ" доля пиратской продукции в сфере цифрового контента (дистрибутивов ПО и игр, музыки, видео, электронных карт и книг) составляет более 95% и не поддается исчислению из-за отсутствия точных оценок объема данных, распространяемых через пиринговые сети. В итоге, с одной стороны, из-за пиратов, а с другой стороны, из-за пока недостаточного распространения интернета в России цифровая дистрибуция уступает обычной почти в 20 раз. Так, например, по анализу IFPI, 95% музыкальных треков в мире скачивается нелегально, а в России по оценке ключевых игроков - 97-98%.

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

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

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

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

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

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

Пиринговых сетей много (http://ru.wikipedia.org/wiki/Одноранговая_сеть). Пожалуй, самые крупные и популярные это eDonkey и Kademlia. Это частично децентрализованые или гибридные сети, в которых часть координационных функций обрабатываются специальными серверами. Но материалы по-прежнему хранятся на компьютерах пользователей. Для работы с этими сетями разработана специальная программа eMule (http://www.emule-project.net/). Скачиваем программу (~ 3,2 МБ) при помощи обычного браузера, устанавливаем и начинаем ее настраивать. Весь процесс нас сопровождает мастер, поэтому ошибиться в чем-либо сложно. Указываем название своего компьютера – под этим именем он будет отображаться в сети (рис. 9.14):

Рис. 9.14. Задание имени компьютера

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

Рис. 9.15. Проверка портов

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

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

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

Рис. 9.17. Настройка приоритета

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

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

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

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

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

Рис. 9.20. Завершение работы мастера

Последнее, что нам осталось сделать – указать пропускную способность нашей линии. Выбираем правильное значение из списка (рис. 9.21):

Рис. 9.21. Выбор пропускной способности канала

Этот шаг очень важен, поскольку eMule учитывает настраиваемую и реальную скорости соединения. Если вы не знаете, какая у вас скорость, то воспользуйтесь одним из сайтов, позволяющих ее определить (см. лекцию 4).

Приступим к скачиванию файлов. Нажимаем на кнопку "Поиск", вводим название, которое нам нужно найти, например "Ubuntu Linux", нажимаем кнопку "Старт". Результаты поиска выводятся в окно программы (рис. 9.22):

Рис. 9.22. Результаты поиска

Заметим, что выпадающий список "Тип" предназначен для установки фильтра поиска по содержимому – видео, изображение, музыка и т.д.

Здесь мы видим файлы-образов iso. Такие файлы могут быть смонтированы на виртуальном дисководе, например, с помощью программы Alcohol 120% (http://www.alcohol-soft.com/). Для нас это впрочем, не суть важно – все, что мы хотим – это скачать его. В поле "Доступность" мы видим разные значения от 1 до 22. Это число пользователей, у которых есть файл или число источников. Мы помним, что чем больше источников, тем больше скорость закачки. Поэтому нужно стараться выбирать файлы, для которых указывается не менее 5-6 источников. Поле "Полные источники" указывает полноту файла. Если на всех 5 компьютерах есть полный вариант одного файла, то значение будет 100%. Это обстоятельство также следует учитывать.

Выделяем нужную строку, щелкаем по ней правой кнопкой и выбираем пункт меню "Приём" (рис. 9.23):

Рис. 9.23. Запуск скачивания файла

Нажимаем на кнопку "Передача" и видим, что скачивание не началось, ничего не происходит (рис. 9.24):

Рис. 9.24. Начало загрузки файла

Именно здесь большинство пользователей, сталкивающихся с eMule, начинают думать, что у них что-то не работает, после чего закрывают программу и теряют интерес всякий к пиринговым сетям. Дело в том, что при обычном скачивании файлов – особенно на хорошей скорости, мы привыкли, что загрузка начинается моментально. Если она не начинается, значит что-то не работает. Но пиринговых сетях действует принцип "Ты мне – я тебе". Чем больше мы отдаем материалов в сеть, тем больше у нас рейтинг, тем быстрее у нас начинается скачивание. Вы помните? Материалы хранятся на обычных компьютерах пользователей, которые связаны с Интернетом обычным каналом связи, а не выделенной многомегабитной линией, как в случае дата-центров. Следовательно, если десять человек хотят скачать один файл, то они будут становится в очередь. Вперед пропускают "старичков", которые сами уже принесли пользу, т.е предоставили какие-то интересные файлы. Нам придется немного подождать. Сколько? Это зависит от актуальности файла, числа источников, словом, многих параметров. Впрочем, в большинстве случаев закачка начнется спустя разумный промежуток времени. Например, в данном случае менее чем через 10 минут скачивание началось (рис. 9.25):

Рис. 9.25. Файл начал закачиваться

На скриншоте мы видим, что сразу три источника начали отдавать этот файл. Скорость небольшая – порядка 10 Кбит\сек., но это максимальная скорость моего канала. Пиринговые сети не виноваты, eMule – тоже. На большем соединении скорость будет соответственно больше.

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

Рис. 9.26. Статистика обмена файлами

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

Рис. 9.27. Неправильное открывание доступа ко всему диску

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

Рис. 9.28. Открывание доступа к специально выделенной папке

Если понадобится, то в будущем закроем доступ к этой папке схожим образом (рис. 9.29):

Рис. 9.29. Закрывание доступа к папке

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

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

Рис. 9.30. Настройка лимита соединений

Программа eMule содержит встроенный Интернет-пейджер IRC и систему отправки сообщений – что-то вроде почты. Эти средства позволяют договариваться отдельным пользователям о привилегированной передаче материалов друг-другу. Как обычно, такое действие называется "подружиться", стать френдом. Впрочем, привилегированные обмены файлами не влияют на рейтинги пользователей.

Начиная работать с программой eMule, полезно почитать справочные материалы http://www.emule-project.net/home/perl/help.cgi?l=34.

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

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

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

  • Сеть с централизованным сервером. Если вы хотите стать участником такой сети, то должны будете пройти регистрацию на центральном сетевом сервере. После чего, сервер самостоятельно соберет всю необходимую информацию о вашем компьютере. В перечень собираемой информации войдут: IP адрес, общедоступные для скачивания файлы и некоторые другие данные. Собранные сведения составляют единую базу серверных данных, по которой будет производиться, в дальнейшем, поиск для скачивания информации на компьютеры участников сети. Для обслуживания таких сетей, создана, например, известная программа-клиент «KaZaa», которая использует протокол FastTrack.
  • Сеть с распределенным сервером. Если ваш компьютер подключен к сети такого вида, он является и клиентом, и сервером, использующим для своей работы протокол «Gnutella». Если вы пожелаете скачать файл с одного из компьютеров такой сети, ваш компьютер пошлет запрос не на сервер, а непосредственно в тот компьютер, на котором находится нужный файл.

Преимущество сетей данного вида очевидны:

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

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

Кодекс участника пиринговой сети

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

  • Не удаляйте файл, сразу после того, как закончилась загрузка: возможно, другие пользователи сети тоже захотят его скачать.
  • Не вздумайте ограничивать скорость раздачи и загрузки.
  • Предоставляйте доступ, к максимальному числу файлов, находящихся на вашем компьютере.
Статьи по теме: