e.motion
Статьи

Pares inter pares

Авторы: Александр Белков, Дмитрий Смирнов
Опубликовано в журнале «Домашний компьютер» №2 от 19 января 2006 года.

Роль латыни в наше время играет английский язык, и с некоторых пор в нем устоялось выражение, по сути, несущее тот же смысл, что и латинизм, вынесенный в заголовок, — peer-to-peer. Равные общаются с равными — это принцип работы так называемых «одноранговых» сетей. О том, что это такое и какое место peer-to-peer занимает в истории интернет-цивилизации, мы сейчас и расскажем.

Одноранговые сети — это просто

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

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

Все записали? Отлично, зачет через месяц. Теперь подробнее…

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

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

Все, что мы описали до этого момента, — классический пример работы технологии «клиент-сервер». За ним наступает «пир-ту-пир». Если бы через сервер ICQ проходили все переговоры пользователей системы, он задохнулся бы еще на первых десятках тысяч зарегистрированных. Поэтому, разумеется, процесс переговоров происходит напрямую между клиентами ICQ. (Сервер ICQ на этой стадии может использоваться в частном случае — для отложенной передачи сообщения, когда клиент не может передать его самостоятельно, — например, если адресат находится в офлайне.) Между собой программы-клиенты равны: каждая из них может инициировать отсылку сообщения, а во включенном состоянии ждет получения сообщений извне.

Таким образом, централизованные серверы в ICQ используются только для авторизации пользователей и для слежения за их статусом («включен», «выключен», «спрятался» и т. п.) и уникальностью. Причем авторизовывать пользователей будет тот сервер, адрес которого прописан в программе-клиенте (то есть, в принципе, этот адрес можно менять). С этим в свое время было связано несколько громких случаев мошенничества. Так, однажды по Сети с помощью спамерских технологий распространили сообщение, что для улучшения качества работы ICQ следует добавить в клиентах адрес нового сервера. В тот момент тема качества сервиса была крайне актуальной, если не сказать «больной», — сеть ICQ переживала бурный рост, и зачастую серверы действительно не справлялись с наплывом пользователей. Разумеется, сервер, указанный в сообщении, занимался лишь сбором номеров и паролей ICQ, из-за чего многие лишились своих аккаунтов.

Что в основе?

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

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

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

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

Сети типа «кольцо» в чистом виде для построения пиринговых сетей почти не используются (во-первых, неэффективны, а во-вторых, в результате их работы многие участники сети получат доступ к информации, им не предназначенной), поэтому не будем рассматривать их отдельно. Sapienti sat2.

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

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

Простор для применения

Итак, какие способы использования пиринга получили наибольшее распространение?

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

Началось все, как мы упомянули, с общения. Сначала (в 1980-х годах) появилась UNIX-программа talk. Она была не пиринговая, однако на ее основе возник протокол IRC (Internet Relay Chat). В нем уже наблюдались элементы p2p, так как в некоторых IRC-клиетах пользователи могли общаться друг с другом «приватно», без помощи сервера. Впрочем, это была, скорее, дополнительная возможность — основное IRC-общение все равно происходило на серверной основе.

В ноябре 1996 года компания Mirabilis выпустила первую версию программы ICQ. Скорость, с которой этот клиент набрал популярность, напоминала активность вируса, во многом благодаря возможностям, открываемым peer-to-peer. Клиент ICQ стал первым интернет-пейджером, который можно было назвать всемирно известным. Вскоре, в июне 1998 года, проект ICQ был на корню куплен компанией America Online (AOL) за 287 миллионов американских долларов. Выгода AOL в этой сделке заключалась не столько в извлечении прямых дивидендов от ICQ, сколько в том, что развитие ICQ не пошло вразрез с интересами собственного чат-клиента компании — AOL Instant Messenger (AIM), — а также в том, что ICQ не достался конкурентам. В 2002 году компания AOL Time Warner получила первый в США патент на технологию Instant Messaging. (Впрочем, дальше запрещения конкурентам использовать словосочетание Instant Messenger дело не пошло.)

Конкуренты тем временем разработали свои p2p-чаты: Yahoo! Messenger (ранее известный как Yahoo! Pager), MSN Messenger, Windows Messenger, GoogleTalk, Jabber, QNext и другие. Все они были текстовыми пейджерами, некоторые поддерживали возможность коллективных чатов, у многих в качестве plug-in-модулей были функции голосового (VoIP) общения и видеоконференций.

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

Сеть Skype была создана Никласом Зеннстремом и Янусом Фриисом — разработчиками другой пиринговой сети — файлообменной KaZaA. Клиент Skype приобрел популярность благодаря своей гибкости: ему не мешали медленные соединения (позволяет разговаривать даже dial-up-пользователям) и преграды в виде NAT и файрволов. Интернет-пользователи общаются между собой бесплатно, а с абонентами традиционной телефонии — за совсем небольшую плату. Основное отличие Skype от других VoIP-клиентов (то есть голосовых, Voice over IP) — это использование принципа peer-to-peer. Отличие же от файлообменных сетей заключается в том, что Skype должен передавать данные в реальном времени, их нельзя отложить или поставить в очередь3.

Однако довольно про общение. Перейдем к самой, наверное, животрепещущей области пиринга — файлообменным сетям.

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

Сеть была создана и запущена в июне 1999 года. Название сервис получил от сетевого псевдонима своего создателя Шона Фэннига. Napster не был чистокровно пиринговой системой, что в результате дало властям рычаги давления на него. Сервис работал через центральный сервер, где хранилась информация о пользователях и о содержимом их винчестеров (разумеется, той их части, которой они сами были согласны поделиться). Практически очень напоминает ICQ. Napster интересовался только файлами в формате MP3; другую информацию в нем найти было нельзя. Удобный интерфейс, новизна идеи и распространение в США широкополосного доступа в Сеть сделали свое дело: сервис стал популярным менее чем за полгода.

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

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

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

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

До конца 2001 года создатели сервиса предпринимали попытки превратить его в службу платной подписки на музыку, и в связи с этим Napster едва не был куплен немецкой корпорацией Bertelsmann. Однако сеть попала под действие закона о банкротстве, и 3 сентября надежды на восстановление проекта в том или ином виде были перечеркнуты надписью на официальном сайте: «Здесь. Был. Напстер».

Мы не будем рассказывать о том, что стало дальше с торговой маркой Napster, когда ее купили на распродаже имущества обанкротившейся компании. Эта история уже не имеет ничего общего с пиринговыми технологиями. Упомянем лишь еще один аспект работы файлообменных сетей — PR (пиар). Именно так: файлообменные сети действительно повышают популярность музыкантов. Оптимисты заявляют, что благодаря p2p люди узнают, а в итоге и покупают больше музыки. В качестве примера приводится классическая история с альбомом Kid A группы Radiohead. До выхода Kid A эта британская команда никогда не поднималась в американских чартах выше 20 места. Однако за 3 месяца до даты официального релиза несколько треков из Kid A попали в Napster. Это был экспериментальный маркетинговый ход: другими, традиционными способами альбом британцев почти не рекламировался.

К моменту официального выхода альбома в продажу Kid A был скачан через Napster миллионы раз. Музыкальная индустрия ожидала, что его уже никто не купит. Однако альбом еще на первой неделе продаж не только попал в двадцатку самых продаваемых, но и достиг первого места, потеснив традиционных обитателей американского музыкального Олимпа — Мадонну и Эминема, для раскрутки которых обычно используется тяжелая маркетинговая артиллерия. Таким образом, суммарный эффект от работы файлообменных сетей — это уравнение с несколькими неизвестными. И за это погиб Napster…

Лирическое отступление о блогах

Проблемы, связанные с централизованностью, можно наглядно представить на примере блоггерских сервисов. Как известно, блоги — это онлайновые журналы. Они бывают как частные, так и коллективные. Один из наиболее популярных блог-сервисов сейчас — LiveJournal.com («Живой Журнал»). Им пользуется более 9 миллионов человек по всему миру, и почти четверть миллиона среди них — из России. Регистрацией пользователей, а также хранением всех данных занимается центральный сервер (группа серверов), так что технологически эту систему смело можно назвать централизованной. Тем более что «пир-ту-пир» пользователи «Живого журнала» общаются разве что в реальной жизни (на фестивалях Current Music, например).

Естественно, среди 9 миллионов людей не могут не возникать конфликты. Их разрешением занимается так называемая «конфликтная комиссия», спорадические вспышки активности которой приводят к замораживанию сотен аккаунтов пользователей. А для профессионального блоггера аккаунт — не только привычный псевдоним, но и сотни контактов, полезных записей да и просто заметная часть жизни. Разумеется, такая ситуация многих не устраивает, и люди задаются вопросом: что делать?

Решением проблемы становится… правильно, децентрализация. Уже многие пользователи блогов обзавелись собственным хостингом, на который установили блог-движок (по сути — скрипт и базу данных). Эти персональные сайты-блоги умеют экспортировать информацию в тот же «Живой Журнал», так что культурные и технологические связи не нарушаются. Единственная задача, которая не до конца решена, — это авторизация пользователей других блогов. Впрочем, сейчас такая проблема почти сведена на нет с помощью технологии OpenID.

Персональные блог-движки, которые можно бесплатно и с минимальными усилиями установить на свой сайт, можно найти с помощью любого поисковика по ключевым словам, к примеру, WordPress, InTerra или Nucleus CMS.

Но свято место…

…пусто не бывает: все иски и судебные процессы были направлены против конкретной организации, но никак не против технологии peer-to-peer, которую запретить, прямо скажем, затруднительно. Незадолго до закрытия Napster’а появилось еще несколько пиринговых сетей, которые подхватили из рук своего старшего товарища флаг, по ряду признаков напоминающий пиратский. В момент, когда пользователи обнаружили, что Napster не работает и это навсегда, они подумали: а что там есть еще в том же духе?

В том же духе нашлись механизмы KaZaA, WinMX, OpenNAP, Gnutella, eDonkey и многие другие. На данный момент многие из этих сетей закрылись или превратились в онлайновые системы продажи музыки и прочего цифрового контента. Но некоторые продолжают работу, а какие-то только создаются. В этих сетях обмениваются уже не только музыкой, а если музыкой — то не только MP3. Найти там можно и графику, и фильмы в DVD- или DivX-качестве, и программное обеспечение.

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

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

Поиски инопланетян

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

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

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

Одной из первых задач, которую решали энтузиасты распределенных вычислений, был взлом криптографического ключа RC5-64, организованный сайтом http://distributed.net. Взлом длился около 5 лет — с 1997 по 2002 годы. Ключи подбирались методом простого перебора, их было перепробовано почти 16 квинтиллионов! С учетом того, насколько быстрее с тех пор стали компьютеры, сейчас 64-битное шифрование уже не представляется настолько серьезным, как раньше. Тем временем проект занялся не менее полезным делом — взломом 72-битного ключа.

Разные распределенные сети занимаются разными задачами. Так, крупнейший в мире проект SETI@home (Search for ExtraTerrestrial Intelligence at home) занимался, как следует из его названия, «поиском внеземного разума не выходя из дома». Несколько миллионов компьютеров по всему миру, на которых был установлен SETI-скринсейвер, обрабатывали данные, полученные с мощных радиотелескопов, пытаясь найти в них сигналы от внеземных цивилизаций. Впрочем, недавно, 15 декабря 2005 года, проект был приостановлен. Создатели поблагодарили всех участников и сообщили, что инопланетян не нашли, и теперь примут участие в чем-то более полезном, а именно — присоединятся к проекту BOINC (The Berkeley Open Infrastructure for Network Computing) , который в настоящий момент занимается моделированием климата и вопросами глобального потепления на нашей планете (Climate Prediction).

Второй по величине в мире вычислительный проект, Folding@home, направлен на моделирование процесса сворачивания молекул белка. Раньше он носил название Genome@home.

Проект Grid.org занимается поиском лекарства от рака; многие другие проекты — проверкой математических гипотез (например, гипотезы Эйнштейна о гравитационных волнах с помощью анализа гравитационных полей звезд-пульсаров или нейтронных звезд).

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

Футурологический эпилог

Впрочем, возьмем на себя смелость дать прогноз самостоятельно. Все идет к тому, что пиринговая идеология основательно потеснит клиент-серверную. Способствовать этому будет грядущая интернетизация всех возможных приборов, механизмов и технологий (чему поспособствует IPv6, о котором мы писали в позапрошлом номере), а также введение универсальных электронных паспортов, которое, опять же, не за горами. Персональный e-паспорт человека станет основной идентификационной единицей, ключом для входа в любой сервис — «ручная» регистрация на каждом сайте или сервисе больше не понадобится. Отмена регистраций приведет к ненужности большинства централизованных серверов. Так, по своему электронному паспорту (который будет представлять собой разновидность смарт-карты) вы будете входить в ICQ, и этот паспорт сам по себе будет UIN-ом. То же будет относиться и к дневнику LiveJournal, и к Skype, плюс-минус технологические поправки. В сочетании с тем, что e-паспорт будет одновременно и ключом к банковскому счету, за каждый из этих сервисов можно будет сразу же заплатить. Чистый «пир-ту-пир»! Вот только мы опасаемся, что скачивать пиратский софт и музыку в пиринговых сетях в этом светлом будущем с помощью таких прекрасных технологий будет несколько не комильфо. Вот обрадуется Большой Брат!

Но… что-то нам подсказывает, что и тогда люди выкрутятся, и пиратство, замешанное на «человеческом факторе», в той или иной форме будет процветать. Только — правда, ужасно интересно — как?


1 Равные среди равных (лат.). (см. название статьи)

2 Ясно без слов; букв. «умному достаточно» (лат.).

3 Тут стоит, правда, оговориться: Skype, помимо прочего, предлагает услугу VoiceMail, в которой передача голоса именно откладывается, но это частный случай.

4 Некоторые из них описаны в статье «Поток» в «Мягкой рухляди» этого номера.

  • WordPress

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

e.motion