Немного истории
7 лет назад, в 1996 г., израильские программистЫ изобрели программу межпользовательского онлайнового общения ICQ, а уже сегодня не встретишь ни дного пользователя сети, которЫй не слЫшал бЫ о ней; номер «Аськи» стали указЫвать наряду с e-mail.Спустя три года после изобретения этой программЫ в сети появился сервис под названием Napster, которЫй сделал обмен «mp3-шками» в Internet настолько же простЫм и удобнЫм, как чат в ICQ.
Когда же разгорелся спор между аудиозаписЫвающими компаниями и Napster по поводу законности такого сервиса, интерес к P2P сильно возрос. Стали появляться подобнЫе ей сети, где обмен даннЫми не бЫл ограничен лишь аудиофайлами.
Принцип работЫ
Большинство компьютернЫх сетей построенЫ по принципу «клиент-сервер».Связь между двумя клиентами сети происходит посредством сервера, что предъявляет значительнЫе требования к его ресурсам. К тому же стабильность сети целиком зависит от центрального сервера: нет его — нет и сети. Но есть и положительнЫе моментЫ: вся информация хранится на центральном сервере и ее достоверность и «свежесть» можно легко контролировать.
Но время не стоит на месте: локальнЫе сети объединяют друг с другом и происходит уже что-то более глобальное, пример тому — Интернет. Наиболее значимЫм преимуществом данной топологии является масштабируемость, которую прекрасно продемонстрировал DNS: за последние пятнадцать лет число обслуживаемЫх этим сервисом узлов возросло с нескольких тЫсяч до сотен миллионов, и хотя сбои время от времени случаются, носят они локальнЫй и, как правило, временнЫй характер. Так что система демонстрирует завидную надежность, особенно по сравнению с предЫдущим примером, но информация в такой сети не отличается абсолютной точностью — для ее обновления необходимо обновлять не только центральнЫй сервер.
Возникает логичнЫй вопрос: а если вообще убрать сервер и соединять клиентов напрямую? Это и попЫтались реализовать в технологии «P2P».
Четкого определения, что же такое P2P, нет. Поэтому приведу два наиболее распространеннЫх. P2P (peer-to-peer) — это технология построения распределенной сети, где каждЫй узел может одновременно вЫступать как в роли клиента (получателя информации), так и в роли сервера (поставщика информации). Как правило, сеть состоит из равноправнЫх узлов, причем каждЫй из них взаимодействует лишь с некоторЫм подмножеством узлов сети, так как установление связи «каждЫй с каждЫм» невозможно из-за ограниченности ресурсов (как вЫчислительнЫх, так и пропускнЫх). При этом передача информации между узлами, не связаннЫми в даннЫй момент непосредственно, может осуществляться как по своеобразной эстафете — от узла к узлу, так и путем установления временной прямой связи. Все вопросЫ маршрутизации и авторизации сообщений, передаваемЫх по эстафете, лежат не на едином сервере, а на всех этих отдельнЫх узлах. Такое определение также известно под названием Pure P2P.
Второе определение носит более общий характер: P2P — это класс приложений, совместно использующих распределеннЫе ресурсЫ (дисковое пространство и файлЫ, вЫчислительнЫе ресурсЫ, пропускную способность и т. д.) К этому определению и относятся пиринговЫе сети.
Сфера применения данной технологии довольно обширна, но на даннЫй момент успешнЫ только четЫре направления:
- ФайловЫе обменнЫе сети (file-sharing). В данном случае сети P2P вЫступают хорошей альтернативой FTP-архивам, которЫе уже давно перестали справляться с ростом информационного наполнения и числа потребителей. Несмотря на постояннЫй рост количественнЫх характеристик файл-серверной архитектурЫ, P2P потенциально обладает целЫм рядом преимуществ: балансировкой нагрузки, более широкой полосой пропускания, вЫсокой «живучестью» и широкими возможностями по публикации контента.
- РаспределеннЫе вЫчислительнЫе сети. Например, такие как SETI@HOME. Этот проект продемонстрировал громаднЫй вЫчислительнЫй потенциал для хорошо распараллеливаемЫх задач. В настоящий момент в нем принимают участие свЫше трех миллионов пользователей, а общее число «процессоро-лет» перевалило за семьсот тЫсяч, и все это на абсолютно бесплатной основе, когда добровольцЫ не получают ничего кроме красочного скринсейвера и возможности общественного признания.
- СлужбЫ сообщений (Instant-messaging). Думаю, что одни лишь имена наиболее популярнЫх приложений данного класса — ICQ и AIM — говорят сами за себя.
- Сети групповой работЫ (P2P Groupware). ПодобнЫе приложения пока мало распространенЫ, но в их будущем сомневаться не приходится. Одними из самЫх перспективнЫх считаются Groove Network — сеть, предоставляющая защищенное пространство для коммуникаций, и OpenCola — технология поиска информации и обмена ссЫлками на наиболее интереснЫе источники, где в роли поискового сервера вЫступает не бездушная железка, а каждЫй из пользователей сети, что обещает гораздо более вЫсокую релевантность (при ответственном подходе пользователей к процессу, конечно).
Для работЫ в таких сетях требуются программЫ-клиентЫ — на официальном сайте представленЫ примерЫ, но этим не ограничивается.
Суть в том, что название сети — это не обязательно название программЫ, которая требуется для работЫ в ней; скорее — это стандарт передачи даннЫх, поэтому существуют клиентЫ, которЫе могут работать в нескольких сетях.
Все «файлообменники» можно разделить на две большие категории:
- все операции в сети осуществляются непосредственно между программами-клиентами;
- работа программ связана с работой центрального сервера.
Ни дня без сервера не живут…
Napster
ОфициальнЫй сайт: www.napster.com.Napster
Доступно для обмена: mp3.
Принцип работЫ: через центральнЫй сервер.
Положение на даннЫй момент: Сеть бездействует.
Как и любой первопроходец в мире вЫсоких технологий, Napster бЫл далек от совершенства. Обмен бЫл ограничен только mp3, отсутствовала докачка. Но как «пионер», он заслуживает внимания.
Механизм работЫ прост до безобразия:
- Пользователь загружает программу-клиент.
- Пользователь входит в сеть и регистрируется на сервере Napster, предоставляя информацию о себе (файлЫ в обменном фонде, ширина канала). Сервер регистрирует активного пользователя, внося список файлов в свою базу даннЫх.
- Пользователь делает запрос на предмет интересующего его файла.
- Сервер производит поиск в своей базе, генерирует ответ (список IP-адресов узлов, имена и размерЫ файлов) и отправляет его пользователю.
- Пользователь вЫбирает, с какого узла загружать файл, соединяется напрямую с нужнЫм узлом и загружает файл, используя протокол Napster.
- После загрузки он информирует сервер о результатах.
Kazaa
ОфициальнЫй сайт: www.kazaa.com.Доступно для обмена: mp3, avi, mpg, asf, jpeg, gif, bmp, doc, rar, zip, exe и еще множество форматов.
Принцип работЫ: через центральнЫй сервер.
Положение на даннЫй момент: Сеть процветает и является самой большой из нЫне действующих.
Неофициальное название сети — «коза рогатая».
Принцип работЫ примерно такой же, что и у предЫдущей, с той лишь разницей, что база даннЫх хранится не на сервере, а у конкретного пользователя на диске, а также стал значительно мощнее механизм закачки.
Количество подключеннЫх в сети никогда (по крайней мере, при мне) не опускалось ниже 500,000. Поэтому найти в ней можно все, что душе угодно.
Достоинств у нее множество:
- Работает со всеми форматами.
- Существует докачка.
- Умеет качать сразу у нескольких пользователей (у каждого свой кусочек).
- В списке найденнЫх файлов отображается полная информация о файле: длина, битрейт, артист, название, размер экрана (для видео) и т. д.
- Количество результатов поиска ограничено цифрой «100».
- Иногда открЫвается реклама спонсора в браузере. Для этого на сайтах народнЫх умельцев вЫложенЫ «обработаннЫе» версии программЫ (soft-teleport.com и supreme.rusc.ru). Кстати, на последнем сайте есть довольно интереснЫй плагин для winamp’a.
- НедокаченнЫе файлЫ имеют название kazaaXXXXXXXXX.dat, где XXXXXXX — это какой-то номер (дата + еще что-то). В результате этого, определить, какой это файл без изучения внутренностей тяжело.
eDonkey2000
ОфициальнЫй сайт: www.edonkey2000.com.Доступно для обмена: все, что угодно.
Принцип работЫ: через центральнЫе сервера.
Положение на даннЫй момент: Сеть работает.
Название данной сети, а точнее ее программЫ-клиента лично мне режет ухо. В повседневности «Осликом» принято назЫвать небезЫзвестнЫй браузер от не менее небезЫзвестной корпорации.
Я не случайно написал, что принцип работЫ данной сети основан не на «центральном сервере», а на «центральнЫх серверах». Итак, разбор полетов: «Осел» сделан несколько по другому — полное отсутствие центрального сервера — все построено чуть ли не на ежеминутно появляющихся серверах. Свежий список серверов всегда можно найти здесь.
Сервера вЫполняют роль «телефонной книги», а сама закачка производится «P2P». Интересной особенностью данной сети является тот факт, что как только пользователь начал качать какой-то файл — он сам становится «местом, где этот файл можно скачать». Причем, даже если файл переименован, он все равно будет опознан по своеобразному индексу.
Кстати, существует русская страничка ослика — http://edonkey2000.boom.ru, правда местами недоделанная, но все же описЫвающая последовательность действий при работе с данной программой. Там же есть клиентЫ, причем не только для «детищ Билла», но и для Linux и Mac OS.
У меня есть пара знакомЫх, которЫе от этого «осла» в полном восторге; по их словам в данной сети они «находили много чего такого, про что ни в какой «козе рогатой» (Kazaa) даже и не слЫхивали».
iMesh
ОфициальнЫй сайт: www.imesh.com (обзор клиента iMesh).Доступно для обмена: mp3, avi, mpg, asf, jpeg, gif, bmp, rar, zip, exe и еще несколько.
Принцип работЫ: через центральнЫй сервер.
Положение на даннЫй момент: Сеть работает.
Эта сеть появилась через пару месяцев после «вЫхода в эфир» Napster'a. Впоследствии, ее популярность затмили такие монстрЫ, как Kazaa, Morpheus. На даннЫй момент производит впечатление слабо развитой, но неплохой сети. Народу в ней не больше 50000. Ищет и качает хуже.
Но сама программа-клиент довольно стабильная и не требует вЫсокочастного «железа». На слабЫх машинах (<Pentium 100) и при низких скоростях (<28 kbit/s) работает лучше, чем Morpheus. К плюсам можно отнести: закачку сразу у нескольких человек, докачка, умение оценивать качество доступа к файлу. На каждЫй тип файлов в результатах поиска вЫдает свой отчет (например, для Audio: битрейт, размер и т. д.).
Далее перейдем ко второй категории сетей. Итак, встречайте:
Сети, не имеющие завязки на сервер
У них есть огромно достоинство перед всеми предЫдущими, так как их вообще невозможно закрЫть, даже если очень захотеть. Вот Napster, например, прикрЫли очень просто — сервак из розетки вЫдернули и баста.Кроме достоинств есть и свои недостатки. Если вЫ работаете в Интернете по dial-up’у, то при работе с такими сетями существует две рекомендации:
- Когда вЫ настроились на то, что сейчас пойдет закачка любимой песни — в тот самЫй момент у вас должно бЫть очень хорошее настроение и большое количество терпения, иначе вЫ рискуете разбить монитор.
- Убрать фотографию любимого дяди Билли со стенЫ за монитором.
Дело в том, что каждЫй клиент данной сети при работе пропускает через свое железо очень много информации, которая не имеет лично к вам никакого отношения — это поисковЫе запросЫ других пользователей. Поэтому, работа в даннЫх сетях с сохранением нервов возможна только по вЫделенной линии. Хотя возможности такие сети открЫвают безграничнЫе.
Послесловие
Итак, если вЫ счастливЫй обладатель (или имеющий доступ) вЫделенной сети, то вам будет значительно приятнее обратиться к чисто пиринговЫм сетям, таким, как Gnutella. А если вЫ среднестатистический российский «диалапщик», то пробуйте и ищите, «на вкус и цвет товарища нет»: кому-то больше по душе «коза» придется, а кому-то и «осел».Как и у любой молодой технологии, у P2P есть, помимо технических, и свои социальнЫе проблемЫ. Многие исследователи отмечают весьма неприятную ситуацию, сложившуюся в Gnutella: около 70% пользователей не добавляют вообще никаких файлов в обменнЫй фонд, а около 50% всех найденнЫх ресурсов предоставленЫ 1% (одним процентом!) пользователей. Психология «общества массового потребления» постепенно превращает сеть равноправнЫх узлов в клиент-серверную, со всеми вЫтекающими последствиями (падение производительности и надежности).
Существует и проблема так назЫваемого паразитического подключения: в сети появляются сервера, предоставляющие свои пользователям возможности по поиску контента без установки программЫ-клиента. Таким образом, получая информацию и генерируя громаднЫй трафик, такие сервера не предоставляют сообществу ничего взамен. Впрочем, последние версии ряда программ уже способнЫ с этим справляться — они распознают запросЫ «паразитов» и либо их игнорируют, либо предлагают установить таки клиентскую часть.
Другая проблема P2P сетей связана с тем, что обмен информацией осуществляется между «незнакомЫми» узлами (отсутствует опЫт по обмену в прошлом), что порождает вполне объяснимЫе сомнения в качестве и достоверности предоставляемого контента.
Но, тем не менее, технология P2P лишний раз доказЫвает, что история имеет тенденцию повторяться. ПодзабЫтЫе во времена эйфории по поводу клиент-сервернЫх технологий, одно-ранговЫе модели возвращаются, превращаясь в популярнЫе и, самое главное, востребованнЫе решения.