Peer to сервіс. Технології Peer-to-Peer — із попелюшки до принцеси

Безкоштовний P2P-клієнт з відкритим кодом для роботи з мережею Direct Connect. Дозволяє вільно завантажувати файли, розшаровані іншими користувачами цієї мережі.

Про пірингові мережі (p2p)

Мережа Direct Connect за своєю структурою чимось нагадує той самий BitTorrent.

ХабХаб (англ. hub, маточина колеса, центр) - вузол мережі.

Трекер- сервер мережі BitTorrent, що координує клієнтів.

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

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

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

Принцип роботи мережі має бути загалом зрозумілий. Тепер почнемо розгляд самого клієнта для Direct Connection.

Установка StrongDC++

Завантаживши архів з програмою, запускаємо файл, що виконується, і програма встановиться в папку « Program files» на комп'ютері.

Якщо в кінці установки Ви не прибрали відповідну галочку, програма автоматично запуститься.

Ця версія вже російською мовою, але якщо Ви завантажили англійську версію, то русифікувати програму можна за допомогою відповідного файлу з розширенням xml, що лежить у нашому архіві з програмою.

Коли русифікатор завантажений, його потрібно встановити. Для цього вибираємо в меню налаштувань програми пункт «Appearance» та у полі Language fileнатисніть кнопку «Browse», щоб вибрати розташування файлу sDC+++russian.xml(Назва файлу русифікатора).

Після проведення всіх маніпуляцій перезапустіть програму та отримайте повнофункціональну російську версію!

Налаштування StrongDC++

Тепер налаштуємо вже російську версію Strong DC++.

Нік- Унікальне ім'я в системі.

У меню "Загальні" слід вказати свій нік, E-mail, а також швидкість віддачі файлів. Поле "Опис" можна залишити порожнім (це типу Ваш коментар).

IP-адреса- цифрова адреса комп'ютера в мережі, наприклад: 192.0.3.244.

У «Налаштуваннях з'єднання» можна вказати свою IP-адресу та деякі інші дані. Зверніть увагу на «Налаштування вхідних з'єднань».

Краще використовувати пасивне з'єднання через фаєрвол (інакше файли інших користувачів у Вас не відображатимуться).

Проксі-сервер- Проміжний сервер.

Трафік вихідних з'єднань можна перенаправити на проксі сервер, а можна залишити безпосередньо (швидкість буде вищою).

Потім виберемо пункт «Скачка» та налаштуємо папки для скачки за замовчуванням та для зберігання тимчасових файлів.

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

Після того, як Ви оберете будь-який файл, у Вас з'явиться наступне вікно прогресу.

Початок роботи з StrongDC++

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

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

Для цього слід натиснути кнопку «Інет хаби» на панелі інструментів, а далі вибрати один зі списків інет хаб-листів та натиснути кнопку «Оновити».

Користувач(англ. user) - Користувач.

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

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

Зверніть увагу на наявність закладок під головним вікном. За допомогою цих закладок Strong DC++ здійснюється вся навігація. Керувати закладками можна натисканням правої кнопки миші.

Інтерфейс StrongDC++

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

Праворуч від чату знаходиться перелік користувачів, які в даний моментприсутні на хабі. Кольори, якими написані імена користувачів, несуть додаткову інформацію.

Ручний пошук файлів для скачування

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

Тепер, коли в «Статусі» з'явиться сигнал про те, що список файлів завантажено, внизу відкриється ще одна закладка, на якій можна буде подивитися, які файли знаходяться на комп'ютері у вибраного користувача.

Щоб завантажити вибраний файл, натисніть на ньому правою кнопкою миші та виберіть – Завантажити.

Так само ми робимо, користуючись пошуком. У пошуковому рядкувводимо назву потрібного нам файлу та чекаємо.

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

Висновки

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

В цілому ж система дуже цікава, а зручною її робить використання програми StrongDC++.

P.S. Дозволяється вільно копіювати та цитувати цю статтю за умови вказівки відкритого активного посилання на джерело та збереження авторства Руслана Тертишного.

P.P.S. Попередниками мережі P2P були FTP-сервери, до яких найзручніше підключатися за допомогою цієї програми:
FTP-клієнт FileZilla https://www..php

Розвиток інтернету та його широке поширення по всьому світу дозволило обмінюватися різною інформацією з досить великою швидкістюна великій відстані. Серед багатьох традиційних засобів обміну інформацією, все більшої популярності набувають так звані P2P мережі. Що ж вони являють собою?

Саме поняття P2P (у перекладі «рівний рівному») передбачає безпосередній обмін інформацією між рівноправними учасниками. За мережами, що належать до цього протоколу, закріпилися інші назви: піринговий, одноранговий.

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

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

Сучасні гібридні P2P мережі використовують сервер не для зберігання інформації, а для розподілу роботи мережі та об'єднання клієнтів. Велику популярність здобули такі пірингові протоколи BitTorrent, eDonkey та Direct Connect.

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

Найбільш популярними BitTorrent клієнтами виступають: Deluge, uTorrent, Vuze, Transmission, BitComet, Shareaza та низка інших. Для мереж Direct Connect призначено клієнтів: StrongDC++, FlylinkDC++, ApexDC++.


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

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

Що таке P2P чи однорангова мережа?

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

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

Крім того, кожен ресурс, доступний у піринговій мережі, є спільним для всіх вузлів без центрального сервера. Загальними ресурсами у мережі P2P можуть бути:

  • Процесорні потужності
  • Дисковий простір
  • Пропускна спроможність мережі

Що роблять мережі P2P (peer-to-peer)?

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

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

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

Чому однорангові мережі корисні?

Мережі P2P мають кілька особливостей, які роблять їх корисними:

  • Їх важко «впустити», тобто вивести з робочого стану. Навіть якщо ви відключите одного бенкету, інші продовжують працювати та взаємодіяти. Щоб мережа перестала працювати, ви повинні закрити всі бенкети.
  • Пірингові мережі є надзвичайно масштабованими. Нові бенкети легко додаються, тому що вам не потрібно змінювати конфігурацію на центральному сервері.
  • Коли справа доходить до обміну файлами, то чим більше однорангова мережа, тим швидше це відбувається. Наявність одного і того ж файлу, що зберігається на багатьох однорангових вузлах в децентралізованій мережі, означає, що коли комусь потрібно його завантажити, файл завантажується з багатьох місць одночасно.

Навіщо потрібні пірінгові сіті? Легальне використання P2P мереж

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

  • Коли у вашому домі підключаєте пристрій Windows до домашньої групи комп'ютерів, ви створюєте між ними однорангову мережу. Homegroup – невелика група комп'ютерів, які пов'язані між собою для спільного використання дискового простору та принтерів. Це одне із найпоширеніших застосувань для однорангової технології. Деякі люди можуть сказати, що домашні групи не можуть бути однорангові, оскільки комп'ютери в мережі підключені до маршрутизатора. Однак майте на увазі, що маршрутизатор не пов'язаний саме з керуванням мережі. Маршрутизатор не працює як сервер, а просто як інтерфейс чи сполучна ланка між локальною мережеюта Інтернетом.
  • Коли ви створюєте мережу між двома комп'ютерами, ви створюєте мережу пірингу.
  • Спільне використання великих файлівв інтернеті часто виконується за допомогою мережевої архітектури P2P. Наприклад, деякі онлайн-ігрові платформи використовують мережу P2P для завантаження ігор між користувачами. Blizzard Entertainment поширює Diablo III, StarCraft II та World of Warcraft з використанням P2P. Інший великий видавець, Wargaming, робить те саме зі своїми іграми World of Tanks, World of Warships та World of Warplanes. Інші, такі як Steam або GOG, воліють не використовувати P2P, а підтримувати виділені сервери по всьому світу.
  • Оновлення Windows 10 постачаються як із серверів Microsoft, так і через мережу P2P.
  • багато операційні системи Linux розповсюджуються через BitTorrent, які використовують однорангові мережі. Такими прикладами є Ubuntu, Linux Mintта Manjaro.
  • І, нарешті, технологія блокчейн використовує однорангові децентралізовані мережі для запису інформації в розподіленому реєстрі на всіх комп'ютерах мережі одночасно. (Детальніше читайте у статтях « Що таке блокчейн простими словами?» та « Що таке розподілений реєстр? »)

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

Історія мереж P2P

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

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

Хоча Napster був тим, хто вивів P2P у мейнстрім, проект зрештою зазнав невдачі і був закритий владою через незаконне розповсюдження контенту.

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

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

Незаконне використання однорангових мереж

P2P – спірна технологія, тому що вона широко використовується для піратства. Через переваги цієї технології існує безліч веб-сайтів в Інтернеті, які пропонують доступ до захищеного авторським правом контенту, наприклад, кіно, музики, програмного забезпечення або ігор через мережі P2P. Хоча сама технологія не є незаконною та має безліч легальних варіантів застосування, які не пов'язані з піратством, те, як деякі люди використовують P2P, є незаконним.

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

Peer-to-peer (P2P) технології, безсумнівно, є однією з найпопулярніших тем на сьогоднішній день. Популярність, досягнута за допомогою таких систем як Napster, Gnutella, Edonkey, Emule, Kazaa та список таких програм можна продовжувати та продовжувати, підтверджує потенціал peer-to-peerсистем. У цьому огляді ми розповімо про технологію Р2Р в цілому, про системи (або правильніше кажучи) програми, що набули популярності за допомогою цієї технології. Адже якщо добре до всього цього придивитися, можна зрозуміти що технологія Р2Р може послужити введенням для всіх нових прихильників, розробників і просто любителів, які бажають зайнятися розробкою P2P додатків.

Що таке P2P?

На сьогоднішній день найбільш поширеною моделлю є Client/Server.

У Client/Server архітектурі, клієнти опитують сервер, і сервер повертає необхідні дані та здійснює необхідні операції над ними. Сьогодні існують різні сервера в Inet: Web сервера, Mail сервера, FTP тощо. Архітектура Client/Server - це приклад централізованої архітектури, де мережа залежить від центральних вузлів, званих серверами, призначених забезпечення необхідних сервісів. Без серверів така архітектура немає сенсу. Незалежно від наявності у мережі клієнтів, мережа існуватиме виключно за умови існування серверів.
Подібно до архітектури Client/Server, P2P також розподілена модель, але існує дуже важлива відмінна риса. В архітектурі P2P немає поняття клієнта чи сервера. Кожен об'єкт у мережі, назвемо його peer (англ. рівний, такий самий), має той самий статус, це означає, що цей об'єкт може виконувати як функції клієнта (надсилати запити) так і сервера (отримувати відповіді).

І хоча всі peers мають однаковий статус, це не означає, що вони повинні мати однакові фізичні можливості. P2P мережа може складатися з peers з різними можливостями, починаючи від мобільних пристроїві закінчуючи основніфрами. Деякі мобільні peer можуть і не підтримувати всіх функціональних можливостейсерверів, через обмеження їх ресурсів (слабкий процесор/маленький обсяг пам'яті), але мережа не обмежує їх.

Обидві мережеві моделі мають свої переваги та недоліки. Візуально ви можете бачити, що зростання Client/Server системи (яка тим більше, ніж клієнтів до неї додано) призводить до зростання навантажень на сервер. З кожним новим клієнтом центральний вузол слабшає. Таким чином, мережа може ставати перевантаженою.

P2P мережа працює за іншим сценарієм. Кожен об'єкт у мережі (peer) є активним у мережі, peer надає деякі ресурси в мережі, такі як простір для зберігання даних та додаткові такти CPU. Чим більше peer в мережі, тим більша продуктивність самої мережі. Отже, у міру того, як росте мережа, вона стає потужнішою.

Додаткові відмінності

Також P2P відрізняється від Client/Server моделі тим, що P2P система вважається робочою, якщо в ній є хоча б один активний peer. Система буде вважатися неактивною, якщо жоден peer не активний.

Недоліки технології P2P

Однак існують недоліки у P2P систем. По-перше, керування такою мережею набагато складніше, ніж керування Client/Server системами, де адміністрування вимагає лише центральний вузол - Server. Таким чином, потрібно витратити набагато більше зусиль на підтримку security, backup тощо.

По-друге, P2P протокол набагато більш "балакучий" - peer може приєднатися до мережі або вийти з неї в будь-який момент, і це може негативно позначитися на продуктивності.

Наприклад:

Як правило, мережа складається з рівноправних вузлів, причому кожен із них взаємодіє лише з деяким підмножиною вузлів мережі, оскільки встановлення зв'язку "кожен з кожним" неможливе через обмеженість ресурсів (як обчислювальних, так і пропускних). При цьому передача інформації між вузлами, не пов'язаними в даний момент безпосередньо, може здійснюватися як своєрідною естафетою - від вузла до вузла, так і шляхом встановлення тимчасового прямого зв'язку. Всі питання маршрутизації та авторизації повідомлень, що передаються естафетою, лежать не на єдиному сервері, а на всіх цих окремих вузлах. Таке визначення також відоме під назвою Pure P2P. Сподіваюся всі питання про те, що таке технологія Peer-to-peer (P2P) вичерпані. Тепер ми представимо вашій увазі 5 кращих програм, що використовуються горезвісну технологію Peer-to-peer (P2P).

Трохи історії

Багато користувачів мережі Інтернет пам'ятають феномен Napster"а, першої всесвітньої мережі обміну файлами між користувачами (до речі, що використовували технологію P2P). Napster пережив пару стусанів долі, кілька галасливих судових процесів, в результаті чого став м'яким і пухнастим. вилетів із пляшки…

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

Що ж було проривом у новій технології?

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

Сам процес отримав назву peer to peer (P2P), тобто з'єднання двох користувачів без сервера. Звичайно, не так вже й "без сервера" - насправді сервери використовуються у цій схемі тричі.

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

Інше використання серверів – це власне операція пошуку. У початковій схемі, наприклад eDonkey, на сервері є загальна всім користувачів база даних спільних файлів. При зверненні пошуку до сервера той визначає, хто з користувачів має потрібний файл. Ця схема останнім часом виходить із моди – сервери все рідше містять базу пошуку.

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

Що залишилося від Napster'а?

Перше, що впадає у вічі, коли заходиш на www.napster.com, - це сама інсталяція нового Napster"a, яка нагадує тепер інсталяцію порно-консолі або іншого трояна. Я, як би, розумію, що завантаження exe нічим не краще - але все одно якось дивно все це виглядає. Наступний за інсталяцією смішний момент - повідомлення про те, що Napster працює тільки в США. піратів"). Коротше - не ходіть туди, робити там нічого.

Епідемія Kazaa

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

Отже, найкращі на сьогодні програми – це ті, що працюють у мережі e-Donkey2000 та Overnet. До них належить власне саме e-Donkey та його дитинча - Overnet (хоча як від ослика може статися така медуза?), а також маса клонів. а тепер, наша найкраща п'ятірка.

1.- Першу позицію поділили Overnet"ом та e-Donkey

Різниця між Overnet"ом і e-Donkey - в тому, де проводиться пошук файлів. Якщо більш старий "ослик" здійснював пошук на централізованому сервері або, точніше, в розподіленій базі на декількох серверах (а це вузьке місце - як у сенсі трафіку, так і в сенсі Інтерполу) - то більш просунутий Overnet шукає тільки на клієнтських машинах, хоча сервери використовуються для проксі-послуг. завантажити ваш трафік по повній програмі. З іншого боку, кількість знайдених (до того ж рідкісних) файлів в Overnet вражає. Погано, що не обійшлося без реклами, але це вирішується ми-знаємо-як.

Недоліки

Недолік і eDonkey і Overnet: склад їх інсталяції входить кілька рекламних програм, так що, якщо ви прогавите цей момент і не скасуйте установку останніх, то отримаєте на свій гвинт жменю сміття.

2.- На другій позиції eMule та інші "ослоподібні"

Серед популярних ED-"присосок" - eMule та OneMX. Вони схожі настільки, що створюється навіть дивне відчуття, ніби це взагалі та сама програма. Що, загалом, так і є: перша – Open Source, друга – "типу безкоштовна". Єдина відмінність – у списку серверів за промовчанням. І якщо eMule, зрештою, знайшов "шлях на щастя", то OneMX взагалі не зміг вибратися назовні - тому мої знання про його роботу дуже скромні. Далі йтиметься, в основному, про eMule, отримати який можна (і потрібно) на www.emule-project.net. eMule підтримує два типи мережі – автоматичний ED2K та Kademlia Bootstrap. Не лякайтеся, це не лайка, а система розподіленого хешу – DHT, Distributed Hash Table. Система працює так: всі користувачі одержують ідентифікатори, і файли одержують ідентифікатори, і частини файлів одержують ідентифікатори. Спочатку ви підключаєтеся до пари-трійки "друзів" і ненароком запитуєте, "а як пройти в бібліотеку". Оскільки ваші "кореша" вже в курсі і бібліотеки та інших закладів, вони скидають вам адреси нових серверів, де можуть розташовуватися файли - і так далі, до переможного кінця. Сам процес "розкрутки" називається Bootstrap, а система ідентифікації та пошуку всього на світі за хеш-значеннями - Kademlia. , так що ви зможете від нього вже пересуватися до наступних хостів - і поступово підібратися до файлів, що потрібні. Можна сказати, що eMule працює і як eDonkey, запитуючи дані у серверів, і як Overnet, через Kademila, тобто застосовує обидва способи пошуку. Інше питання – звідки ви візьмете цю адресу? Саме так. Інший "напруження" цієї технології - це те, що для "підняття" Kademila потрібно вказати сервер зі справжньою IP-адресою, а це не надто поширений зараз метод підключення, і за NAT-фаєрволом це не працюватиме. Але, тим не менш, дякую за можливість. Приємна фіча eMule - він зберігає недокачані файли окремо, так що ви не бачите "сміття" в точці призначення (як, наприклад, WinMX). Тому точкою призначення можна вказати цілком пристойне місце, наприклад, "Мої документи". Інша приємність - це можливість переглянути коментарі до фалу. На жаль, часто вони безглузді, але іноді містять і важливу інформацію, наприклад "це фільм на китайською мовою:-). Крім іншого, eMule містять вбудований клієнт IRC для живого спілкування з віддаленими "товаришами по нещастю" - коротше, повний фарш із прикладом.

Недоліки

Надмірно вантажить систему, і не дуже висока швидкість скачування.

3.- На третій позиції WinMX

Інструмент, що став вельми популярним останнім часом. Його головна відмінність - повна відсутність навіть натяку на рекламу та іншу "дурницю". Завантажити цю примочку можна на www.winmx-download-winmx.com (саме закачування відбувається з сайту Morpheus-Download, що наводить на роздуми; проте іншої інформації на тему WinMX і Morpheus я не знайшов – напевно, люди вважають за краще шифруватися).

WinMX - скорочення від " Windows Media eXchange". Існує порт на Mac, для інших систем портів не виявлено.

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

Закладка Пошук присвячена чому - тут все ясно: вводите слова і шукаєте. Після того, як будуть знайдені джерела, можете відхиляти їх на предмет "цікавості" - хоча ви ніколи не вгадаєте, хто вам "зіллє файло", так що дискримінація тут недоречна. Розумно клацати Download по всій групі, а не тільки по одному джерелу - непотрібні обпадуть самі, як осіннє листя.

Декілька незрозумілих скорочень ви зустрінете на закладці Transfers, а саме - AFS та AEQ. Це дуже добрі параметри. Перший означає Auto Find Sources і показує період (у хвилинах), з яким буде намагатися знайти нові джерела для ваших файлів. Таким чином, можна "загнати" пошуковик, а можна, навпаки, "попустити". Постійно перевіряти нові джерела немає сенсу, вони з'являються не надто часто – головне, ніколи не встановлюйте цей параметр у Never.

Другий параметр розшифровується як Auto EnQueue - тобто коли ви знаходите файл і при цьому вам пропонують стати в чергу, то в якому випадку погоджуватися? Для рідкісних файлів цей параметр можна поставити в максимальне значення - 100.

AFS і AEQ за замовчуванням можна налаштувати на закладці Configuration ... чомусь Search, але не має значення. В інших клієнтах таких налаштувань немає (чи це не знайшов?).

Є невеликий "загін" у налаштуваннях за замовчуванням - ви налаштовані викидати "inactive DL sources" кожні 10 хвилин. Це призводить до того, що одночасно ви можете викинути всі джерела - і закачка полетить зі списку. Файл залишиться на місці, і ви, звичайно, завжди можете "повернути" закачування, натиснувши Load Incomplete - але зробити це зможете тільки руками вранці в понеділок, тоді як ви могли качати всі вихідні.

Недоліки

Багатофункціональність і безліч налаштувань ускладнює освоєння програми рядовим користувачем.

4.- На четвертій позиції Shareaza чи G2.

Shareaza (або, по-народному, Ш (З) араза) - це клієнт, створений авторами та фанатами мережі Gnutella для власних потреб:-). Shareaza підтримує власний протокол Gnutella2 (Mike's Protocol, MP), протокол старої мережі Gnutella 1, ED2K та BitTorrent. Оскільки MP і BitTorrent поки не набули особливого поширення (хоча все може змінитися). Ще один клієнт точно підтримує G2 – mlDonkey, інших виявити не вдалося. Що добре – G2 має формальний опис, чітку систему вимог і навіть власний стандарт, що може зробити цю мережу досить стійкою для конкуренції з Overnet. Побічний ефект Shareaza - оскільки цей клієнт обслуговує запити одразу багатьох мереж, то вихідний (навіть коли ви нічого і не закачуєте) трафік легко може "стартувати" до 25 Кб/с! Слідкуйте за цим, якщо ви викачуєте під контролем. Обмежити скачування можна в Config-Internet-Uploads (за замовчуванням: 7 Кб/с для Core, 12 Кб/с для Partially Downloaded і по 2 Кб для кожного розміру файлів, великого, середнього та малого - разом дозволений вихідний трафік - 25 Кб/ с).

5.- І нарешті на п'ятій позиції Gnutella та BitTorrent

Найпоширеніша та найпопулярніша мережа обміну (якщо не враховувати ED2k) називається Gnutella. До речі, після появи Gnutella2 її часто називають Gnutella 1 або "стара (legacy) Gnutella". В основі G1 лежить дещо інший механізм поширення запитів – але в принципі все без особливих змін. Основна відмінність Gnutella - вона не використовує механізми Kademlia, тобто пошук у цій мережі здійснюється "наосліп", за випадковими маршрутами. Найкраща критика G1 дана на сайті розробників Gnutella 2. - Там, наприклад, згадується, що в гіршому випадку один користувач може "поставити на вуха" 80% усієї G1-мережі.

Офіційні програми для цієї мережі - BearShare (також підтримує ED2K?), Gnucleus, Morpheus (версія: спочатку був на движку KaaZaa - FastTrack, але після "сесій" із судом Лос-Анджелеса перейшов під прапори Gnutell"и), Xolox Ultra, LimeWare , Phex. Деякі з них написані на Java, а деякі навіть під. NET.

Типовий сучасний клієнт для мережі Gnutella – LimeWire. Весь сайт LimeWare обвішаний написами "швидше, ніж KaaZaa!" - Хм, ну було б чим пишатися. Головна відмінна рисацього клієнта – програма на Java. З усіма наслідками, що випливають з цього: красиво і повільно.

Перераховані вище програми, особливо Lime, часто просто перенасичені рекламою, spy-ware та іншими речами, так що я згадую їх тут тільки для повноти викладу – можете поставити ці програми з метою ознайомлення, щоб не говорили потім, ніби у вас не було вибору.

Крім того, в мережі Gnutella я не знайшов потрібних файлів, так що знайомство з нею завершилося, так і не розпочавшись. Єдине, що порадувало, так це сайт www.gnutella.com (на движку Zope + Plone?) - Хоча і там усі закачування відбуваються через рекламний блок.

BitTorrentце технологія розподіленого закачування файлів, яка називається ще swarming, - тобто файл збирається в одне ціле, подібно до того, як бджоли збирають мед у вулик. Власне, сам BT - це серверна частина для завантаження ось таким чином.

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

Керівництво до дії

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

Якщо у вас платне підключення та ресурсів рівно стільки, щоб вистачало на "скромну розкіш" - але бажання велике і за ціною ви не постоїте. Все-таки ще раз пройдіться розкладками - а раптом знайдете на диску? Оскільки питома вартість мегабайта буде вражаючою. вибирайте eMule, це найуніверсальніший "ослоподібний" P2P. І саме за допомогою я й отримав найрідкісніші файли. Якщо ви любите цирк і миготливі лампочки - завантажте eMule у версії плюс.

Інші клієнти, наприклад WinMX, теж здатні багато на що (ставити не страшно, рекламних консолей там немає).

Якщо у вас реально немає проблем з трафіком, можете активно користуватись Overnet - але будьте готові до того, що вся мережа публікуватиме на вашому вузлі відповідні вашому ID фрагменти. А це, скажу я вам, не жарт – принаймні обов'язково ставте обмежувачі трафіку!

А ось чого робити не раджу - так це ставити "безкоштовні" гнульні софтини (якщо, звичайно, не хочете потім все життя видаляти з гвинта тарганів). Сама сітка Gnutella не винна, а ось софт-пакери дивують своїм нахабством і бажанням отримувати прибуток від відкритого коду. Ну і все напевно, пишіть, стукайте, і вірте, що на наших сайтах у мене на "ПромоNews", і "SuperQ" Ви завжди отримаєте відповіді на такі необхідні і важливі питання. Наш девіз звучить приблизно так: "Знайди себе серед друзів!" Удачі:)

При побіжному знайомстві з літературою виявляється безліч різних тлумачень поняття Peer-to-Peer, що відрізняються в основному спектром особливостей, що включаються.

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

Згідно з більш широким визначенням, P2P є класом додатків, які використовують ресурси, - жорсткі диски, цикли процесора, контент, - доступні на краю хмари Інтернету. У той же час воно підходить і для систем, що застосовують для свого функціонування централізовані сервери (таких як SETI@home, системи миттєвих повідомлень або навіть сумнозвісна мережа Napster), а також різних програм з області grid-обчислень (решітчастих обчислень).

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

У той же час багато хто схожий на думку, що головні для архітектури P2P такі характеристики:

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

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

Тут саме час поміркувати про особливості обчислень у grid-і P2P-системах. І ті й інші представляють два підходи до розподілених обчислень з використанням ресурсів, що розділяються, у великомасштабному комп'ютерному співтоваристві.

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

Однак у міру розвитку технології P2P та використання більш складних додатків, таких як розподіл структурованого контенту, спільна робота на ПК та мережеві обчислення, очікується конвергенція P2P- та grid-обчислень.

Класифікація P2P-додатків

Архітектури P2P використовувалися для багатьох додатків різних категорій. Наведемо короткий описдеяких із них.

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

Розподілені обчислення.Метою цих систем є об'єднання обчислювальних можливостей рівноправних вузлів на вирішення завдань з інтенсивними обчисленнями. Для цього завдання розбивається на низку невеликих підзадач, які розподіляються по різних вузлах. Результат їх роботи повертається потім хосту. Приклади таких систем - проекти SETI@home, genome@home та інших.

Системи бази даних.Значні зусилля були витрачені на розробку розподілених базданих, що базуються на P2P-інфраструктурі. Зокрема, було запропоновано локальну реляційна модель(Local Relational Model), що передбачає, що набір всіх даних, що зберігаються в P2P-мережі, складається з несумісних локальних реляційних баз даних (тобто не задовольняють заданим обмеженням цілісності), взаємопов'язаних за допомогою «посередників», які визначають трансляційні правила та семантичні залежності між ними.

Розподіл контенту.До цієї категорії належать більшість сучасних P2P-мереж, що включають системи та інфраструктури, розроблені для поділу цифрової аудіовізуальної інформації та інших даних між користувачами. Спектр таких систем для розподілу контенту починається від відносно простих додатківдля прямого поділу файлів і тягнеться до більш складних, які створюють розподілені середовища зберігання, що забезпечують безпеку та ефективні організацію, індексацію, пошук, оновлення та вилучення даних. Як приклади можна навести пізню мережу Napster, Gnutella, Kazaa, Freenet та Groove. Надалі ми зосередимо увагу саме на цьому класі мереж.

Розподіл контенту в мережах P2P

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

Програми P2P.До цієї категорії входять системи розподілу контенту, що базуються на технології P2P. Залежно від призначення та складності їх доречно поділити на дві підгрупи:

  • системи обміну файламипризначені для простого одноразового обміну між комп'ютерами. У таких системах створюється мережа рівноправних вузлів та забезпечуються засоби для пошуку та передачі файлів між ними. У типовому випадку це «легковажні» додатки з якістю обслуговування «у міру можливості» (best effort), які не дбають про безпеку, доступність та живучість;
  • системи для публікації та зберігання контенту. Такі системи надають середовище розподіленого зберігання, в якому користувачі можуть публікувати, зберігати та розподіляти контент, при цьому підтримуються безпека та надійність. Доступ до такого контенту контролюється, і вузли повинні мати відповідні привілеї для його отримання. Основними завданнями таких систем є забезпечення безпеки даних та живучості мережі, і найчастіше їхня головна мета полягає у створенні засобів для ідентифікованості, анонімності, а також управління контентом (оновлення, видалення, контроль версій).
  • визначення адреси та маршрутизація.Будь-яка P2P-система розподілу контенту спирається на мережу рівноправних вузлів, усередині якої вузли та контент повинні ефективно локалізуватися, а запити та відповіді - маршрутизуватися, і при цьому забезпечуватись відмовостійкість. Для виконання цих вимог було розроблено різні інфраструктури та алгоритми;
  • забезпечення анонімності. P2P-базовані інфраструктурні системи мають розроблятися з метою забезпечення анонімності користувача;
  • репутаційний менеджментУ мережах P2P відсутній центральний орган для управління репутаційною інформацією про користувачів та їхню поведінку. Тому вона розташовується на безлічі різних вузлів. Щоб гарантувати її безпеку, актуальність і доступність у всій мережі, необхідно мати складну інфраструктуру управління репутаціями.

Локалізація та маршрутизація розподілених об'єктів у мережах P2P

Функціонування будь-якої P2P-системи розподілу контенту спирається на вузли та з'єднання між ними. Ця мережа утворюється поверх і незалежно від базової (у типовому випадку IP) і тому часто називається оверлейною. Топологія, структура, ступінь централізації оверлейної мережі, механізми локалізації та маршрутизації, які в ній використовуються для передачі повідомлень та контенту, є вирішальними для роботи системи, оскільки вони впливають на її стійкість до відмов, продуктивність, масштабованість і безпеку. Оверлейні мережі розрізняються за рівнем централізації та структурою.

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

  • повністю децентралізовані архітектури.Всі вузли в мережі виконують однакові завдання, діючи як сервери та клієнти, і не існує центру, що координує їхню активність;
  • частково централізована архітектура.Базис тут той самий, що й у попередньому випадку, однак деякі з вузлів відіграють важливішу роль, діючи як локальні центральні індекси для файлів, що поділяються локальними вузлами. Способи присвоєння таким супервузлам їхньої ролі в мережі в різних системах варіюються. Важливо, однак, відзначити, що ці супервузли не є єдиною точкою відмови для мережі P2P, оскільки призначаються динамічно і у разі відмови мережа автоматично передає їх функції іншим вузлам;
  • гібридні децентралізовані архітектуриУ таких системах є центральний сервер, який полегшує взаємодію між вузлами за допомогою управління директорією метаданих, що описує файли, що зберігаються на них. Хоча наскрізна взаємодія та обмін останніми може здійснюватися безпосередньо між двома вузлами, центральні сервери полегшують цей процес, переглядаючи та ідентифікуючи вузли, що зберігають файли.

Очевидно, у цих архітектурах є єдина точка відмови – центральний сервер.

Мережева структурахарактеризує, чи створюється оверлейна мережа недетерміновано (ad hoc), у міру того як додаються вузли та контент, або базується на спеціальних правилах. З точки зору структури мережі P2P поділяються на дві категорії:

  • неструктуровані.Розміщення контенту (файлів) у яких не пов'язані з топологією оверлейной мережі, у випадках його необхідно локалізувати. Механізми пошуку варіюються від методів грубої сили, таких як лавинне поширення запитів способами «спочатку вшир» (breadth-first) або «спочатку вглиб» (depth-first) - доки бажаний контент не буде знайдений, до більш софістичних стратегій, що передбачають використання методу випадкового блукання та індексацію маршрутів. Механізми пошуку, які застосовуються в неструктурованих мережах, мають очевидний вплив на доступність, масштабованість та надійність.

Неструктуровані системи найбільше підходять для мереж з непостійним числом вузлів. Прикладами є Napster, Gnutella, Kazaa, Edutella та інші;

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

Структуровані системи (до них ставляться Chord, CAN (Content Addressable Network), Tapestry та інших) надають масштабовані рішення пошуку по точному збігу, т. е. для запитів, у яких відомий точний ідентифікатор потрібних даних. Їх недоліком є ​​складність управління структурою, необхідна ефективної маршрутизації повідомлень серед з змінним числом вузлів.

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

Тепер обговоримо детальніше оверлейні мережі з погляду їх структури та ступеня централізації.

Неструктуровані архітектури

Почнемо з повністю децентралізованих архітектур(Див. наведене вище визначення). Найцікавішим представником таких мереж є Gnutella. Подібно до більшості P2P-систем, вона будує віртуальну оверлейну мережу з власним механізмом маршрутизації, дозволяючи своїм користувачам розділяти файли. У мережі відсутня якась централізована координація операцій, і вузли з'єднуються один з одним безпосередньо за допомогою ПЗ, яке функціонує як клієнт, і як сервер (його користувачів називають servents - від SERVers + cliENTS).

Як базовий мережевого протоколу Gnutella застосовує IP, тоді як комунікації між вузлами визначаються протоколом прикладного рівня, що підтримує чотири типи повідомлень:

  • Ping- Запит до певного хосту з метою оголосити про себе;
  • Pong- відповідь на повідомлення Ping, що містить IP-адресу, порт запитаного хоста, а також кількість і розміри файлів, що розділяються;
  • Query- Пошуковий запит. До нього входять рядок пошуку та мінімальні швидкісні вимоги до відповідного хосту;
  • Query Hits- відповідь на запит Query, включає IP-адресу, порт і швидкість передачі хоста, кількість знайдених файлів і набір їх індексів.

Після приєднання до мережі Gnutella (за допомогою зв'язку з вузлами, виявленими в базах даних, таких як gnutellahosts.com) вузол надсилає повідомлення Ping якимось зв'язаним з ним хостам. Ті відповідають повідомленням Pong, ідентифікуючи себе, і надсилають повідомлення Pingсвоїм сусідам.

У неструктурованій системі, подібної до Gnutella, єдиною можливістю локалізувати файл є недетермінований пошук, оскільки у вузлів не було способу припустити, де він знаходиться.

Спочатку в архітектурі Gnutella використовувався лавинний (або широкомовний) механізм для розподілу запитів Pingі Query: кожен вузол направляв отримані повідомлення всім своїм сусідам, а відповіді йшли зворотним шляхом. Щоб обмежити потоки повідомлень у мережі, всі вони містили в заголовку поле Time-to-Live (TTL). На транзитних вузлах значення цього поля зменшувалося, і коли воно досягало значення 0 повідомлення видалялося.

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

Мал. 1. Приклад механізму пошуку у неструктурованій системі

Якщо вузол отримує повідомлення Query Hit, в якому зазначено, що шуканий файл знаходиться на певному комп'ютерівін ініціює завантаження за допомогою прямого з'єднання між двома вузлами. Механізм пошуку наведено на рис. 1.

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

Супервузли індексують файли, що розділяються приєднаними до них вузлами, і як proxy-сервери виконують пошук від їхнього імені. Тому всі запити спочатку надсилаються до супервузлів.

Частково централізовані системи мають дві переваги:

  • зменшеним часом пошуку порівняно з попередніми системами за відсутності єдиної точки відмови;
  • ефективним використанням властивої P2P-мереж гетерогенності. У повністю децентралізованих системах всі вузли навантажуються однаково незалежно від їхньої обчислювальної потужності, смуги пропускання каналів або можливостей систем зберігання. У частково централізованих системах супервузли беруть він більшу частину мережного навантаження.

Частково централізованою системою є мережа Kazaa.

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

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

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

Структуровані архітектури

Різноманітні структуровані системи розподілу контенту використовують різні механізми для маршрутизації повідомлень та знаходження даних. Ми зупинимося на найбільш знайомій українським користувачам – Freenet.

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

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

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

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

Freenet використовує такі типи повідомлень, кожне з яких включає ідентифікатор вузла (для виявлення петель), значення hops-to-live та ідентифікатори джерела та одержувача:

  • Data insert- Вузол, що містить нові дані в мережу (у повідомленні знаходяться ключ і дані (файл));
  • Data request- запит певного файлу(до нього входить ключ);
  • Data reply- відповідь, коли файл знайдено (до повідомлення включається файл);
  • Data failed- Помилка в пошуку файлу (вказуються вузол і причина помилки).

Для приєднання до Freenet комп'ютери перш за все визначають адресу одного або більше існуючих вузлів, а потім надсилають повідомлення Data insert.

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

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

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

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

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

Потенційні можливості мереж P2P виявилися настільки великі, що Hewlett-Packard, IBM та Intel ініціювали створення робочої групи з метою стандартизувати технологію для застосування у комерційних цілях. У нової версіїОС Microsoft Windows Vista будуть вбудовані кошти для колективної роботи, що дають змогу ноутбукам розділяти дані з найближчими сусідами.

Перші прихильники цієї технології, такі як аерокосмічний гігант Boeing, нафтова компанія Amerada Hess і сама Intel, кажуть, що її використання зменшує необхідність придбання високорівневих обчислювальних систем, включаючи мейнфрейми. Системи P2P можуть також послабити вимоги до пропускної спроможності мережі, що важливо для компаній, у яких виникають проблеми.

Intel почала використовувати технологію P2P у 1990 р., прагнучи знизити витрати на розробку чіпів. Компанія створила власну систему, названу NetBatch, яка об'єднує понад 10 тис. комп'ютерів, надаючи інженерам доступ до глобально розподілених обчислювальних ресурсів.

Boeing застосовує розподілені обчислення для виконання ресурсомістких тестових випробувань. Компанія використовує Napster-подібну модель мережі, в якій сервери спрямовують трафік до призначених вузлів. "Немає такого одного комп'ютера, який відповідав би нашим вимогам", - каже Кен Невес (Ken Neves), директор дослідницького підрозділу.

Потенціал технологій P2P привернув увагу та венчурного капіталу. Так, Softbank Venture Capital інвестував 13 млн дол. у компанію United Device, що розробляє технології для трьох ринків: обчислення для біотехнологічної індустрії, якість обслуговування (QoS) та навантажувальні тести для Web-сайтів, а також індексування контенту на базі методу «черв'ячного» пошуку , що використовується поряд машин в Інтернеті.

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