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

Автор работы: Пользователь скрыл имя, 03 Января 2014 в 18:13, доклад

Краткое описание

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

Содержание

ВСТУП
Історія
Перше покоління Р2Р мереж
Друге покоління Р2Р мереж
Третє покоління Р2Р мереж
Анонімні peer-to-peer мереж
Класифікація Р2Р мереж
Мережі та протоколи
Програми для роботи з піринговими мережами, торинти.
ВИСНОВОК

Прикрепленные файлы: 1 файл

доповідь.docx

— 90.64 Кб (Скачать документ)

Кад мережа не використовується, щоб фактично передати файли через  Р2Р мережі. Замість цього, коли починається  передача файлів, підключення клієнтів відбуваються безпосередньо один з  одним (використовуючи стандартні IP-мережі).

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

Єдина річ, яка потрібна для  з'єднання з цією мережею - IP і  порт будь-якого клієнта, вже підключеного до мережі. Це називається Boot Strap (самоналаштування).

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

Якщо ви можете вільно з'єднуватися, вам дається ID (високий, HighID) і отримуєте  статус open в Кад мережі. Якщо ви не можете з'єднуватися вільно, ви отримуєте  статус firewalled (відповідно LowID).

 

Пошук

В мережі Kad неважливо що Ви шукаєте. Будь-який файл, джерело завантаження чи інший користувач.

У ній немає серверів, що відстежують активність клієнтів.. По суті, кожен клієнт – маленький  сервер, що працює в мережі Kademlia як сервер для ключових слів або джерел. Хеш клієнта визначають ключові слова або джерела.

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

BitTorrent

BitTorrent (букв. англ. «Бітовий потік») - пірінговий (P2P) мережевий протокол Коена для кооперативного обміну файлами через Інтернет. Файли передаються частинами, кожен torrent-клієнт, отримуючи (закачуючи) ці частини, в цей же час віддає (підкачує) їх іншим клієнтам, що знижує навантаження і залежність від кожного клієнта-джерела і забезпечує надмірність даних. Перший torrent-клієнт «BitTorrent» був створений програмістом Бремом Коеном на мові Python 4 квітня 2001, запуск першої версії відбувся 2 липня 2001 року. Існує безліч інших програм-клієнтів для обміну файлами по протоколу BitTorrent.

Рис.2

 

Принцип роботи протоколу

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

Загальні  особливості

  • Відсутність черг на скачування.
  • Файли закачуються невеликими фрагментами; чим менш доступний фрагмент, тим частіше він передаватиметься. Таким чином, присутність в мережі «сідер» з повним файлом для завантаження необов'язково - система розподіляє сегменти між «бенкетами», щоб у подальшому вони могли обмінюватися відсутніми сегментами.
  • Клієнти (peers) обмінюються сегментами безпосередньо між собою, за принципом «ти - мені, я - тобі».
  • Завантажені фрагменти стають негайно доступні іншим клієнтам.
  • Контролюється цілісність кожного фрагмента.

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

Протоколи і порти

Клієнти з'єднуються з  трекером по протоколу TCP. Вхідний порт трекера: 6969.

Клієнти з'єднуються один з одним, використовуючи протокол TCP. Вхідні порти клієнтів: 6881-6889. Номери портів не фіксовані в специфікації протоколу і можуть змінюватися  при необхідності. Більш того, в  даний момент більшість трекерів використовують звичайний HTTP порт 80, а  для клієнтів рекомендується вибрати  випадковий вхідний порт.

DHT-мережа в BitTorrent-клієнтів  використовує протокол UDP. Крім того, протокол UDP використовується UDP-трекера  (не підтримується усіма клієнтами  і не є офіційною частиною  протоколу) і для з'єднання  клієнтів один з одним через  UDP NAT Traversal (використовується тільки  в клієнті BitComet і не є офіційною  частиною протоколу).

Файл  метаданих

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

• URL трекера;

• Загальну інформацію про  закачуване файлі (ім'я, довжину тощо);

• Контрольні суми (точніше, хеш-суми SHA1) сегментів закачуваного файлу.

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

 

Робота  без трекера

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

Програми  клієнти

- Aria2 (англ.) - підтримує HTTP, FTP, BitTorrent; файли Metalink  3.0

- Azureus - написаний на мові Java, тому є кросплатформним. Підтримує  Tor

- BitTyrant - модифікований варіант  клієнта Azureus 2.5

- BitTornado - багатоплатформовий  клієнт, написаний на мові Python

- Deluge - багатоплатформовий  клієнт, написаний на мові Python; використовує GTK

- FoxTorrent - розширення для  браузера Mozilla Firefox, що реалізує функції  клієнта BitTorrent

- LeechCraft - багатоплатформовий  клієнт, існує плагін для підтримки  BitTorrent

- MlDonkey - багатоплатформовий  клієнт 

- Браузер Opera повністю  підтримує закачування торрентів,  починаючи з версії 9.0

- TorrentFlux - написаний на PHP, працює на віддаленому Web-сервер  як PHP-скрипт, дозволяючи не тримати  свій комп'ютер включеним постійно, але при цьому качати і роздавати  торенти

Gnutella

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

 

Механізм  роботи

  • Користувач завантажує програму.
  • При першому запуску програми (назвемо наш вузол - A), користувач повідомляє клієнту IP-адресу одного з функціонуючих вузлів (умовно вузол B). Дана процедура може і не повторюватися в майбутньому, але при першому запуску вона обов'язкова. Це один з найбільш «слизьких" моментів в реалізації даної мережі: без адреси хоча б одного з працюючих в даний момент вузла користувач не зможе підключитися. У принципі, існує цілий ряд централізованих серверів, які надають таку інформацію, але така схема вже призводить до певної централізованості.
  • Програма надсилає запит вузлу B на предмет підтвердження активності.
  • Вузол B підтверджує свою активність, якщо немає - див крок 2.
  • Вузол А посилає вузлу B так званийPing-запит. У цьому запиті вказується, крім іншої інформації, TTL (Time To Live) - число, що означає, скільки переходів від вузла до вузла даний запит може зробити. Зазвичай TTL дорівнює 7.
  • Інші вузли, отримавши Ping-запит, посилають Pong-відповідь, в якій міститься IP-адреса відправника, номер порту і мінімальна інформація про файли у фонді обміну.
  • Крім того, вузли, які отримали Ping-запит, зменшують TTL даного запиту на одиницю, і якщо TTL більше 0, а також якщо даний запит вони не отримували раніше (захист від зациклення), розсилають його своїм сусідам.
  • Кожен вузол, який отримав Ping-запит, відсилає Pong-відповідь, тим же шляхом, яким цей запит отримав.
  • Коли Pong-відповіді доходять до свого джерела (тобто нашого вузла А), програма складає список доступних вузлів. Як правило, цей список налічує від 2 до 10 тисяч вузлів і від 500 тисяч до мільйона файлів в обмінному фонді.
  • Користувач вводить запит (наприклад, назву mp3-файлу). Програма розсилає запит на пошук файлу усіх вузлів у списку, а далі просто чекає вхідних повідомлень.
  • Кожен вузол, який отримав запит на пошук, шукає в своєму фонді вказаний файл.  Якщо файл не знайдений, то вузол просто не відповідає.
  • Якщо файл знайдений, вузол відсилає ініціатору запиту відповідь з інформацією про файл і про себе (IP-адресу).
  • HTTP-з'єднання і завантажує файл. При цьому всі повідомлення (від Ping-запиту до скачування файлу) посилаються по HTTP, що ускладнює їх відстеження і блокування.

MP2P

MP2P або MANOLITO - децентралізована P2P-мережа для обміну музикою,  що володіє пошуком і підтримкою  завантаження з декількох джерел. Побудована на власному протоколі,  заснованому на Gnutella. Абревіатура  мережі MP2P розшифровується як «Manolito P2P».

Подібно до мережі Gnutella, мережа MP2P не використовує сервери. Орієнтована  тільки на поширення музичних файлів у форматах MP3 і Ogg. За твердженнямрозробників, в мережі распростряняется більше 10 мільйонів музичних композицій.

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

Мережа з'явилася в  червні 2001 року в Іспанії. Мережа Manolito є розробкою єдиного автора - Пабло  Сото. Спочатку у мережі був тільки один клієнт - Blubster.Оригінальний клієнт версії 1.2.3 ставав популярними незважаючи на відсутність паралельної завантаження файлів. З фінансових причин Пабло  пішов з компанії Optisoft і почав  роботу над наступним клієнтом - Piolet, які працюють в тій же мережі.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IV. Програми для роботи з піринговими мережами, торинти

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

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

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

 

eMule

eMule - вільний файлообмінний  клієнт для Microsoft Windows. Був розроблений  як заміна власницькому клієнтові  eDonkey2000. В даний час може працювати  як з eDonkey мережею (ed2k), так і  з мережею Kademlia.

Проект хоститься на SourceForge.net. У 2007 році eMule переміг у номінації "Best New Project" (правда на той час  проект давно вже новим не був).

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

Ідентифікація файлів

Кожному файлу відповідає свій хеш. Хеш - це комбінація цифр і  букв для однозначної ідентифікації  файлу. Хеш не залежить від імені  файлу, тільки від його вмісту. Це дозволяє знаходити джерела файлу незалежно  від того, яке ім'я той чи інший  користувач дав файлу. Окрім того, файли поділяються на частини  розміром 9.28 Мб. Для кожної частини  також обчислюється хеш. Наприклад, 600-Мб файл буде містити 65 частин. Загальний  хеш, тобто хеш файлу, обчислюється на основі хешей частин.

Ідентифікація інших клієнтів

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

Завантаження

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

Информация о работе Пірінгові мережі