Что такое пиринговые сети? Принцип работы и правила файлового обмена. Электронные библиотеки, дистанционное обучение, сервисы, пиринговые сети

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

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

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

Пиринговые, одноранговые или децентрализованные сети (от англ. 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.

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

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

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

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

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

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

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

Для поддержки проекта и развития сети любой желающий может предоставить свои серверные ресурсы. Для этого на своем сервере необходимо установить и запустить серверную ноду.
  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, могут принять участие в развитии сайтового движка и его отдельных сервисов. Приветствуется также и разработка собственного сайтового движка с нуля.

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

Заключение

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

Первой пиринговой сетью в июне 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), - это компьютерные сети, в которых все участники, могут выступать и в качестве клиента, и в качестве сервера одновременно. Работает эта технология следующим образом. Пользователь устанавливает на компьютер специальную программу (клиент) для работы с конкретной P2P сетью, и после этого может как расшарить свой файл в сети, поместив его в специальную директорию, так и отправить запрос на поиск нужного ему файла. Если нашлось несколько источников, то файл будет скачиваться частями одновременно со всех. С другой стороны, расшаренный файл пользователя, равно как и уже скаченные части искомого им файла, могут в этот момент служить одним из источников для другого пользователя. За счет такого подхода и достигается высокая пропускная способность пиринговый сетей.

Одним из первых широко используемых peer-to-peer файлообменных сервисов стал Napster . Он был основан в 1999 году 19-летним студентом Северо-восточного университета Бостона Шоном Фаннингом. Сервис задумывался - как сеть для свободного обмена с друзьями музыкой в формате mp3. Но в таком виде он просуществовал всего два года: из-за конфликтов с правообладателями и последовавшего за этим судебного решения он был вынужден прекратить свою работу и выплатить крупные штрафы.

Napster был файлообменной сетью централизованного типа: для функционирования ей необходимо наличие выделенного сервера, который индексирует файлы сети и выступает в роли единого поисковика. Если закрыть сервер, вся сеть перестает работать. Последующие файлообменные сети учли эту ошибку своего предшественника. В настоящее время для функционирования большинства наиболее популярных P2P сетей либо совсем не нужны индексирующие серверы (децентрализованный тип), либо таких серверов много (частично децентрализованный тип), и остановка одного из них не приведет к закрытию всей сети. Так, например, закрытие официального клиента для работы с сетью eDonkey (по-русски его часто зовут «Ослом» или «Осликом») из-за иска Американской ассоциации звукозаписывающих компаний, хотя и снизило популярность самой сети, но не убило ее. Потому что существовали и продолжают существовать альтернативные серверы и программы-клиенты, наиболее известная из которых - eMule .

Существуют различные P2P протоколы и основанные на них сети, такие как, например, eDonkey, Dirrect Connect или Gnutella. Но в настоящее время самыми распространенными в мире по данным агентства Ipoque являются сети на основе протокола BitTorrent. Причем в Восточной Европе и России Torrent используют более 80% всех пользователей P2P сетей, в Западной Европе - почти 60%.

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

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

Самые популярные торрент-клиенты

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

uTorrent - самый популярный торрент-клиент под операционные системы Windows и Mac. По информации портала TorrentFreak к концу декабря 2008 года его месячная аудитория составила 28 млн человек. Программа была выпущена сентябре 2005 года. А сейчас uTorrent установлен на 11,6% компьютеров в Европе и на чуть более 5% - В США. Всего на пользователей uTorrent приходится от 40 до 60% от общего числа пользователей торрент-клиентов.

BitComet - клиент, поддерживающий одновременно протоколы BitTorrent и eDonkey под Windows. Программа была впервые выпущена в 2003 году, а сейчас представлена на 52 языках мира, включая русский. Также приложение включает в себя видео-проигрыватель, позволяющий просматривать.flv и.swf файлы.

Vuze (бывший Azureus). Клиент, распространяемый по лицензии GPL. Локализация доступна для 36 языков, включая русский. Помимо протокола BitTorrent, поддерживает анонимный обмен данными по протоколам I2P и Tor. Работает под операционной системой Windows (но есть версии, поддерживающие Linux системы). С официального сайта компании еженедельно скачивается более 500 тыс. копий этого клиента.

Наиболее популярными торрент-клиентами под операционные системы на базе Linux являются Ktorrent , Qtorrent , Transmission (под Gnome), rTorrent - в зависимости от используемых дистрибутивов и графической оболочки.

Самые популярные торрент-сайты в мире

Компания eBizMBA, занимающаяся мониторингом интернет-рынка, составила рейтинг наиболее популярных в мае 2009 года торрент-сайтов. Рейтинг составлен на основе совокупности характеристик посещаемости, количества внешних ссылок, и рейтинга Google и Alexa. Вот пятерка лидеров.

Mininova - самый крупный торрент-сайт и поисковая система.torrent файлов, создан в 2005 году. Сайт посещают более 30 млн человек в месяц.

ThePirateBay - крупнейший торрент-трекер в мире. Его сайт посещают 2,7 млн американских пользователей ежемесячно (а в мире - на порядок больше). Есть русская локализация. Сайт стал всемирно известен еще и крупным скандалом и судебным процессом в Швеции, развернувшимся вокруг него. Если владельцев трекера признают виновными в нарушении авторских прав, им грозит до двух лет лишения свободы и крупный штраф, а всему мировому торрент-сообществу - серьезный прецедент по официальному признанию торрент-систем пиратскими. Этот процесс настолько всколыхнул общественность Швеции, что привел к созданию политической партии Pirat bay (Пиратская бухта), у которой теперь есть серьезные шансы пройти в парламент Швеции на ближайших выборах.

isohunt.com . Более 15 млн ежемесячных посетителей. Поисковая система по торрент-трекерам, которая постоянно индексирует почти 100 тыс. трекеров с общим числом пиров - более 17 млн.

torrentz.com - 1,5 млн посетителей ежемесячно, запущен в 2003 году. Не является трекером, но осуществляет поиск.torrent файлов по 816 трекерам, им проиндексировано 152 479 536 сидов (по состоянию на 3 июня 2009 года), в том числе, и по таким крупным трекерам как ThePirateBay и Mininova.

BTJunkie . Этот сайт - не только трекер плюс поиск по нему, но и расширенная поисковая система.torrent файлов в Интернете. Число посетителей сайта - 810 тыс. человек в месяц, есть русская локализация. Представлено более 2,5 млн активных торрентов.

Самые популярные торрент-сайты в России

torrents.ru . Самый крупный торрент-трекер Рунета. По состоянию на 3 июня 2009 года на нем зарегистрировано почти 3,5 млн пользователей, количество пиров превышает 7,5 млн, сайт ежемесячно посещают почти 25 млн человек. Регистрация открыта для всех желающих, но раздачи модерируются. В 2009 году признан премией Ротор лучшим в номинации «Сетевой сервис года».

tfile.ru . Посещаемость сайта - более 1,8 млн человек в месяц. Трекер не специализируется на каком-либо одном виде контента, здесь можно найти и музыку, и видео, и программы.

kinozal.tv . Трекер, специализирующийся на видеофильмах. Посещаемость его сайта составляет более 2,5 млн человек в месяц. По статистике на 3 июня 2009 года количество пиров составляет 107 484, количество сидов - почти 100 тыс.

Не peer-to-peer

Rapidshare.com . Это самый крупный сервис для обмена файлами, основанный не на протоколе peer-to-peer. В настоящее время этот сайт ежемесячно посещают около 4,3 млн человек. Бесплатное его использование возможно, но при этом есть ограничение на количество и размер скачиваемых и заливаемых файлов. Так, при бесплатном использовании максимальный размер закачиваемого файла - 200МБ, ограниченная скорость скачивания, единовременно можно скачивать только один файл, повторное скачивание возможно только с временной задержкой. При использовании премиум аккаунта максимальный размер закачиваемого файла - 2ГБ, нет ограничения на количество и скорость скачиваний, время хранения файла на сервере неограниченно.

Как найти и скачать в Интернете любые файлы Райтман М. А.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Из книги 64 килобайта о Фидо автора Filimonov Nick

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

Из книги Разгони свой сайт автора Мациевский Николай

Как это работает? В протоколе HTTP версии 1.1, внедренном в 1999 году и используемом по сей день во Всемирной паутине, появилась возможность в рамках одного TCP-соединения делать несколько запросов веб-серверу.Учитывая, что страницы современных сайтов обычно содержат большое

Из книги Документация NetAMS автора Автор неизвестен

Как работает Новые функции сосредоточены в:поддержке авторизации через telnet–интерфейс и/или командную строкумодуле rlm_netams, расширяющего сервер FreeRADIUSподдержке авторизации доступа к HTML–страницам через mod_auth_radius+новая команда сервиса html (опционально)В качестве сервера

Из книги Работа в Интернете автора Макарский Дмитрий

Как это работает Принцип работы программы Skype (рис. 5.10) очень прост. Скачав с сайта http://www.skype.com приложение и установив его у себя на компьютере, практически можно начинать общение. Рис. 5.10. Окно программы SkypeВо многом работа в Skype похожа на работу с программами-клиентами

Из книги Об интеллекте [другая версия перевода книги] автора Хокинс Джефф

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

Из книги Основы AS/400 автора Солтис Фрэнк

Как все это работает В этом разделе мы продолжим разговор о вводе-выводе на примере шины SPD. Мы рассмотрим подробности низкоуровневых операций, выполняемых ниже IPCF и очень специфичных для структуры шины SPD, используемой как в старых, так и в новых моделях AS/400. Чтобы

Из книги Wi-Fi. Беспроводная сеть автора Росс Джон

Из книги SAP Business One. Строим эффективный бизнес автора Елашкин Михаил

ГЛАВА 10 КАК ЭТО РАБОТАЕТ? «Уважаемые пассажиры! Мы находимся на борту нового суперширокофюзеляжного самолета ИЛ-186. Наш самолет - семипалубный. На первой палубе находится гардероб и камера хранения. На второй палубе - кинозал. На третьей - пассажирский салон. На пятой -

Из книги PGP: Кодирование и шифрование информации с открытым ключом. автора Левин Максим

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

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

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

Из книги Интернет-маркетинг на 100% автора Коллектив авторов

2.3.3. Как это все работает? ОСНОВЫ ФУНКЦИОНИРОВАНИЯ ПОИСКОВЫХ СИСТЕМ, ИНДЕКСАЦИИ И РАНЖИРОВАНИЯ САЙТОВСразу хочется оговориться: поисковая система – это робот, который автоматически обрабатывает миллиарды страниц по какому-то алгоритму, в результате показывая в доли

Из книги Справочник по параметрам BIOS автора Вонг Адриан

Из книги Оптимизация BIOS. Полный справочник по всем параметрам BIOS и их настройкам автора Вонг Адриан

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

Из книги Дело о реформе копирайта автора Энгстрём Кристиан

И всё равно это не работает Смертная казнь за копирование15 января в 19:09. Копирайт: Peer-to-Peer* автор фото: Андрей Бутко, по лицензии Creative Commons Attribution-Share Alike 3.0 Unported.В наше время во всём мире наказания за нарушение копирайта довольно жестокие. Астрономические цифры штрафов и

Из книги Операционная система UNIX автора Робачевский Андрей М.

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

Из книги Интернет для ржавых чайников автора Левина Любовь Трофимовна

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

Статьи по теме: