Відмінності між версіями «Мережа P2P»
(не показані 17 проміжних версій 3 учасників) | |||
Рядок 1: | Рядок 1: | ||
− | [[Файл:200px-P2P-network.svg.png| | + | [[Файл:200px-P2P-network.svg.png|160px|right|]] |
+ | =ВСТУП= | ||
+ | '''P2P (Peer-to-peer)''' - архітектура систем, в основі якої лежить мережа рівноправних вузлів. Фраза «peer-to-peer» була вперше використана у 1984 році Парбауелом Йохнухуйтсманом (Parbawell Yohnuhuitsman) при розробці архітектури Advanced Peer to Peer Networking фірми IBM. | ||
P2P-мережа — це спосіб організації мережі, при якому всі її учасники мають однакові привілеї: є і клієнтами і серверами одночасно. Одна з областей застосування технології таких мереж — обмін файлами. Користувачі файлообмінної мережі викладають які-небудь файли в «розшарені» директорії, вміст яких доступний для звантажування іншим користувачам. Який-небудь інший користувач мережі відправляє запит на пошук якого-небудь файлу. Програма шукає в клієнтів мережі файли, що відповідають запиту, і показує результат. Після цього користувач може звантажити файли зі знайдених джерел. | P2P-мережа — це спосіб організації мережі, при якому всі її учасники мають однакові привілеї: є і клієнтами і серверами одночасно. Одна з областей застосування технології таких мереж — обмін файлами. Користувачі файлообмінної мережі викладають які-небудь файли в «розшарені» директорії, вміст яких доступний для звантажування іншим користувачам. Який-небудь інший користувач мережі відправляє запит на пошук якого-небудь файлу. Програма шукає в клієнтів мережі файли, що відповідають запиту, і показує результат. Після цього користувач може звантажити файли зі знайдених джерел. | ||
Рядок 7: | Рядок 9: | ||
В P2P мережі не існує поняття клієнтів або серверів, лише рівні вузли, які одночасно функціонують як клієнти та сервери по відношенню до інших вузлів мережі. Така організація дозволяє зберігати працездатність мережі при будь-якій конфігурації доступних її учасників. Проте практикується використання P2P мереж які все ж таки мають сервери. Автономні вузли взаємодіють з іншими автономними вузлами. Вузли є автономними в тому сенсі, що не існує загальної влади, яка може контролювати їх. В результаті автономії вузлів, вони не можуть довіряти один одному та покладатися на поведінку інших вузлів, тому проблеми масштабування та надмірності стають більш важливими ніж у випадку традиційної архітектури. | В P2P мережі не існує поняття клієнтів або серверів, лише рівні вузли, які одночасно функціонують як клієнти та сервери по відношенню до інших вузлів мережі. Така організація дозволяє зберігати працездатність мережі при будь-якій конфігурації доступних її учасників. Проте практикується використання P2P мереж які все ж таки мають сервери. Автономні вузли взаємодіють з іншими автономними вузлами. Вузли є автономними в тому сенсі, що не існує загальної влади, яка може контролювати їх. В результаті автономії вузлів, вони не можуть довіряти один одному та покладатися на поведінку інших вузлів, тому проблеми масштабування та надмірності стають більш важливими ніж у випадку традиційної архітектури. | ||
+ | =Типи файлообмінних мереж= | ||
+ | * Локальні файлообмінні мережі. BitTorrent-трекери, DirectConnect (DC++). Централізовані мережі, але передбачають існування великої кількості серверів різного масштабу (так званих «трекерів» чи «хабів»). Не дивлячись на «локальність», існують доволі великі файлообмінники світового масштабу: The Pirate Bay, великі DC++ хаби і т. д. | ||
+ | * Частково централізовані мережі з багатьма серверами. Файлообмінники другого покоління, наприклад eDonkey та Kazaa. Поступово відійшли на другий план. | ||
+ | * Повністю децентралізовані мережі. Файлообмінники третього покоління, такі як Overnet і Kad Network (для клієнтів типу eMule), Гнутелла (і її форк), DHT (і magnet посилання) у BitTorrent, а також японські WinNY, Share і Perfect Dark. | ||
+ | * Даркнети. Пірингові мережі останнього покоління, які використовують спеціальні прийоми анонімізації, засновані на обмеженні безпосередніх з'єдннань деякою кількістю визначених користувачем так званих «друзів» (принцип F2F: friend-to-friend), що теоретично дозволяє уникнути деанонімізуючих атак. | ||
− | + | =P2P мережа= | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | = | + | |
− | + | ||
Більшість людей використовують інтернет для скачування різної інформації. Як правило всі намагаються її завантажити безкоштовно. Але людей багато, і якщо інформація буде розташована тільки на одному сервері, тоді канал сервера буде перевантажений і вона стане не доступною. Але як бути в такому випадку? Адже не багато хто хоче платити за те, щоб їхня інформація була доступна всьому світу безкоштовно. | Більшість людей використовують інтернет для скачування різної інформації. Як правило всі намагаються її завантажити безкоштовно. Але людей багато, і якщо інформація буде розташована тільки на одному сервері, тоді канал сервера буде перевантажений і вона стане не доступною. Але як бути в такому випадку? Адже не багато хто хоче платити за те, щоб їхня інформація була доступна всьому світу безкоштовно. | ||
− | |||
− | |||
− | |||
Для цього придумали P2P мережі. Принцип роботи P2P дуже простий. Бажаючий передати інформацію створює торрент файл і запускає роздачу інформації. Бажаючі скачати інформацію завантажує цей торрент файл, його розміром можна знехтувати, тому що він значно малий у порівнянні з розміром самої інформації, і починають скачування інформації. Але в чому ж тоді перевагу? | Для цього придумали P2P мережі. Принцип роботи P2P дуже простий. Бажаючий передати інформацію створює торрент файл і запускає роздачу інформації. Бажаючі скачати інформацію завантажує цей торрент файл, його розміром можна знехтувати, тому що він значно малий у порівнянні з розміром самої інформації, і починають скачування інформації. Але в чому ж тоді перевагу? | ||
− | |||
Як тільки хтось скачав шматок інформації у роздає, він тут же починає його роздавати. Іншими словами кожен учасник P2P мережі не тільки викачує, але передає скачану інформацію іншим учасникам. Тим самим немає необхідності у великій пропускній спроможності каналу у джерела інформації. | Як тільки хтось скачав шматок інформації у роздає, він тут же починає його роздавати. Іншими словами кожен учасник P2P мережі не тільки викачує, але передає скачану інформацію іншим учасникам. Тим самим немає необхідності у великій пропускній спроможності каналу у джерела інформації. | ||
− | |||
Той хто має всі шматки інформації, тобто той хто роздає, але нічого не викачує називається сідером. | Той хто має всі шматки інформації, тобто той хто роздає, але нічого не викачує називається сідером. | ||
Той хто має потребу в інформації і завантажує її - лічером. Як тільки лічер викачує всю інформацію, він починає її роздавати і стає сідером. У цьому ще одна перевага P2P мережі. | Той хто має потребу в інформації і завантажує її - лічером. Як тільки лічер викачує всю інформацію, він починає її роздавати і стає сідером. У цьому ще одна перевага P2P мережі. | ||
− | |||
Якщо у когось є цікавий фільм, музика, книга, гра або ще щось і він хоче поділитися з усіма, йому не обов'язково мати швидкий інтернет і постійно перебувати в мережі. Йому достатньо лише створити торрент, запустити роздачу і дочекатися, коли кожен шматок роздається інформації буде завантажено хоча б один раз. Далі він може відключиться, при цьому інші зможуть продовжити скачування як ні в чому не бувало. Вони будуть обмінюватися між собою шматками завантаженої інформації. | Якщо у когось є цікавий фільм, музика, книга, гра або ще щось і він хоче поділитися з усіма, йому не обов'язково мати швидкий інтернет і постійно перебувати в мережі. Йому достатньо лише створити торрент, запустити роздачу і дочекатися, коли кожен шматок роздається інформації буде завантажено хоча б один раз. Далі він може відключиться, при цьому інші зможуть продовжити скачування як ні в чому не бувало. Вони будуть обмінюватися між собою шматками завантаженої інформації. | ||
− | |||
Але як же учасники знаходять один одного? Для допомоги знаходження учасників, що викачують потрібну їм інформацію існує так званий трекер, який керує торентами. Спочатку учасник приєднується до трекера, викачує від туди інформацію про інших учасників, а потім вже починає обмінюватися інформацією з ними. | Але як же учасники знаходять один одного? Для допомоги знаходження учасників, що викачують потрібну їм інформацію існує так званий трекер, який керує торентами. Спочатку учасник приєднується до трекера, викачує від туди інформацію про інших учасників, а потім вже починає обмінюватися інформацією з ними. | ||
− | |||
Яку інформацію можна передати через P2P мережі? Абсолютно будь-яку. Через P2P мережі зазвичай качають кіно, серіали, ігри, програми, музику, книги та фотографії. Дуже важко знайти сайт, де можна скачати той чи інший фільм безкоштовно, але за допомогою P2P мережі, можна абсолютно безкоштовно завантажити його у інших користувачів інтернету. | Яку інформацію можна передати через P2P мережі? Абсолютно будь-яку. Через P2P мережі зазвичай качають кіно, серіали, ігри, програми, музику, книги та фотографії. Дуже важко знайти сайт, де можна скачати той чи інший фільм безкоштовно, але за допомогою P2P мережі, можна абсолютно безкоштовно завантажити його у інших користувачів інтернету. | ||
− | |||
Які програми необхідні для роботи в P2P мережах? Для роботи з торентами потрібен будь-який клієнт bittorent. Деякі клієнти можуть бути не сумісні з різними трекерами. Один з популярних і безкоштовних клієнтів - uTorrent. | Які програми необхідні для роботи в P2P мережах? Для роботи з торентами потрібен будь-який клієнт bittorent. Деякі клієнти можуть бути не сумісні з різними трекерами. Один з популярних і безкоштовних клієнтів - uTorrent. | ||
− | + | =Історія= | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Сама технологія Р2Р існує з часів виникнення USENET та FidoNet. | Сама технологія Р2Р існує з часів виникнення USENET та FidoNet. | ||
Рядок 56: | Рядок 40: | ||
FidoNet, як і USENET, — це децентралізована, розподілена мережа для обміну повідомленнями. FidoNet був створений у 1984 році Томом Дженнінгсом як засіб для обміну повідомленнями між користувачами різних BBS. | FidoNet, як і USENET, — це децентралізована, розподілена мережа для обміну повідомленнями. FidoNet був створений у 1984 році Томом Дженнінгсом як засіб для обміну повідомленнями між користувачами різних BBS. | ||
− | |||
'''Перше покоління P2P мереж''' | '''Перше покоління P2P мереж''' | ||
Рядок 63: | Рядок 46: | ||
Після появи Napster було створено мережу EDonkey2000. Перевага eDonkey над Napster полягала у тому, що мережа дозволяла проводити зкачування різних частин одного файлу, одночасно із різних учасників мережі, які його надають. Іншою перевагою eDonkey було те, що згодом, серверне забезпечення набуло функціональності міжсерверного зв'язку, що дозволило виконувати пошук інформації на учасниках мережі що були під'єднані до різних серверів. Незважаючи на названі переваги, через використання серверів, ця мережа не була чистою peer-to-peer мережою. | Після появи Napster було створено мережу EDonkey2000. Перевага eDonkey над Napster полягала у тому, що мережа дозволяла проводити зкачування різних частин одного файлу, одночасно із різних учасників мережі, які його надають. Іншою перевагою eDonkey було те, що згодом, серверне забезпечення набуло функціональності міжсерверного зв'язку, що дозволило виконувати пошук інформації на учасниках мережі що були під'єднані до різних серверів. Незважаючи на названі переваги, через використання серверів, ця мережа не була чистою peer-to-peer мережою. | ||
− | |||
− | |||
'''Друге покоління P2P мереж''' | '''Друге покоління P2P мереж''' | ||
Рядок 71: | Рядок 52: | ||
Джастін Франкел вирішив створити мережу без центрального індексного сервера - Gnutella. Найкращими прикладами є Gnutella, Kazaa або Emule з Kademlia, серед яких лише Kazaa ще має центральний сервер для реєстрації. eDonkey2000/Overnet, Gnutella, FastTrack і Ares Galaxy мають приблизно 10.3 мільйонів користувачів (на квітень 2006 року, згідно зі slyck.com). | Джастін Франкел вирішив створити мережу без центрального індексного сервера - Gnutella. Найкращими прикладами є Gnutella, Kazaa або Emule з Kademlia, серед яких лише Kazaa ще має центральний сервер для реєстрації. eDonkey2000/Overnet, Gnutella, FastTrack і Ares Galaxy мають приблизно 10.3 мільйонів користувачів (на квітень 2006 року, згідно зі slyck.com). | ||
− | |||
− | |||
'''Третє покоління P2P мереж''' | '''Третє покоління P2P мереж''' | ||
Рядок 80: | Рядок 59: | ||
Починаючи з версії 4.2.0 офіційного BitTorrent клієнта, в ньому реалізована функція безтрекерної роботи, яка базується на протоколі Kademlia. У таких системах трекер доступний децентрально, на клієнтах-учасниках мережі, у формі розподіленої хеш-таблиці. | Починаючи з версії 4.2.0 офіційного BitTorrent клієнта, в ньому реалізована функція безтрекерної роботи, яка базується на протоколі Kademlia. У таких системах трекер доступний децентрально, на клієнтах-учасниках мережі, у формі розподіленої хеш-таблиці. | ||
+ | =Анонімні peer-to-peer мережі= | ||
+ | Приклади анонімних мереж — Freenet, I2P, ANts P2P, RShare, GNUnet і Entropy. Також прикладом децентралізованої мережі є система анонімної цифрової грошової одиниці Bitcoin. | ||
+ | Певна ступінь анонімності реалізовується шляхом направлення даних через інших вузли. Це робить важкою ідентифікацію того, хто завантажує або хто пропонує файли. Більшість цих програм також мають вбудоване шифрування. | ||
− | + | Поточні реалізації мереж такого типу потребують багато ресурсів для забезпечення анонімності, що робить їх повільними або складними для використання. Проте, в країнах, де дуже швидкий домашній доступ до Інтернет, як наприклад Японія, ряд анонімних файлообмінних мереж вже досягли високої популярності. | |
− | + | '''Invisible Internet Project (I2P)''' - анонімна, самоорганізована, розподілена і опенсорсна децентралізована мережа. По факту це зв'язка тунелів, які передають дані через Інтернет. В мережі немає DNS, замість них використовують так звані адресні книги, які, подібно до торренту, постійно автоматично оновлюються у всіх клієнтів від інших клієнтів. У них йде співставлення назви сайту чи іншого ресурсу, відомого як <nowiki>«http://назва_сайту.i2p»</nowiki>, з його фактичною адресою (відкритим криптографічним ключем). Замість IP-адрес у всій мережі використовуються відкриті криптографічні ключі, які не мають абсолютно жодного логічного зв'язку з реальними комп'ютерами. Навіть знаючи ці ключі, неможливо визначити місцезнаходження не лише користувачів, але і серверів. Взагалі. Саме тому I2P неможливо відключити, відфільтрувати чи заблокувати. В I2P використовується чаникова маршрутизація (розширення цибулинної маршрутизації з TOR), багатошарове шифрування, односторонні тунелі, розходження шифрованих пакетів кількома різними тунелями і так далі). Для додаткового захисту кожен пакет шифрується з використанням наступних алгоритмів: | |
+ | # 256 біт AES підсилений режим CBC з PKCS#5; | ||
+ | # 2048 біт Схема Ель-Гамаля; | ||
+ | # 1024 біт DSA; | ||
+ | # 2048 біт Алгоритм Діффі — Хеллмана; | ||
+ | # 256 біт HMAC — алгоритм перевірки цілістності повідомлень; | ||
+ | # Хешування SHA256. | ||
+ | |||
+ | =Класифікація P2P систем= | ||
'''В залежності від того, як вузли з'єднуються один з одним можна поділити мережі на структуровані та неструктуровані:''' | '''В залежності від того, як вузли з'єднуються один з одним можна поділити мережі на структуровані та неструктуровані:''' | ||
− | *Неструктурована мережа P2P формується, коли з'єднання встановлюються довільно. Такі мережі можуть бути легко сконструйовані, оскільки новий вузол, який хоче приєднатися до мережі, може скопіювати існуючі з'єднання іншого вузла, а вже потім почати формувати свої власні. У неструктурованій мережі P2P, якщо вузол бажає знайти певні дані в мережі, запит доведеться передати майже через всю мережу, щоб охопити так багато вузлів, як можливо. Головним недоліком таких мереж є те, що запити, можливо, не завжди вирішуються. | + | *Неструктурована мережа P2P формується, коли з'єднання встановлюються довільно. Такі мережі можуть бути легко сконструйовані, оскільки новий вузол, який хоче приєднатися до мережі, може скопіювати існуючі з'єднання іншого вузла, а вже потім почати формувати свої власні. У неструктурованій мережі P2P, якщо вузол бажає знайти певні дані в мережі, запит доведеться передати майже через всю мережу, щоб охопити так багато вузлів, як можливо. Головним недоліком таких мереж є те, що запити, можливо, не завжди вирішуються. Скоріш за все популярні дані будуть доступні в багатьох вузлів та пошук швидко знайде потрібне, але якщо вузол шукає рідкісні дані, наявні лише в декількох інших вузлів, то надзвичайно малоймовірно, що пошук буде успішним. Оскільки немає ніякої кореляції між вузлами та даними, що вони зберігають, немає ніякої гарантії, що запит знайде вузол, який має бажані дані. |
+ | |||
*Структурована мережа P2P використовує єдиний алгоритм, щоб гарантувати, що будь-який вузол може ефективно передати запит іншому вузлу, який має бажаний файл, навіть якщо файл надзвичайно рідкісний. Така гарантія потребує структуровану систему з'єднань. На даний момент найбільш популярним типом структурованої мережі P2P є розподілені хеш-таблиці, в яких хешування використовується для встановлення зв'язку між даними та конкретним вузлом, який за них відповідає. | *Структурована мережа P2P використовує єдиний алгоритм, щоб гарантувати, що будь-який вузол може ефективно передати запит іншому вузлу, який має бажаний файл, навіть якщо файл надзвичайно рідкісний. Така гарантія потребує структуровану систему з'єднань. На даний момент найбільш популярним типом структурованої мережі P2P є розподілені хеш-таблиці, в яких хешування використовується для встановлення зв'язку між даними та конкретним вузлом, який за них відповідає. | ||
− | |||
'''За функціями:''' | '''За функціями:''' | ||
*Розподілені обчислення - обчислювальна проблема розподіляються на невеликі незалежні частини. Обробка кожної з частин робиться на індивідуальному ПК і результати збираються на центральному сервері. Цей центральний сервер відповідальний за розподілення елементів роботи серед окремих комп'ютерів в Інтернеті. Кожен із зареєстрованих користувачів має клієнтське програмне забезпечення. Воно користується періодами бездіяльності в ПК (часто це характеризується часами активації скрінсейверів), щоб виконувати деяке обчислення, надане сервером. Після того, як обчислення закінчене, результат посилається назад до сервера, і нова робота передається для клієнта. | *Розподілені обчислення - обчислювальна проблема розподіляються на невеликі незалежні частини. Обробка кожної з частин робиться на індивідуальному ПК і результати збираються на центральному сервері. Цей центральний сервер відповідальний за розподілення елементів роботи серед окремих комп'ютерів в Інтернеті. Кожен із зареєстрованих користувачів має клієнтське програмне забезпечення. Воно користується періодами бездіяльності в ПК (часто це характеризується часами активації скрінсейверів), щоб виконувати деяке обчислення, надане сервером. Після того, як обчислення закінчене, результат посилається назад до сервера, і нова робота передається для клієнта. | ||
+ | |||
*Файлообмін - це одна з областей, де технологія P2P була найуспішнішою. Мультимедійні дані, наприклад, вимагають великих файлів. Napster і Gnutella використовувались користувачами, щоб обійти обмеження пропускної спроможності, які роблять передачу великих файлів неприйнятними. | *Файлообмін - це одна з областей, де технологія P2P була найуспішнішою. Мультимедійні дані, наприклад, вимагають великих файлів. Napster і Gnutella використовувались користувачами, щоб обійти обмеження пропускної спроможності, які роблять передачу великих файлів неприйнятними. | ||
+ | |||
*Співпраця - структура технології P2P робить її добре придатною для забезпечення співпраці між користувачами. Це може бути обмін повідомленнями, онлайн ігри, сумісна робота над документами в бізнесі, освіті та дома. | *Співпраця - структура технології P2P робить її добре придатною для забезпечення співпраці між користувачами. Це може бути обмін повідомленнями, онлайн ігри, сумісна робота над документами в бізнесі, освіті та дома. | ||
− | |||
− | |||
'''За ступенем централізації:''' | '''За ступенем централізації:''' | ||
Рядок 106: | Рядок 96: | ||
*Гібридні peer-to-peer системи - мають центральний сервер, що зберігає інформацію про вузли та відповідає на запити відносно цієї інформації. Вузли займаються забезпеченням ресурсами (тому що центральний сервер їх не має), повідомленням сервера про наявність цих ресурсів надання ресурсів іншим вузлам, які бажають ними скористатися. | *Гібридні peer-to-peer системи - мають центральний сервер, що зберігає інформацію про вузли та відповідає на запити відносно цієї інформації. Вузли займаються забезпеченням ресурсами (тому що центральний сервер їх не має), повідомленням сервера про наявність цих ресурсів надання ресурсів іншим вузлам, які бажають ними скористатися. | ||
+ | =Частково децентралізовані (гібридні) мережі= | ||
+ | Крім чистих P2P-мереж, існують так звані гібридні мережі, в яких існують сервери, що використовуються для координації роботи, пошуку або надання інформації про існуючі машини мережі і їх статус (on-line, off-line і т. Д.). Гібридні мережі поєднують швидкість централізованих мереж і надійність децентралізованих завдяки гібридним схемам з незалежними індексаційних серверами, синхронізуючими інформацію між собою. При виході з ладу одного або декількох серверів мережа продовжує функціонувати. До частково децентралізованих мереж відносяться, наприклад: EDonkey, BitTorrent, Direct Connect, The Onion Router. | ||
+ | =Пірінгова файлообмінна мережа= | ||
+ | Одна з областей застосування технології тимчасових мереж - це обмін файлами. Користувачі файлообмінної мережі викладають які-небудь файли в так звану «Розширену» (англ. Share - ділитися) директорію, вміст якої доступно для скачування іншим користувачам. Який-небудь інший користувач мережі посилає запит на пошук якого-небудь файлу. Програма шукає у клієнтів мережі файли, відповідного запиту, і показує результат. Після цього користувач може завантажити файли у знайдених джерел. У сучасних файлообмінних мережах інформація завантажується відразу з декількох джерел. Її цілісність перевіряється по контрольних сумах. | ||
− | -- | + | Багато поширювані в таких мережах файли, які не є вільними для розповсюдження з юридичної точки зору, поширюються в них без дозволу правовласників. Відео видавницькі і звуко записні компанії стверджують, що це призводить до значного недоотриманння ними прибутку. Проблем їм додає той факт, що припинити поширення файлу в децентралізованої мережі технічно неможливо - для цього буде потрібно фізично відключити від мережі всі машини, на яких лежить цей файл, а таких машин може бути дуже і дуже багато - залежно від популярності файлу їх число може досягати декількох сотень тисяч. Останнім часом відео видавницькі і звуко записні компанії почали подавати в суд на окремих користувачів таких мереж, звинувачуючи їх у незаконному розповсюдженні музики і відео. |
+ | Такі організації, як RIAA, дискредитують пирингові мережі, публікуючи в них фальшиві файли (зміст яких не відповідає назві, часто носить порнографічний характер). Це призвело до втрати популярності мережі KaZaA на користь eDonkey, що має більш досконалу архітектуру. | ||
+ | Незважаючи на те, що в лютому 2006 припинив роботу найпопулярніший сервер мережі eD2k - Razorback, і була припинена розробка комерційного клієнта EDonkey2000, сама мережа ED2K продовжує функціонувати, оскільки не зав'язана на конкретні сервери і існує велика кількість вільно розповсюджуваних клієнтських програм типу eMule і mlDonkey. | ||
− | == | + | =Пірінгові мережі розподілених обчислень= |
+ | Технологія пірінгових мереж (що не піддаються квазісинхронного обчисленню) застосовується також для розподілених обчислень. Вони дозволяють у порівняно короткі терміни виконувати справді величезний об'єм обчислень, який навіть на суперкомп'ютерах понадобився би, залежно від складності завдання, багатьох років і навіть століть роботи. Така продуктивність досягається завдяки тому, що деяке глобальне завдання розбивається на велику кількість блоків, які одночасно виконуються сотнями тисяч комп'ютерів, які беруть участь у проекті. Один із прикладів такого використання пірінгових мереж використовує компанія Sony в ігрових приставках Sony PlayStation. | ||
+ | =Переваги P2P= | ||
*Розподіл та зменшення вартості- архітектура P2P може допомогти розподілити вартість серед користувачів. Економія коштів, здійснюється за допомогою використання та об'єднання ресурсів, які в іншому випадку не використовуються. | *Розподіл та зменшення вартості- архітектура P2P може допомогти розподілити вартість серед користувачів. Економія коштів, здійснюється за допомогою використання та об'єднання ресурсів, які в іншому випадку не використовуються. | ||
Рядок 122: | Рядок 120: | ||
*Динамічність - системи P2P припускають, що оточення надзвичайно динамічне. Тобто, ресурси, як наприклад вузли, з'являються та зникають із системи безперервно. У випадках комунікації, як наприклад мережі для обміну повідомленнями, використовуються так званий «список контактів», щоб інформувати користувачів, коли їхні друзі стають доступними. Без цього, потрібно було би, щоб користувачі «опитували» партнерів, посилаючи періодичні повідомлення. У випадку розподілених обчислень, як наприклад distributed.net і SETI@home, система повинна пристосуватись до заміни учасників. Тому вони повинні повторно видавати завдання для обчислення іншим учасникам, щоб гарантувати, що робота не втрачена, якщо попередні учасники відпадають від мережі, поки вони виконували крок обчислення. | *Динамічність - системи P2P припускають, що оточення надзвичайно динамічне. Тобто, ресурси, як наприклад вузли, з'являються та зникають із системи безперервно. У випадках комунікації, як наприклад мережі для обміну повідомленнями, використовуються так званий «список контактів», щоб інформувати користувачів, коли їхні друзі стають доступними. Без цього, потрібно було би, щоб користувачі «опитували» партнерів, посилаючи періодичні повідомлення. У випадку розподілених обчислень, як наприклад distributed.net і SETI@home, система повинна пристосуватись до заміни учасників. Тому вони повинні повторно видавати завдання для обчислення іншим учасникам, щоб гарантувати, що робота не втрачена, якщо попередні учасники відпадають від мережі, поки вони виконували крок обчислення. | ||
− | = | + | =Протоколи P2P та програми для роботи з ними= |
− | P2P- | + | Наибільш популярними протоколами файлообміну є BitTorrent для трекерів і DC++ для локальних мереж провайдерів. Перевагою (або недоліком) BitTorrent перед тою ж DC++ є безумовне пряме рейтингування користувачів, що спонукає їх не лише качати, але і роздавати, а також більш правильне «розмазування» файла по пірах (завжди качаєтся найрідкісніший шматок файлу в першу чергу). Крім того, BitTorrent нормально співіснує з NAT’ом. |
+ | |||
+ | '''DirectConnect''' — P2P-протокол для обміну інформацією. Основою DC-мережі є «хаби» — сервери, не пов'язані між собою, до яких підключаються інші користувачі. | ||
+ | Тобто на комп'ютер ставиться спеціальна програма - DC-кліент, в якому вказується які папки зробити "загальнодоступними", після чого він підключається до загального сервера в локальній мережі, і через сервер дозволяє побачити інші комп'ютери підключені до нього. | ||
+ | |||
+ | '''BitTorrent''' — відкритий протокол обміну інформацією у мережах типу peer-to-peer. | ||
+ | |||
+ | Протокол розробляли таким чином, аби обмін файлами великих розмірів у мережі був полегшений для її учасників. Один із принципів роботи протоколу BitTorrent такий: навантаження на учасника що розповсюджує деякий файл зменшується, завдяки тому що клієнти, які його скачують починають обмінюватися даними між собою одразу, навіть поки файл повністю не скачано. Таким чином, клієнти які скачали певну частину великого файлу одразу можуть бути джерелами його розповсюдження. | ||
+ | |||
+ | Загальні особливості: | ||
+ | |||
+ | *відсутність черг на скачування; | ||
+ | *файли закачуються невеликими фрагментами; чим менше доступний фрагмент, тим частіше він передаватиметься. Таким чином, присутність в мережі «сідера» з повним файлом для завантаження необов'язково — система розподіляє сегменти між «пірами» , щоб в подальшому вони могли обмінюватися відсутніми сегментами; | ||
+ | *клієнти (піри) обмінюються сегментами безпосередньо між собою, за принципом «ти — мені, я — тобі»; | ||
+ | *завантажені фрагменти стають негайно доступні іншим клієнтам; | ||
+ | *контролюється цілісність кожного фрагмента; | ||
+ | *на фрагменти розбиваються не окремі файли, а вся роздача, тому у «лічера», який побажав завантажити лише деякі файли з роздачі, для підтримки цілісності фрагментів часто буде зберігатися також невеликий обсяг надлишкової(для нього)інформації; | ||
+ | *як об'єкт роздачі можуть виступати декілька файлів (наприклад, вміст каталогу). | ||
+ | |||
+ | Принципи протоколу BitTorrent роботи із сервером (трекером) базуються на протоколі eDonkey2000, DHT-мережа - це та ж Kad Network (Kademlia) від eDonkey, перероблена для протоколу BitTorrent, а magnet-посилання — это те ж ed2k-посилання, додане у функціонал торрента значно пізніше. | ||
+ | |||
+ | '''uTorrent''' — BitTorrent-клієнт для Microsoft Windows, написаний на мові C++, що відрізняється невеликим розміром та | ||
+ | достатньою функціональністю. Виконавчий файл µTorrent займає на диску менше 2 МБ. | ||
+ | |||
+ | Деякі можливості програми: | ||
+ | |||
+ | *обмеження максимальних швидкостей завантаження і віддачі; | ||
+ | *налаштування цих обмежень залежно від часу; | ||
+ | *обмеження максимальних швидкостей кожного завдання; | ||
+ | *налаштування кешування файлів на жорсткому диску; | ||
+ | *підтримка DHT і Peer Exchange; | ||
+ | *режим початкової роздачі (суперсид); | ||
+ | *автоматичне закачування торрентів із стрічки новин RSS; | ||
+ | *підтримка проксі-серверів; | ||
+ | *можливість підключення до трекера по HTTPS; | ||
+ | *шифрування протоколу, сумісне з Azureus, BitTorrent і BitComet; | ||
+ | *підтримка Юнікоду у всіх версіях Windows; | ||
+ | *підтримка UPnP в всіх версіях Windows; | ||
+ | *підтримка операційної системи Windows Vista; | ||
+ | *налаштування інтерфейсу програми; | ||
+ | *веб-інтерфейс (віддалене управління програмою з браузеру) — доступний в бета-версії; | ||
+ | *можливість запуску на GNU/Linux і Macintosh з допомогою Wine. | ||
+ | |||
+ | '''eMule''' — одна з найпопулярніших безкоштовних програм для обміну файлами в мережі eDonkey, яка витіснила решту клієнтів для мережі ED2K. | ||
+ | |||
+ | Список деяких властивостей eMule: | ||
− | + | *клієнт використовує декілька мереж, щоб створити одну надійну мережу (ED2K, Source Exchange, Kad ). | |
+ | *система черги і кредитів допомагають добитися того, щоб кожна людина отримала потрібні йому файли набагато швидше, якщо він закачуватиме (upload) той же файл іншим користувачам. | ||
+ | *кожен файл перевіряється на помилки у міру скачування, щоб переконатися, що він викачаний правильно. | ||
+ | *автоматичні настройки і Диспетчер джерел роблять можливим одночасне скачування декількох файлів без необхідності стежити за роботою клієнта. | ||
+ | *Функція "Передперегляд" дозволяє проглянути недокачанные Фільми і заглянути в Архіви ще до того, як вони викачані до кінця. | ||
+ | *eMule має вэб-сервіси і вэб-сервер, що дозволяють управляти клієнтом через інтернет або з мобільного телефону (телефон повинен підтримувати Java). | ||
+ | *створити категорії для закачувань, і розсортувати їх як завгодно. | ||
+ | *для пошуку будь-яких файлів, eMule пропонує цілий ряд способів: На Сервері (локально і глобально), в WWW (Jigle, FileDonkey), в мережі Kad (Альфа-версия). | ||
+ | *eMule дозволяє використовувати дуже складні Булеві (Boolean) пошуки, які роблять пошук набагато гнучкішим. | ||
+ | *є можливість відправляти повідомлення інших клієнтів, і додавати їх в список друзів. | ||
+ | '''StrongDC++''' — безкоштовний клієнт для обміну файлами в мережах Direct Connect. | ||
− | + | Основні відімінності StrongDC++: | |
+ | *безпомилкове завантаження в декілька потоків | ||
+ | *завантажує один файл у декількох користувачів одночасно без його пошкодження! Цей спосіб значно збільшує швидкість завантаження, особливо на швидких каналах, і він безпечніше класичного. Позиція сегмента і розмір визначаються об’ємом файлу і швидкістю. | ||
+ | *обмін частинами файлу | ||
+ | *може завантажувати і віддавати завершені частини файлу, що знаходиться в процесі завантаження. Таким чином, це збільшує швидкість завантаження і розповсюдження файлу по мережі. | ||
+ | *обмеження швидкості завантаження/звантаження | ||
+ | *не охоплює канал цілком, очевидно, щоб залишити трішки швидкості для огляду сторінок. | ||
+ | *автоматичне відключення повільних завантажень. | ||
+ | *можливість розширених налаштуваннь | ||
− | + | '''BitComet''' — швидка, легка у використанні програма для обміну файлами по протоколах BitTorrent, HTTP и FTP. | |
+ | Загальні особливості: | ||
− | + | *підтримує одночасне викачування декількох файлів з можливістю встановлення пріоритету завантаження; | |
+ | *може створювати черговість завантаження; | ||
+ | *має можливість швидкої зупинки / відновлення закачування файлів; | ||
+ | *працює з проксі-сервером; | ||
+ | *може автоматично знижувати швидкість "віддачі" файлів іншим учасникам мережі Bittorrent, якщо на комп'ютері користувача падає швидкість завантаження; | ||
+ | *присутній автоматична оптимізація настройок з'єднання для спільної роботи з брандмауером, а також з іншими менеджерами завантаження. | ||
+ | '''Shareaza''' — безкоштовна програма яка призначена для завантаження файлів через різні файлообмінні мережі (eDonkey2000, BitTorrent, Gnutella, Gnutella2 (G2)). | ||
− | + | '''Vuze''' — безкоштовна повнофункціональна програма для зручного обміну файлами в мережі BitTorrent. | |
+ | Основні характеристики Vuze: | ||
− | + | *технології peer exchange і розподілені хеш-таблиці (DHT), що знижують залежність клієнта Vuze від трекера. | |
+ | *підтримка технологій Upnp, NAT Port Mapping Protocol і NAT traversal забезпечує кращу роботу Vuze в локальних мережах. | ||
+ | *можливість роздачі в режимі super-seeding, що сприяє швидкій появі нових роздавальників. | ||
+ | *технологія web seeding (Http/ftp Seeding for Bittorrent). | ||
+ | *підтримка посилань на P2p-контент, так званих magnet links. | ||
+ | *можливість роботи Vuze через проксі-сервер. Шифрування протоколу. | ||
+ | *підтримка Ipv6. Підтримка Юнікода. | ||
+ | *підтримка великої кількості завантажень. | ||
+ | *ліміти завантаження і відвантаження, як глобальні так і для кожного торента окремо. | ||
+ | *розширені правила сидів. Регульований кеш диска. | ||
+ | *використання одного порту для всіх торентів. | ||
+ | *можливість використання проксі для трекера і зв’язку. | ||
+ | *швидке відновлення завантаження. | ||
+ | *багатомовний інтерфейс Vuze (у тому числі український і російський), що легко налаштовується. | ||
+ | =P2P месенджери= | ||
+ | ==BitTorrent Bleep== | ||
+ | Мережа Bleep багато в чому заснована на протоколі BitTorrent, з деякими доповненнями, які ще більше підсилюють безпеку учасників спілкування. Розробники запевняють, що при роботі Bleep використовується все та ж розподілена мережа BitTorrent, а будь-яка інформація шифрується. Це дозволяє залишити інформацію про розташування співбесідників закритою для посторонніх, зібрати метадані з інформацією про учасників спілкування «майже неможливо». Проте код проекту закритий, а для пробивання NAT використовуються сервери BitTorrent, тому невідомо, які дані лишаються на серверах компанії. | ||
− | + | ==Tox== | |
+ | Tox - вільне програмне забезпеченя з відкритим вихідним кодом, для зашифрованого миттєвого обміну повідомленнями та відеозв'язку. Історія проекту розпочалася в 2013 році, pre-альфа-тестування - у 2014. | ||
+ | Будь-хто може створити клієнт, який використовує ядро Tox. Також існує веб-версія із сервером на Go та плагіни для Pidgin і Miranda NG. Існує версія ядра, написана на Rust. | ||
− | + | Центральний сервер відсутній, пошук співрозмовників відбувається через DHT. Використовує пірінговий обмін інформацією для поліпшення пропускної здатності, але на відміну від Skype, не вимагає реєстрації для використання, а ідентифікатор користувача створюється локально. Після установки клієнту Tox автоматично створюється пара ключів. Публічний ключ можна передавати кому завгодно - він служить як унікальний ідентифікатор для пошуку співрозмовника. Секретний ключ зберігається тільки у власника і підтверджує його справжність, не розкриваючи персональні дані. |
Поточна версія на 19:58, 7 вересня 2017
Зміст
- 1 ВСТУП
- 2 Типи файлообмінних мереж
- 3 P2P мережа
- 4 Історія
- 5 Анонімні peer-to-peer мережі
- 6 Класифікація P2P систем
- 7 Частково децентралізовані (гібридні) мережі
- 8 Пірінгова файлообмінна мережа
- 9 Пірінгові мережі розподілених обчислень
- 10 Переваги P2P
- 11 Протоколи P2P та програми для роботи з ними
- 12 P2P месенджери
ВСТУП
P2P (Peer-to-peer) - архітектура систем, в основі якої лежить мережа рівноправних вузлів. Фраза «peer-to-peer» була вперше використана у 1984 році Парбауелом Йохнухуйтсманом (Parbawell Yohnuhuitsman) при розробці архітектури Advanced Peer to Peer Networking фірми IBM.
P2P-мережа — це спосіб організації мережі, при якому всі її учасники мають однакові привілеї: є і клієнтами і серверами одночасно. Одна з областей застосування технології таких мереж — обмін файлами. Користувачі файлообмінної мережі викладають які-небудь файли в «розшарені» директорії, вміст яких доступний для звантажування іншим користувачам. Який-небудь інший користувач мережі відправляє запит на пошук якого-небудь файлу. Програма шукає в клієнтів мережі файли, що відповідають запиту, і показує результат. Після цього користувач може звантажити файли зі знайдених джерел.
Даний тип мережі побудований на принципі рівноправності учасників і характеризуються тим, що їх елементи можуть зв'язуватися між собою, на відміну від традиційної архітектури, коли лише окрема категорія учасників, яка називається серверами може надавати певні сервіси іншим.
В P2P мережі не існує поняття клієнтів або серверів, лише рівні вузли, які одночасно функціонують як клієнти та сервери по відношенню до інших вузлів мережі. Така організація дозволяє зберігати працездатність мережі при будь-якій конфігурації доступних її учасників. Проте практикується використання P2P мереж які все ж таки мають сервери. Автономні вузли взаємодіють з іншими автономними вузлами. Вузли є автономними в тому сенсі, що не існує загальної влади, яка може контролювати їх. В результаті автономії вузлів, вони не можуть довіряти один одному та покладатися на поведінку інших вузлів, тому проблеми масштабування та надмірності стають більш важливими ніж у випадку традиційної архітектури.
Типи файлообмінних мереж
- Локальні файлообмінні мережі. BitTorrent-трекери, DirectConnect (DC++). Централізовані мережі, але передбачають існування великої кількості серверів різного масштабу (так званих «трекерів» чи «хабів»). Не дивлячись на «локальність», існують доволі великі файлообмінники світового масштабу: The Pirate Bay, великі DC++ хаби і т. д.
- Частково централізовані мережі з багатьма серверами. Файлообмінники другого покоління, наприклад eDonkey та Kazaa. Поступово відійшли на другий план.
- Повністю децентралізовані мережі. Файлообмінники третього покоління, такі як Overnet і Kad Network (для клієнтів типу eMule), Гнутелла (і її форк), DHT (і magnet посилання) у BitTorrent, а також японські WinNY, Share і Perfect Dark.
- Даркнети. Пірингові мережі останнього покоління, які використовують спеціальні прийоми анонімізації, засновані на обмеженні безпосередніх з'єдннань деякою кількістю визначених користувачем так званих «друзів» (принцип F2F: friend-to-friend), що теоретично дозволяє уникнути деанонімізуючих атак.
P2P мережа
Більшість людей використовують інтернет для скачування різної інформації. Як правило всі намагаються її завантажити безкоштовно. Але людей багато, і якщо інформація буде розташована тільки на одному сервері, тоді канал сервера буде перевантажений і вона стане не доступною. Але як бути в такому випадку? Адже не багато хто хоче платити за те, щоб їхня інформація була доступна всьому світу безкоштовно.
Для цього придумали P2P мережі. Принцип роботи P2P дуже простий. Бажаючий передати інформацію створює торрент файл і запускає роздачу інформації. Бажаючі скачати інформацію завантажує цей торрент файл, його розміром можна знехтувати, тому що він значно малий у порівнянні з розміром самої інформації, і починають скачування інформації. Але в чому ж тоді перевагу?
Як тільки хтось скачав шматок інформації у роздає, він тут же починає його роздавати. Іншими словами кожен учасник P2P мережі не тільки викачує, але передає скачану інформацію іншим учасникам. Тим самим немає необхідності у великій пропускній спроможності каналу у джерела інформації.
Той хто має всі шматки інформації, тобто той хто роздає, але нічого не викачує називається сідером. Той хто має потребу в інформації і завантажує її - лічером. Як тільки лічер викачує всю інформацію, він починає її роздавати і стає сідером. У цьому ще одна перевага P2P мережі.
Якщо у когось є цікавий фільм, музика, книга, гра або ще щось і він хоче поділитися з усіма, йому не обов'язково мати швидкий інтернет і постійно перебувати в мережі. Йому достатньо лише створити торрент, запустити роздачу і дочекатися, коли кожен шматок роздається інформації буде завантажено хоча б один раз. Далі він може відключиться, при цьому інші зможуть продовжити скачування як ні в чому не бувало. Вони будуть обмінюватися між собою шматками завантаженої інформації.
Але як же учасники знаходять один одного? Для допомоги знаходження учасників, що викачують потрібну їм інформацію існує так званий трекер, який керує торентами. Спочатку учасник приєднується до трекера, викачує від туди інформацію про інших учасників, а потім вже починає обмінюватися інформацією з ними.
Яку інформацію можна передати через P2P мережі? Абсолютно будь-яку. Через P2P мережі зазвичай качають кіно, серіали, ігри, програми, музику, книги та фотографії. Дуже важко знайти сайт, де можна скачати той чи інший фільм безкоштовно, але за допомогою P2P мережі, можна абсолютно безкоштовно завантажити його у інших користувачів інтернету.
Які програми необхідні для роботи в P2P мережах? Для роботи з торентами потрібен будь-який клієнт bittorent. Деякі клієнти можуть бути не сумісні з різними трекерами. Один з популярних і безкоштовних клієнтів - uTorrent.
Історія
Сама технологія Р2Р існує з часів виникнення USENET та FidoNet.
USENET (1979 р.) — це розподілена мережа, яка забезпечує спілкування у групах новин. Обмін файлами відбувався за допомогою телефонних ліній, зазвичай протягом ночі, тому що це було дешевше. Таким чином не було ефективного способу централізувати такий сервіс як USENET.
FidoNet, як і USENET, — це децентралізована, розподілена мережа для обміну повідомленнями. FidoNet був створений у 1984 році Томом Дженнінгсом як засіб для обміну повідомленнями між користувачами різних BBS.
Перше покоління P2P мереж
Популяризація і поточна ера peer-to-peer почалась із створення мережі Napster. Napster почав стикатися із проблемами з законом. Мережа мала виділений центральний сервер і, як стверджувалося, хоча сама система безпосередньо не є порушенням законодавства, проте її існування сприяє цьому. У травні 1999 Napster надав кінцевим користувачам можливість роздавати та обмінюватись їх улюбленою музикою безпосередньо з іншими кінцевими користувачами. Мережа використовувала центральний сервер, зокрема для пошукових цілей. Кількість користувачів Napster в лютому 2001 складала 26.4 мільйона. У цей час з'явилося багато клонів Napster. Всі мали однакову архітектуру: один центральний сервер з великою кількістю клієнтів. Центральний сервер полегшував зв'язки клієнта та пошук. Як тільки бажана пісня була знайдена, сервер забезпечував прямий зв'язок між двома клієнтами, так вони могли передавати файли.
Після появи Napster було створено мережу EDonkey2000. Перевага eDonkey над Napster полягала у тому, що мережа дозволяла проводити зкачування різних частин одного файлу, одночасно із різних учасників мережі, які його надають. Іншою перевагою eDonkey було те, що згодом, серверне забезпечення набуло функціональності міжсерверного зв'язку, що дозволило виконувати пошук інформації на учасниках мережі що були під'єднані до різних серверів. Незважаючи на названі переваги, через використання серверів, ця мережа не була чистою peer-to-peer мережою.
Друге покоління P2P мереж
Друге покоління пірінгових мереж характеризується відсутністю центральних серверів та, при цьому, принциповою можливістю пошуку серед учасників мережі. Проте алгоритми пошуку у мережах другого покоління мали характер «хвильового» розповсюдження запитів та були не дуже ефективними.
Джастін Франкел вирішив створити мережу без центрального індексного сервера - Gnutella. Найкращими прикладами є Gnutella, Kazaa або Emule з Kademlia, серед яких лише Kazaa ще має центральний сервер для реєстрації. eDonkey2000/Overnet, Gnutella, FastTrack і Ares Galaxy мають приблизно 10.3 мільйонів користувачів (на квітень 2006 року, згідно зі slyck.com).
Третє покоління P2P мереж
Третє покоління P2P мереж характеризується децентралізованою структурою, та принципово новими алгоритмами пошуку, які базуються на ключовому понятті розподіленої хеш-таблиці (Distributed hash table), що допомагають вирішувати проблему масштабування, обираючи різні вузли, щоб індексувати певні значення хеш-функції (які використовуються, щоб ідентифікувати файли), дозволяючи швидкий та ефективний пошук будь-якого файлу у мережі.
Починаючи з версії 4.2.0 офіційного BitTorrent клієнта, в ньому реалізована функція безтрекерної роботи, яка базується на протоколі Kademlia. У таких системах трекер доступний децентрально, на клієнтах-учасниках мережі, у формі розподіленої хеш-таблиці.
Анонімні peer-to-peer мережі
Приклади анонімних мереж — Freenet, I2P, ANts P2P, RShare, GNUnet і Entropy. Також прикладом децентралізованої мережі є система анонімної цифрової грошової одиниці Bitcoin.
Певна ступінь анонімності реалізовується шляхом направлення даних через інших вузли. Це робить важкою ідентифікацію того, хто завантажує або хто пропонує файли. Більшість цих програм також мають вбудоване шифрування.
Поточні реалізації мереж такого типу потребують багато ресурсів для забезпечення анонімності, що робить їх повільними або складними для використання. Проте, в країнах, де дуже швидкий домашній доступ до Інтернет, як наприклад Японія, ряд анонімних файлообмінних мереж вже досягли високої популярності.
Invisible Internet Project (I2P) - анонімна, самоорганізована, розподілена і опенсорсна децентралізована мережа. По факту це зв'язка тунелів, які передають дані через Інтернет. В мережі немає DNS, замість них використовують так звані адресні книги, які, подібно до торренту, постійно автоматично оновлюються у всіх клієнтів від інших клієнтів. У них йде співставлення назви сайту чи іншого ресурсу, відомого як «http://назва_сайту.i2p», з його фактичною адресою (відкритим криптографічним ключем). Замість IP-адрес у всій мережі використовуються відкриті криптографічні ключі, які не мають абсолютно жодного логічного зв'язку з реальними комп'ютерами. Навіть знаючи ці ключі, неможливо визначити місцезнаходження не лише користувачів, але і серверів. Взагалі. Саме тому I2P неможливо відключити, відфільтрувати чи заблокувати. В I2P використовується чаникова маршрутизація (розширення цибулинної маршрутизації з TOR), багатошарове шифрування, односторонні тунелі, розходження шифрованих пакетів кількома різними тунелями і так далі). Для додаткового захисту кожен пакет шифрується з використанням наступних алгоритмів:
- 256 біт AES підсилений режим CBC з PKCS#5;
- 2048 біт Схема Ель-Гамаля;
- 1024 біт DSA;
- 2048 біт Алгоритм Діффі — Хеллмана;
- 256 біт HMAC — алгоритм перевірки цілістності повідомлень;
- Хешування SHA256.
Класифікація P2P систем
В залежності від того, як вузли з'єднуються один з одним можна поділити мережі на структуровані та неструктуровані:
- Неструктурована мережа P2P формується, коли з'єднання встановлюються довільно. Такі мережі можуть бути легко сконструйовані, оскільки новий вузол, який хоче приєднатися до мережі, може скопіювати існуючі з'єднання іншого вузла, а вже потім почати формувати свої власні. У неструктурованій мережі P2P, якщо вузол бажає знайти певні дані в мережі, запит доведеться передати майже через всю мережу, щоб охопити так багато вузлів, як можливо. Головним недоліком таких мереж є те, що запити, можливо, не завжди вирішуються. Скоріш за все популярні дані будуть доступні в багатьох вузлів та пошук швидко знайде потрібне, але якщо вузол шукає рідкісні дані, наявні лише в декількох інших вузлів, то надзвичайно малоймовірно, що пошук буде успішним. Оскільки немає ніякої кореляції між вузлами та даними, що вони зберігають, немає ніякої гарантії, що запит знайде вузол, який має бажані дані.
- Структурована мережа P2P використовує єдиний алгоритм, щоб гарантувати, що будь-який вузол може ефективно передати запит іншому вузлу, який має бажаний файл, навіть якщо файл надзвичайно рідкісний. Така гарантія потребує структуровану систему з'єднань. На даний момент найбільш популярним типом структурованої мережі P2P є розподілені хеш-таблиці, в яких хешування використовується для встановлення зв'язку між даними та конкретним вузлом, який за них відповідає.
За функціями:
- Розподілені обчислення - обчислювальна проблема розподіляються на невеликі незалежні частини. Обробка кожної з частин робиться на індивідуальному ПК і результати збираються на центральному сервері. Цей центральний сервер відповідальний за розподілення елементів роботи серед окремих комп'ютерів в Інтернеті. Кожен із зареєстрованих користувачів має клієнтське програмне забезпечення. Воно користується періодами бездіяльності в ПК (часто це характеризується часами активації скрінсейверів), щоб виконувати деяке обчислення, надане сервером. Після того, як обчислення закінчене, результат посилається назад до сервера, і нова робота передається для клієнта.
- Файлообмін - це одна з областей, де технологія P2P була найуспішнішою. Мультимедійні дані, наприклад, вимагають великих файлів. Napster і Gnutella використовувались користувачами, щоб обійти обмеження пропускної спроможності, які роблять передачу великих файлів неприйнятними.
- Співпраця - структура технології P2P робить її добре придатною для забезпечення співпраці між користувачами. Це може бути обмін повідомленнями, онлайн ігри, сумісна робота над документами в бізнесі, освіті та дома.
За ступенем централізації:
- Чисті peer-to-peer системи - вузли є рівними, поєднуючи ролі серверу та клієнту. Не існує центрального сервера, що керує мережею. Прикладами таких систем є Gnutella та Freenet
- Гібридні peer-to-peer системи - мають центральний сервер, що зберігає інформацію про вузли та відповідає на запити відносно цієї інформації. Вузли займаються забезпеченням ресурсами (тому що центральний сервер їх не має), повідомленням сервера про наявність цих ресурсів надання ресурсів іншим вузлам, які бажають ними скористатися.
Частково децентралізовані (гібридні) мережі
Крім чистих P2P-мереж, існують так звані гібридні мережі, в яких існують сервери, що використовуються для координації роботи, пошуку або надання інформації про існуючі машини мережі і їх статус (on-line, off-line і т. Д.). Гібридні мережі поєднують швидкість централізованих мереж і надійність децентралізованих завдяки гібридним схемам з незалежними індексаційних серверами, синхронізуючими інформацію між собою. При виході з ладу одного або декількох серверів мережа продовжує функціонувати. До частково децентралізованих мереж відносяться, наприклад: EDonkey, BitTorrent, Direct Connect, The Onion Router.
Пірінгова файлообмінна мережа
Одна з областей застосування технології тимчасових мереж - це обмін файлами. Користувачі файлообмінної мережі викладають які-небудь файли в так звану «Розширену» (англ. Share - ділитися) директорію, вміст якої доступно для скачування іншим користувачам. Який-небудь інший користувач мережі посилає запит на пошук якого-небудь файлу. Програма шукає у клієнтів мережі файли, відповідного запиту, і показує результат. Після цього користувач може завантажити файли у знайдених джерел. У сучасних файлообмінних мережах інформація завантажується відразу з декількох джерел. Її цілісність перевіряється по контрольних сумах.
Багато поширювані в таких мережах файли, які не є вільними для розповсюдження з юридичної точки зору, поширюються в них без дозволу правовласників. Відео видавницькі і звуко записні компанії стверджують, що це призводить до значного недоотриманння ними прибутку. Проблем їм додає той факт, що припинити поширення файлу в децентралізованої мережі технічно неможливо - для цього буде потрібно фізично відключити від мережі всі машини, на яких лежить цей файл, а таких машин може бути дуже і дуже багато - залежно від популярності файлу їх число може досягати декількох сотень тисяч. Останнім часом відео видавницькі і звуко записні компанії почали подавати в суд на окремих користувачів таких мереж, звинувачуючи їх у незаконному розповсюдженні музики і відео.
Такі організації, як RIAA, дискредитують пирингові мережі, публікуючи в них фальшиві файли (зміст яких не відповідає назві, часто носить порнографічний характер). Це призвело до втрати популярності мережі KaZaA на користь eDonkey, що має більш досконалу архітектуру.
Незважаючи на те, що в лютому 2006 припинив роботу найпопулярніший сервер мережі eD2k - Razorback, і була припинена розробка комерційного клієнта EDonkey2000, сама мережа ED2K продовжує функціонувати, оскільки не зав'язана на конкретні сервери і існує велика кількість вільно розповсюджуваних клієнтських програм типу eMule і mlDonkey.
Пірінгові мережі розподілених обчислень
Технологія пірінгових мереж (що не піддаються квазісинхронного обчисленню) застосовується також для розподілених обчислень. Вони дозволяють у порівняно короткі терміни виконувати справді величезний об'єм обчислень, який навіть на суперкомп'ютерах понадобився би, залежно від складності завдання, багатьох років і навіть століть роботи. Така продуктивність досягається завдяки тому, що деяке глобальне завдання розбивається на велику кількість блоків, які одночасно виконуються сотнями тисяч комп'ютерів, які беруть участь у проекті. Один із прикладів такого використання пірінгових мереж використовує компанія Sony в ігрових приставках Sony PlayStation.
Переваги P2P
- Розподіл та зменшення вартості- архітектура P2P може допомогти розподілити вартість серед користувачів. Економія коштів, здійснюється за допомогою використання та об'єднання ресурсів, які в іншому випадку не використовуються.
- Об'єднання ресурсів - кожен вузол в системі P2P приносить певні ресурси як наприклад обчислювальна потужність або пам'ять. У програмах, які потребують величезну кількість цих ресурсів, як наприклад intensive моделювання або розподілені файлові системи, природно використовувати P2P, щоб залучити ці ресурси. Розподілені обчислювальні системи, як наприклад SETI@Home, distributed.net, і Endeavours — очевидні приклади цього підходу. Об'єднуючи ресурси тисяч вузлів, вони можуть виконувати важкі з точки зору кількості обчислень функції.
- Вдосконалена масштабованість(надійність) - З відсутністю сильної центральної влади по відношенню до автономних вузлів, важливою метою є покращення масштабованості і надійності. Масштабованість і надійність визначаються в традиційному для розподілених систем сенсі, як наприклад використання пропускної спроможності — скільки вузлів можуть бути досягнуті від одного вузла, скільки вузлів може підтримуватися, скільки користувачів може підтримуватися.
- автономія- системи P2P підтримують рівень автономії, тому що вони вимагають, щоб кожен вузол робив необхідну для нього частину праці.
- Конфіденційність - пов'язаним із автономією є поняття анонімності і конфіденційності.Використовуючи структуру P2P, в якій дії виконуються локально, користувачі можуть уникати необхідності передавати будь-яку інформацію про себе до кого-небудь іншого. FreeNet — яскравий приклад того, як анонімність може вбудуватися в додаток P2P. Він пересилає повідомлення через інші вузли, щоб забезпечити неможливість вистежування початкового автора. Це збільшує анонімність, використовуючи імовірнісні алгоритми таким чином, щоб походження не можливо було легко відстежити аналізуючи трафік у мережі.
- Динамічність - системи P2P припускають, що оточення надзвичайно динамічне. Тобто, ресурси, як наприклад вузли, з'являються та зникають із системи безперервно. У випадках комунікації, як наприклад мережі для обміну повідомленнями, використовуються так званий «список контактів», щоб інформувати користувачів, коли їхні друзі стають доступними. Без цього, потрібно було би, щоб користувачі «опитували» партнерів, посилаючи періодичні повідомлення. У випадку розподілених обчислень, як наприклад distributed.net і SETI@home, система повинна пристосуватись до заміни учасників. Тому вони повинні повторно видавати завдання для обчислення іншим учасникам, щоб гарантувати, що робота не втрачена, якщо попередні учасники відпадають від мережі, поки вони виконували крок обчислення.
Протоколи P2P та програми для роботи з ними
Наибільш популярними протоколами файлообміну є BitTorrent для трекерів і DC++ для локальних мереж провайдерів. Перевагою (або недоліком) BitTorrent перед тою ж DC++ є безумовне пряме рейтингування користувачів, що спонукає їх не лише качати, але і роздавати, а також більш правильне «розмазування» файла по пірах (завжди качаєтся найрідкісніший шматок файлу в першу чергу). Крім того, BitTorrent нормально співіснує з NAT’ом.
DirectConnect — P2P-протокол для обміну інформацією. Основою DC-мережі є «хаби» — сервери, не пов'язані між собою, до яких підключаються інші користувачі. Тобто на комп'ютер ставиться спеціальна програма - DC-кліент, в якому вказується які папки зробити "загальнодоступними", після чого він підключається до загального сервера в локальній мережі, і через сервер дозволяє побачити інші комп'ютери підключені до нього.
BitTorrent — відкритий протокол обміну інформацією у мережах типу peer-to-peer.
Протокол розробляли таким чином, аби обмін файлами великих розмірів у мережі був полегшений для її учасників. Один із принципів роботи протоколу BitTorrent такий: навантаження на учасника що розповсюджує деякий файл зменшується, завдяки тому що клієнти, які його скачують починають обмінюватися даними між собою одразу, навіть поки файл повністю не скачано. Таким чином, клієнти які скачали певну частину великого файлу одразу можуть бути джерелами його розповсюдження.
Загальні особливості:
- відсутність черг на скачування;
- файли закачуються невеликими фрагментами; чим менше доступний фрагмент, тим частіше він передаватиметься. Таким чином, присутність в мережі «сідера» з повним файлом для завантаження необов'язково — система розподіляє сегменти між «пірами» , щоб в подальшому вони могли обмінюватися відсутніми сегментами;
- клієнти (піри) обмінюються сегментами безпосередньо між собою, за принципом «ти — мені, я — тобі»;
- завантажені фрагменти стають негайно доступні іншим клієнтам;
- контролюється цілісність кожного фрагмента;
- на фрагменти розбиваються не окремі файли, а вся роздача, тому у «лічера», який побажав завантажити лише деякі файли з роздачі, для підтримки цілісності фрагментів часто буде зберігатися також невеликий обсяг надлишкової(для нього)інформації;
- як об'єкт роздачі можуть виступати декілька файлів (наприклад, вміст каталогу).
Принципи протоколу BitTorrent роботи із сервером (трекером) базуються на протоколі eDonkey2000, DHT-мережа - це та ж Kad Network (Kademlia) від eDonkey, перероблена для протоколу BitTorrent, а magnet-посилання — это те ж ed2k-посилання, додане у функціонал торрента значно пізніше.
uTorrent — BitTorrent-клієнт для Microsoft Windows, написаний на мові C++, що відрізняється невеликим розміром та достатньою функціональністю. Виконавчий файл µTorrent займає на диску менше 2 МБ.
Деякі можливості програми:
- обмеження максимальних швидкостей завантаження і віддачі;
- налаштування цих обмежень залежно від часу;
- обмеження максимальних швидкостей кожного завдання;
- налаштування кешування файлів на жорсткому диску;
- підтримка DHT і Peer Exchange;
- режим початкової роздачі (суперсид);
- автоматичне закачування торрентів із стрічки новин RSS;
- підтримка проксі-серверів;
- можливість підключення до трекера по HTTPS;
- шифрування протоколу, сумісне з Azureus, BitTorrent і BitComet;
- підтримка Юнікоду у всіх версіях Windows;
- підтримка UPnP в всіх версіях Windows;
- підтримка операційної системи Windows Vista;
- налаштування інтерфейсу програми;
- веб-інтерфейс (віддалене управління програмою з браузеру) — доступний в бета-версії;
- можливість запуску на GNU/Linux і Macintosh з допомогою Wine.
eMule — одна з найпопулярніших безкоштовних програм для обміну файлами в мережі eDonkey, яка витіснила решту клієнтів для мережі ED2K.
Список деяких властивостей eMule:
- клієнт використовує декілька мереж, щоб створити одну надійну мережу (ED2K, Source Exchange, Kad ).
- система черги і кредитів допомагають добитися того, щоб кожна людина отримала потрібні йому файли набагато швидше, якщо він закачуватиме (upload) той же файл іншим користувачам.
- кожен файл перевіряється на помилки у міру скачування, щоб переконатися, що він викачаний правильно.
- автоматичні настройки і Диспетчер джерел роблять можливим одночасне скачування декількох файлів без необхідності стежити за роботою клієнта.
- Функція "Передперегляд" дозволяє проглянути недокачанные Фільми і заглянути в Архіви ще до того, як вони викачані до кінця.
- eMule має вэб-сервіси і вэб-сервер, що дозволяють управляти клієнтом через інтернет або з мобільного телефону (телефон повинен підтримувати Java).
- створити категорії для закачувань, і розсортувати їх як завгодно.
- для пошуку будь-яких файлів, eMule пропонує цілий ряд способів: На Сервері (локально і глобально), в WWW (Jigle, FileDonkey), в мережі Kad (Альфа-версия).
- eMule дозволяє використовувати дуже складні Булеві (Boolean) пошуки, які роблять пошук набагато гнучкішим.
- є можливість відправляти повідомлення інших клієнтів, і додавати їх в список друзів.
StrongDC++ — безкоштовний клієнт для обміну файлами в мережах Direct Connect.
Основні відімінності StrongDC++:
- безпомилкове завантаження в декілька потоків
- завантажує один файл у декількох користувачів одночасно без його пошкодження! Цей спосіб значно збільшує швидкість завантаження, особливо на швидких каналах, і він безпечніше класичного. Позиція сегмента і розмір визначаються об’ємом файлу і швидкістю.
- обмін частинами файлу
- може завантажувати і віддавати завершені частини файлу, що знаходиться в процесі завантаження. Таким чином, це збільшує швидкість завантаження і розповсюдження файлу по мережі.
- обмеження швидкості завантаження/звантаження
- не охоплює канал цілком, очевидно, щоб залишити трішки швидкості для огляду сторінок.
- автоматичне відключення повільних завантажень.
- можливість розширених налаштуваннь
BitComet — швидка, легка у використанні програма для обміну файлами по протоколах BitTorrent, HTTP и FTP.
Загальні особливості:
- підтримує одночасне викачування декількох файлів з можливістю встановлення пріоритету завантаження;
- може створювати черговість завантаження;
- має можливість швидкої зупинки / відновлення закачування файлів;
- працює з проксі-сервером;
- може автоматично знижувати швидкість "віддачі" файлів іншим учасникам мережі Bittorrent, якщо на комп'ютері користувача падає швидкість завантаження;
- присутній автоматична оптимізація настройок з'єднання для спільної роботи з брандмауером, а також з іншими менеджерами завантаження.
Shareaza — безкоштовна програма яка призначена для завантаження файлів через різні файлообмінні мережі (eDonkey2000, BitTorrent, Gnutella, Gnutella2 (G2)).
Vuze — безкоштовна повнофункціональна програма для зручного обміну файлами в мережі BitTorrent.
Основні характеристики Vuze:
- технології peer exchange і розподілені хеш-таблиці (DHT), що знижують залежність клієнта Vuze від трекера.
- підтримка технологій Upnp, NAT Port Mapping Protocol і NAT traversal забезпечує кращу роботу Vuze в локальних мережах.
- можливість роздачі в режимі super-seeding, що сприяє швидкій появі нових роздавальників.
- технологія web seeding (Http/ftp Seeding for Bittorrent).
- підтримка посилань на P2p-контент, так званих magnet links.
- можливість роботи Vuze через проксі-сервер. Шифрування протоколу.
- підтримка Ipv6. Підтримка Юнікода.
- підтримка великої кількості завантажень.
- ліміти завантаження і відвантаження, як глобальні так і для кожного торента окремо.
- розширені правила сидів. Регульований кеш диска.
- використання одного порту для всіх торентів.
- можливість використання проксі для трекера і зв’язку.
- швидке відновлення завантаження.
- багатомовний інтерфейс Vuze (у тому числі український і російський), що легко налаштовується.
P2P месенджери
BitTorrent Bleep
Мережа Bleep багато в чому заснована на протоколі BitTorrent, з деякими доповненнями, які ще більше підсилюють безпеку учасників спілкування. Розробники запевняють, що при роботі Bleep використовується все та ж розподілена мережа BitTorrent, а будь-яка інформація шифрується. Це дозволяє залишити інформацію про розташування співбесідників закритою для посторонніх, зібрати метадані з інформацією про учасників спілкування «майже неможливо». Проте код проекту закритий, а для пробивання NAT використовуються сервери BitTorrent, тому невідомо, які дані лишаються на серверах компанії.
Tox
Tox - вільне програмне забезпеченя з відкритим вихідним кодом, для зашифрованого миттєвого обміну повідомленнями та відеозв'язку. Історія проекту розпочалася в 2013 році, pre-альфа-тестування - у 2014.
Будь-хто може створити клієнт, який використовує ядро Tox. Також існує веб-версія із сервером на Go та плагіни для Pidgin і Miranda NG. Існує версія ядра, написана на Rust.
Центральний сервер відсутній, пошук співрозмовників відбувається через DHT. Використовує пірінговий обмін інформацією для поліпшення пропускної здатності, але на відміну від Skype, не вимагає реєстрації для використання, а ідентифікатор користувача створюється локально. Після установки клієнту Tox автоматично створюється пара ключів. Публічний ключ можна передавати кому завгодно - він служить як унікальний ідентифікатор для пошуку співрозмовника. Секретний ключ зберігається тільки у власника і підтверджує його справжність, не розкриваючи персональні дані.