Все відбувалося швидко. Це єдине, чим можна описати зліт Napster. Менш ніж за дванадцять місяців сайт виріс із нуля до 60 мільйонів щомісячних відвідувачів. Він був не просто популярним. У період свого піку це був відвідуваний сайт в інтернеті. Потім втрутилися суди. Одна єдина судова заборона поклала край його роботі через масові порушення авторських прав. Napster не з’являвся знову до 2003 року, коли був ребрендингований як легальний сервіс з продажу музики під брендом Roxio.
Привабливість була простою. Ви отримували безкоштовну музику. Вам не потрібно було їхати до магазину. Вам не потрібно було купувати CD, вставляти його в привід і чекати, доки трек буде скопійовано. Ви просто натискали кнопку. Величезна база даних містила практично всі будь-коли створені пісні. Це було просто. Це було безплатно.
Але ця простота мала власну ціну. Архітектура стала фатальним недоліком.
Napster спирався на центральний сервер для індексації та з’єднання користувачів. Ця централізована модель полегшувала пошук музики, але й робила його легкою метою знищення. Коли суди ухвалили, що Napster сприяє порушенню авторських прав, виключення було хірургічно точним. Вимкніть сервер, і вся мережа зникне. Жодної резервної копії. Жодного децентралізованого резервного варіанту. Лише тиша.
Користувачів не хвилювали юридичні аспекти. Їх хвилював доступ. Більшість мігрувало на іншу систему обміну файлами. На ту, яку не можна було так легко вбити.
Сходження Gnutella
На сцену виходить Gnutella.
То була альтернатива. То був не просто інструмент; це була інша філософія. Замість центрального вузла Gnutella використовувала однорангову (P2P) мережу. Кожен комп’ютер у мережі був і сервером, і клієнтом. Не було жодної точки відмови. Щоб вимкнути її, довелося б вимкнути комп’ютер кожного окремого користувача.
Саме ця децентралізована архітектура дозволила Gnutella вижити. Навіть у міру того, як суди посилювали боротьбу з іншими сервісами, Gnutella продовжувала існувати. Вона адаптувалася. Вона еволюціонувала. Вона стала основою для багатьох сучасних P2P-протоколів.
Оригінальний Napster був магазином без замків. Gnutella була лабіринтом без центру. Один легко пограбувати. Іншого важко зловити.
Новий Napster
До 2003 року ландшафт змінився. Roxio купила права на назву Napster і перезапустила його. Версія 2 була легальною. Ви платили за свою музику. Жодних більше порушень. Це був чистіший продукт. Безпечніший. Але у ньому не вистачало сирої, хаотичної енергії оригіналу. Магія полягала у музиці. Вона була у свободі.
Старий Napster навчив нас дечому. Централізація ефективна, поки не перестає бути такою. Децентралізація хаотична, але стійка. Ми дізналися про це на власному гіркому досвіді.
Тепер, коли ви слухаєте пісню в потоковому режимі, ви платите за зручність. Ви використовуєте централізоване обслуговування. Spotify. Apple Music. YouTube Music. Вони прості у використанні. Вони безпечні. Вони також уразливі. Одна компанія контролює бібліотеку. Одна компанія контролює доступ.
Gnutella показала нам інший шлях. Шлях, де мережа є продуктом. Де користувачі є інфраструктурою. Це повільніше. Це складніше. Але це вільно від єдиної точки контролю.
Який

Як однорангові мережі еволюціонували від Napster до Gnutella
Стандартний перегляд веб-сторінок – це проста транзакція. Ви запитуєте файл у сервера і сервер відправляє його назад. Для великих сайтів це потребує сотень машин, щоб просто підтримувати роботу інфраструктури. Napster повністю зруйнував цю модель. Він просто розміщував файли; він перетворив комп’ютер кожного користувача на вузол величезної децентралізованої мережі розповсюдження.
Початкова версія Napster була гібридною системою. Вона використовувала одноранговий (P2P) обмін файлами для фактичної передачі, але спиралася на центральний орган для пошуку. Під час запуску програмного забезпечення комп’ютер реєструвався на центральних серверах Napster. По суті ви додавали свої доступні MP3-файли в глобальний каталог.
Ось як це працювало:
– Ви встановлювали клієнтську програму. Ваш комп’ютер ставав міні-сервером.
– Ваш комп’ютер надсилав запити на центральні сервери, передаючи список усіх треків на жорсткому диску.
– У центральній базі даних тепер зберігався індекс мільярдів пісень.
– Ви шукали «Roxanne» гурту The Police.
– Центральний сервер повертав список IP-адрес користувачів, у яких був цей файл.
– Ви обирали однорангового вузла. Ваш комп’ютер підключався безпосередньо до комп’ютера і скачував пісню.
Ця архітектура вирішила дві нагальні проблеми. По-перше, зберігання. Жодна компанія не могла купити достатньо місця на жорстких дисках, щоб умістити весь світовий музичний каталог. По-друге, пропускна спроможність. Розподіл навантаження серед мільйонів домашніх підключень був нескінченно дешевшим, ніж потокова передача з дата-центру.
Тут також була присутня юридична стратегія. Творці стверджували, що використовують лазівку в законодавстві про авторське право, що стосується приватного обміну між друзями. Суди зрештою відкинули цю логіку. Але збитки вже було завдано. Концепція була підтверджена. Мережа стала надто великою, щоб її ігнорувати.
Недолік дизайну Napster був очевидним заднім числом. Центральна база даних була єдиною точкою відмови. То була ахіллесова п’ята. Коли суд наказав закрити мережу, вся інфраструктура впала. Ви не можете мати однорангову мережу, якщо індекс для неї належить одному суб’єкту, якого можна юридично змусити мовчати.
На момент падіння Napster близько 100 мільйонів користувачів звикли вільно обмінюватися файлами. Інфраструктура для такої поведінки вже була готова. На підступах чекала стійкіша архітектура.
Чому Gnutella змінила правила гри
Наступником цієї хвилі обміну файлами стала мережа Gnutella. Вона зберігає основну механіку однорангового обміну файлами, але усуває центральний вузол. Користувачі, як і раніше, розміщують файли на своїх жорстких дисках і роблять їх доступними. Вам, як і раніше, потрібно програмне забезпечення Gnutella для підключення до мережі.
Відмінності носять структурний та суттєвий характер.
По-перше, немає центральної бази даних. Концепція глобального індексу мертва. Натомість Gnutella використовує розподілений підхід до пошуку. Коли користувач шукає файл, запит передається від вузла до вузла, перестрибуючи по мережі, доки знайде збіг. Це ефект брижі запитів.
По-друге, екосистема фрагментована. Немає єдиного «клієнта Gnutella». Багато різних програм можуть отримувати доступ до мережі Gnutella. Ця різноманітність ускладнює націлення на конкретне програмне забезпечення для судових позовів.
Ця децентралізація забезпечує ступінь безсмертя, якого не було у Napster. Судовий наказ проти однієї компанії нічого не робить, щоб зупинити протокол. Щоб дійсно закрити Gnutella, регулятори мали б заблокувати весь мережевий трафік на рівні інтернет-провайдера або магістральної інфраструктури. Це технічний і політичний жах у порівнянні з простою подачею до суду на генерального директора компанії, яка володіє централізованим сервером.
Перехід від централізованого індексу до розподіленої системи пошуку не просто технічним поліпшенням. Це була відповідь на крихкість старої моделі.

Napster покладався на єдине, тендітне клієнтське програмне забезпечення. Gnutella не мала такої розкоші, або, точніше, мала занадто багато свободи. Мережа розкололася на десятки конкуруючих програм. Ви могли вибрати BearShare, Gnucleus, LimeWire, Morpheus, WinMX чи XoloX. Інтерфейс міг виглядати по-різному, але логіка, що лежить в основі, була однаковою: знищити центральний авторитет.
Але без центрального індексу мережі потрібен метод пошуку файлів. Саме тут механізм пошуку клієнтів Gnutella різко відрізняється від традиційної моделі «сервер-клієнт».
Як клієнти Gnutella знаходять файли
Уявіть, що ви хочете знайти конкретний файл MP3. Бібліотеки для перевірки немає. Натомість ваше програмне забезпечення має «кричати» у порожнечу.
Процес починається з однієї точки контакту. Можливо, ви ввели вручну IP-адресу, або програмне забезпечення було попередньо завантажено списком відомих хостів. Ваш комп’ютер надсилає запит на пошук цього сусіда.
Сусід не просто відповідає. Він перевіряє свій власний жорсткий диск. Якщо файл там є, він відправляє назад ім’я файлу і вашу IP-адресу. Але він також робить щось агресивніше. Він надсилає ваш запит усім іншим машинам, про які він знає.
Ці машини роблять те саме. Вони перевіряють своє сховище. Вони надсилають запит далі. Це створює ефект брижів, хвилю запитів, що розширюється назовні через мережу.
Система покладається на лічильник «Час життя» (TTL), щоб запобігти нескінченним циклам.
Кожен запит має ліміт TTL. Думайте про це як датчик рівня палива. Запит може пройти шість чи сім «хопів» (кроків), перш ніж у нього закінчиться «паливо». Якщо кожен вузол знає лише чотирьох інших бенкетів, пошук глибиною в сім рівнів теоретично може охопити 8000 машин.
Це грубе розподілене обчислення. Просто. Винахідливо. І виснажливо.
Компроміс: стабільність проти продуктивності
Ця архітектура вирішує головну проблему свого попередника. Napster помер, оскільки один сервер володів ключами. Gnutella не має ключів. Немає єдиної точки відмови. Жодний судовий наказ не може знищити мережу, бо нема чого відрубати. Gnutella працює завжди, за умови, що ви можете зв’язатися хоча б з одним іншим бенкетом.
Але децентралізація має власну ціну.
По-перше, немає гарантії, що файл існує. Ви можете надіслати свій запит на 8000 машин і отримати нульові збіги. Файл може знаходитись на машині номер 8001. Ви сліпі.
По-друге, затримка (латентність) жорстока. Оскільки запит повинен поширюватися через кілька рівнів, ви можете чекати на повну відповідь хвилину або більше. Система не повідомляє вам, що вона знайшла, доки не перевірить максимально можливу глибину.
По-третє, ви є інфраструктурою. Ваш комп’ютер – це не просто споживач; це маршрутизатор. Він відповідає на вхідні запити та передає вихідні далі. Ви витрачаєте свою власну пропускну здатність, щоб підтримувати живу мережу. Це пірингова система в буквальному значенні: ви допомагаєте іншим бенкетам, часто за власний рахунок.
Ці недоліки здаються серйозними теоретично. На практиці користувачам було байдуже. Мільйони копій клієнтів Gnutella були завантажені. Обіцянка доступу переважувала вартість пропускної спроможності.
Приклад XoloX: Пошук

XoloX – це максимально спрощений клієнт для мережі Gnutella. Він не намагається вразити вас яскравими інтерфейсами чи складними функціями. Він просто працює. Розмір завантажувального файлу крихітний – близько 600 кілобайт, і, що важливо, він чистий. Жодного шпигунського ПЗ. Жодних вбудованих спливаючих вікон. Це простий інструмент, який легко встановити, що робить його ідеальним кандидатом для вивчення механіки однорангових мереж без зайвого баласту.
Інтерфейс зводиться до трьох основних функцій, доступних через три кнопки у верхній частині вікна: пошук, передача та керування файлами. Ви перемикаєтеся між ними за необхідності.
Як працює пошук Gnutella в XoloX
При відкритті вкладки пошуку все виглядає майже просто. Введіть ім’я або кілька ключових слів. Ви можете відфільтрувати результати за типом медіа – аудіо, відео або “Всі типи” – якщо хочете звузити область пошуку. Натисніть Enter і клієнт відправить ваш запит в ефір.
Зачекайте 30-60 секунд.
Вікно пошуку почне заповнюватись. Результати будуть надходити від тисяч інших комп’ютерів, які опрацьовують той самий запит. Це відбувається миттєво, але ефективно.
Ви помітите стовпець з міткою score. Це не рейтинг якості файлу. Це кількість онлайн-бенкетів, у яких на даний момент доступний цей конкретний файл. Висока швидкість означає більше джерел. Більше джерел означають найкращі шанси успішно завершити завантаження, особливо якщо мова йде про популярний файл. Вибирайте wisely.
Приклад роботи XoloX: Завантаження

Отримання файлу з одноранговій мережі не завжди зводиться до простого кліку та очікування, але XoloX робить цей процес переважно безболісним. Просто двічі клацніть на цільовому файлі в результатах пошуку. Ця дія передає ім’я файлу у вікно “Передача”, яке ініціює фактичне рукостискання з вузлом-джерелом.
Тут протокол демонструє свої найкращі якості. Якщо один і той же файл зберігається на кількох вузлах мережі, XoloX не вибирає один із них випадковим чином. Він підключається до кількох вузлів одночасно. Саме завдяки такій стратегії паралельного завантаження ви можете спостерігати швидкості, наприклад, 69,2 КБ/с для великого відеофайлу, оцінка часу завантаження понад 100 МБ становить близько 43 хвилин. Це використання надмірності даних дозволяє подолати вузькі місця.
Але не завжди все відбувається гладко.
Іноді ви натискаєте на файл, і нічого не відбувається. Клієнт не може підключитись до джерела, або хост-машина вже максимально завантажена обслуговуванням інших користувачів. Це класична пробка в одноранговій мережі. У вас є три способи впоратися з цією ситуацією:
- Почекати. Зайняті вузли зрештою звільняються. Терпіння тут цілком допустима стратегія.
- Вибирати файли з високим рейтингом. Файли з найкращою репутацією з більшою ймовірністю будуть надані чуйними та доступними вузлами.
- Замінити файл. Видаліть завантаження з вікна «Передача» і знову виберіть файл з тим же ім’ям у результатах пошуку. Це змусить клієнт спробувати інший вузол, який може бути менш завантаженим.
Після завершення завантаження дані зберігаються у вказаній директорії XoloX. Ви також можете переглянути їх у вікні “Файли” всередині програми. Якщо ви хочете зробити свій внесок у мережу, ви можете поділитися цими завантаженими файлами. Однак це не відбувається автоматично. Вам необхідно налаштувати діалог «Налаштування», щоб вказати, які саме каталоги та типи файлів ви готові надавати іншим користувачам.


Ви контролюєте навантаження на своє з’єднання. Налаштувавши параметри XoloX, ви можете обмежити вихідну пропускну здатність, яку він використовує, коли інші завантажують файли з комп’ютера. Цей простий перемикач запобігає навантаженню вашого вихідного каналу запитами даних від інших користувачів.
Чи законний Gnutella насправді?
Сам протолегітимний. Не існує закону, що забороняє обмін “файлами з суспільного надбання”. Незаконним використання мережі стає лише тоді, коли користувачі застосовують її для поширення захищеної авторським правом музики та фільмів. Саме цей конфлікт спричинив крах Napster.
Музична промисловість офіційно оголосила війну Gnutella. Однак вони не мають простого механізму, щоб зупинити це.
Як індустрія намагається зруйнувати мережу
Поточна стратегія полягає у порушенні архітектури. В даний час застосовуються дві основні атаки:
- засмічення мережі підробленими пошуковими пакетами для її перевантаження.
- Заповнення серверів Gnutella пошкодженими файлами, які не мають жодної цінності.
Але розробники Gnutella вже витримували такі загрози. Швидше за все, вони закриють ці вразливості. Програмне забезпечення адаптується. Файли продовжать поширюватись.
Чи є обмін просто крадіжкою чи безкоштовною рекламою?
Головна суперечка має не технічний, а фінансовий характер. Які реальні збитки завдають обмін файлами? Чи є спільний файл крадіжкою чи безкоштовною рекламою? Подумайте про це як про радіоефір. Чи сприяє популярність продажам чи шкодить їм?
Часті питання
Що таке протокол Gnutella?
Це протокол однорангового (P2P) обміну файлами. Він дозволяє користувачам шукати та обмінюватися файлами безпосередньо з іншими комп’ютерами, без використання центрального сервера для зберігання інвентарю.
Додаткові ресурси
Якщо ви хочете глибше розібратися в питаннях законності або побачити різні точки зору обміну захищеною авторським правом музикою, наведені нижче посилання нададуть більше контексту.
Статті по темі
- Як працюють MP3-файли
- Як працюють MP3-плеєри
- Як працював Napster
- Як працюють веб-сервери
- Як працюють жорсткі диски
- Як працюють CD-рекордери
- Як працює інтернет-інфраструктура
- Як працює домашня мережа
- Що таке авторські права та патенти?
Корисні посилання
- Каталоги хостів Gnutella
- Kazaa
- Часті питання Gnutella від Knowbuddy
- Новини Gnutella
- Код пошуку PHP для Gnutella
- Інтернет-катастрофа: Альтернативна точка зору
- Embedded.com: Впровадження однорангових мереж
Останні новини
- MTV.com: Музична індустрія подає до суду на 32 студентів за незаконний обмін файлами – 10/04
- Нова хвиля позовів RIAA про незаконний обмін файлами – 4/04
- Tom’s Hardware Guide: Опитування: Обмін музичними файлами знижується – 4/04
- WiredNews: Roxio купує Pressplay, Napster продовжує жити – 5/03
- NewScientist.com: «Випадкові блукаючі» можуть прискорити однорангові мережі – 7/02
- Gnutella.com: Лейбл планує юридичну атаку на приватних осіб? – 7/02
- Gnutella.com: Голлівуд хоче закрити «аналогову дірку» – 5/02
- P2P.com: Gnutella і Freenet є справжнім технологічним нововведенням – 5/00








































