пірінгові мережі

Всі ми якимось чином ділимося інформацією з оточуючими нас людьми. У разі, коли ми ділимося файлами за допомогою програм типу eMule (емуль), eDonkey (еДонкі), і їм подібних, такого роду обмін пов'язаний з роботою величезної машини, принципи роботи якої, її витоки і ідеї, на яких вона побудована, ми часто уявляємо собі досить слабо.

Необхідність мати доступ до величезної кількості інформації, що лежить на інших комп'ютерах, спочатку породила локальні мережі. Це допомогло на деякий час, але об'єднати таким чином велику кількість комп'ютерів виявилося неможливо. Можливість же доступу до файлів, можливо наявних у кого-то ще, була дуже приваблива. Тому була запропонована система, що дозволяє приймати і передавати файли з кожного комп'ютера, з яким є зв'язок і на якому є певному програмному забезпеченню. Такі системи отримали назву п2п (p2p) або пірінгових (peer-to-peer) мереж. Це словосполучення можна перекласти як «рівноправний обмін». Це означає, що ви, маючи деякі файли, які можуть бути цікаві комусь ще, дозволяєте бажаючим їх у вас скопіювати, а натомість отримуєте можливість отримати файли, необхідні вам, від тих, у кого вони є.

Так як в даний час Інтернет отримує все більшу і більшу поширеність, використання пірінгових мереж є більш актуальною з кожним днем. Адже на сьогоднішній день знайти потрібний файл (улюблений фільм, нову програму для свого «електронного друга», яка щойно вийшла пісню улюбленої зірки, книгу і просто будь-якої Вас файл) набагато простіше, якщо ви знаєте що таке пірінгові мережі, і знаєте як ними користуватися.

Глава 1. Пірінгові мережі

1.1. загальне поняття

Однією з основних труднощів реалізації подібного обміну було те, що було необхідно якимось чином знайти тих, у кого є те, що вам потрібно. Для вирішення цієї проблеми існують два основні шляхи: централізоване і розподілене сервери. У разі роботи з централізованим сервером кожен користувач повинен зареєструватися на цьому сервері, який збере інформацію про користувача (файли, доступні для обміну, ідентифікатор користувача і т.д.), а потім внести цю інформацію в свою базу даних, по якій і буде в надалі йти пошук. Всі запитані користувачем файли, будуть шукатися в базі даних центрального сервера, а знайдені посилання будуть передаватися користувачеві для встановлення прямого зв'язку саме з тим комп'ютером, на якому є потрібна інформація. Саме на такому принципі працює популярна здавалося (KaZaa) та інші пирингові додатки. Описаний спосіб обміну файлами за допомогою одного або декількох центральних серверів заснований на так званому протоколі ФастТрак (FastTrack), який є комерційним, що кілька негативно впливає на розробку додатків, його використовують.

Коли центрального сервера не існує, використовується протокол Гнутелла (Gnutella), який передає запит користувача не центрального серверу, а безпосередньо іншим комп'ютерам мережі. Користувач є і клієнтом, і сервером пиринговой мережі. Такого роду системи менш вимогливі до прийому і реєстрації нових членів і відрізняються величезною швидкістю поширення запиту. Кількість опитаних джерел збільшується в геометричній прогресії. Прикладом програми, що використовує цей підхід, може служити Морфеус (Morpheus).

Після закриття напстер пирингові додатки стали з'являтися з дивовижною швидкістю і до теперішнього часу їх існує досить багато. Періодично одні гинуть, інші народжуються і перероджуються. Одним з найвідоміших в світі є здавалося, а в рунеті - різновиди емуль (eMule) і еДонкі (eDonkey).

Насправді, ослик і мул, як їх називають ті, хто ними користується, є в певному сенсі проміжними системами між розподіленими і централізованих системах: існують центральні сервера, які обробляють запити користувачів (осло- і муловодов відповідно), але таких серверів досить багато , що дозволяє з одного боку їх не перевантажувати, але з іншого боку дещо ускладнює пошук, так як оновлення і отримання інформації з інших серверів займає деякий час.

Як і в будь-якому співтоваристві, тих, хто користується пірінговимі мережами, існують деякі правила поведінки і правила хорошого тону. Вони прості і очевидні, але, на жаль, не завжди і не всіма виконуються.

Майбутнє пірінгових мереж в цілому бачиться досить райдужним. Пристрасть людей до обміну (безкоштовному) незнищенна. Пристрасть компаній до заробляння грошей також незнищенна. Виходить класичний випадок: єдність і боротьба протилежностей. Нічого протизаконного в самих мережах немає. Вони будуть будуватися і далі. А вже як буде вестися боротьба з піратським розповсюдженням матеріалів, покаже час.

1.2 Тимчасова мережа

Однорангові, децентралізовані або пірінгові (від англ. Peer-to-peer, P2P - один на один, віч-на-віч) мережі - це комп'ютерні мережі, засновані на рівноправ'ї учасників. У таких мережах відсутні виділені сервери, а кожен вузол (peer) є як клієнтом, так і сервером. На відміну від архітектури клієнт-сервер, така організація дозволяє зберігати працездатність мережі при будь-якій кількості і будь-якому поєднанні доступних вузлів.

Вперше фраза «peer-to-peer» була використана в 1984 році Парбауеллом Йохнухуйтсманом (Parbawell Yohnuhuitsman) при розробці архітектури Advanced Peer to Peer Networking фірми IBM.

Пристрій тимчасової мережі

Наприклад, в мережі є 12 машин, при цьому будь-яка може зв'язатися з будь-хто. Як клієнт (споживача ресурсів) кожна з цих машин може посилати запити на надання будь-яких ресурсів іншим машинам в межах цієї мережі і отримувати їх. Як сервер, кожна машина повинна обробляти запити від інших машин в мережі, відсилати то, що було запитано, а також виконувати деякі допоміжні і адміністративні функції.

Будь-член даної мережі не гарантує нікому своєї присутності на постійній основі. Він може з'являтися і зникати в будь-який момент часу. Але при досягненні певного критичного розміру мережі наступає такий момент, що в мережі одночасно існує безліч серверів з однаковими функціями

Частково децентралізовані (гібридні) мережі

Крім чистих P2P-мереж, існують так «гібридні мережі», в яких існують сервера, використовувані для координації роботи, пошуку або надання інформації про існуючі машини мережі і їх статус (on-line, off-line і т. Д.). Гібридні мережі поєднують швидкість централізованих мереж і надійність децентралізованих завдяки гібридним схемам з незалежними індексаційних серверами, що синхронізують інформацію між собою. При виході з ладу одного або декількох серверів, мережа продовжує функціонувати. До частково децентралізованих файлообмінними мережами відносяться наприклад EDonkey, BitTorrent.

Частково децентралізовані (гібридні) мережі

Крім чистих P2P-мереж, існують так звані гібридні мережі, в яких існують сервера, використовувані для координації роботи, пошуку або надання інформації про існуючі машини мережі і їх статус (on-line, off-line і т. Д.). Гібридні мережі поєднують швидкість централізованих мереж і надійність децентралізованих завдяки гібридним схемам з незалежними індексаційних серверами, що синхронізують інформацію між собою. При виході з ладу одного або декількох серверів, мережа продовжує функціонувати. До частково децентралізованих файлообмінними мережами відносяться наприклад EDonkey, BitTorrent.

1.3 Пірінгова файлообмінна мережу

Одна з областей застосування технології пірінгових мереж - це обмін файлами: користувачі мережі викладають які-небудь файли в «розшарений» (англ. Share) папку, файли з якої доступні для скачування іншим клієнтам. Інший користувач мережі посилає запит на пошук якого-небудь файлу. Програма шукає у клієнтів мережі файли, відповідні запиту, і показує результат. Після цього користувач може завантажити файли у знайдених джерел. Сучасні файлообмінні мережі дозволяють завантажувати один файл відразу з декількох джерел (так швидше і надійніше). Щоб переконатися, що цей файл у всіх джерел однаковий, проводиться порівняння: за назвою файлу, по контрольних сумах або хеш типу MD4, TTH, SHA-1. Під час завантаження файлу користувачем (і після його закінчення) цей файл у нього можуть завантажувати і інші клієнти мережі, в результаті чого особливо популярні файли можуть в результаті бути доступними для скачування з сотень джерел одночасно.

-Кожен клієнт пов'язаний з одним з серверів мережі. Клієнт повідомляє серверу, які файли він надає в загальний доступ. Кожен сервер підтримує список всіх загальних файлів клієнтів, підключених до нього. Коли клієнт щось шукає, він посилає запит своєму основного сервера. У відповідь сервер перевіряє всі файли, які йому відомі, і повертає клієнтові список файлів, що задовольняють його запиту.

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

Крім того, посилання на файли публікуються на різних форумах в Інтернеті, у вигляді так званих «релізів».

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

Принцип роботи: Client Z має всі частини файлу (символи малих літер представляють частини файлу). Client W, X, і Y хочуть завантажити Файл. Починаючи з Client X і Client Y, обидва мають різні частини файлу, вони можуть не тільки отримати файл від Client Z, а й можуть посилати файл один одному. Це дозволяє файлу бути розподілений поширеним набагато швидше без того, щоб використовувати більшу кількість ширини каналу Client Z. Client W може запустити завантаження файлу, навіть якщо джерело файлу (Client Z) більше не має достатньої ширини каналу для відсилання.

-Періодично сервери зв'язуються один з одним на короткий час. Під час цього сеансу зв'язку сервер, оголошуючи про своє існування, посилає список всіх інших відомих йому серверів. Таким чином, сервери підтримують список інших активних серверів. Коли клієнт підключається до сервера, сервер може видати йому список відомих йому серверів.

Популярні файлообмінні мережі:

- BitTorrent (букв. Англ. «Потік бітів») - пірінговий (P2P) мережевий протокол Коена для кооперативного обміну файлами через Інтернет.

Не менш популярна файлообмінна мережу. Файли передаються частинами, кожен torrent-клієнт, отримуючи (закачуючи) ці частини, в цей же час віддає (підкачує) їх іншим клієнтам, що знижує навантаження і залежність від кожного клієнта-джерела і забезпечує надмірність даних. Відрізняється високою швидкістю і централізованість. Деякі BitTorrent клієнти підтримують DHT і можуть працювати без центрального сервера (т. Н. Трекера). Підтримується клієнтами BitComet. μTorrent. FreeDownloadManager і ін.

- Kad Network - децентралізована безсерверная файлообмінна мережу. яка використовує протокол оверлейной сетіKademlia. Підтримується в eMule (Kad 2.0), aMule і MLDonkey. При передачі файлів, підключення клієнтів відбуваються безпосередньо один з одним (використовуючи стандартні IP-мережі). Як тільки відбувається з'єднання з мережею, клієнт запитує інших клієнтів, щоб визначити, чи може він вільно з ними з'єднатися. Цей процес схожий на визначення HighID / LowID на серверах. Якщо ви можете вільно з'єднуватися, вам дається ID (високий, HighID) і отримуєте статус open в Кад мережі. Якщо ви не можете з'єднуватися вільно, ви отримуєте статус firewalled (відповідно LowID).

Виникнення пірінгових мереж пов'язано з трьома факторами.

Процесор звичайної клієнтської машини мало завантажений. Особливо в офісах, де машини використовуються переважно для підготовки документів, для набору текстів і т.п. Те ж стосується і переважної більшості домашніх комп'ютерів.

Багато користувачів зберігають на своїх комп'ютерах колекції фото (тексти статей певної тематики, художні фотографії та ін.), Які можуть бути цікаві й іншим користувачам. Але при цьому власники цих колекцій не готові зробити свій комп'ютер повноцінним сервером в мережі через його недостатню потужність, необхідності цілодобової роботи, фінансових та інших причин.

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

З математичної точки зору пірінгова мережу може бути представлена ​​графом невизначеного виду: немає будь-якої стандартної архітектури мережі (наприклад, зірки або кільця). Більш того, цей граф - динамічний, так як окремі користувачі включаються в мережу і виходять з її складу в довільні моменти часу. Будь-який користувач, який грає роль сервера, в будь-який момент часу може перетворитися на покупця на певний відрізок часу. Але може і перебувати одночасно в положенні і сервера і клієнта.

Дослідження в області пірінгових мереж почалися в зв'язку з успішним функціонуванням таких систем як Napster, Gnutella і Freenet.

Napster - гібридна система, оскільки використовує централізований індекс для пошуку. Система Gnutella - чиста пірінгова система. Її архітектура така, що кожен вузол з невисокими швидкостями комутації може мати до чотирьох сусідів, потужні ж вузли можуть мати десятки сусідів. Зрозуміло, чим більше сусідів, тим швидше може бути пошук. Але тут є такі ж технічні обмеження, як і в багатопроцесорних комп'ютерах: занадто накладно з'єднувати кожного з кожним. З'єднання в системі не спрямовані (неорієнтований граф). Система Gnutella використовує пошук в ширину, переглядаючи спочатку все сусідні з ініціатором вузли. Кожен вузол, який отримав запит, поширює його своїм сусідам максимум на d кроків.

Перевага пошуку в ширину полягає в тому, що переглядаючи значну частину мережі, він збільшує ймовірність задоволення запиту. Недоліком є ​​перевантаження мережі зайвими повідомленнями.

Більшість існуючих систем підтримують тільки "булеві" запити. Кожен файл характеризується його метаданими (наприклад, набором ключових слів) і запит формується як набір ключових слів. Внаслідок цього результат пошуку може бути двухваріантним: "знайдено", "не знайдено".

електронні ресурси

Схожі статті