Kad network, bittorrent - пирингові мережі

Kad Network - децентралізована безсерверная файлообмінна мережу. яка використовує протокол оверлейной сетіKademlia. Підтримується в eMule (Kad 2.0), aMule і MLDonkey.

Kad Network іспользуетUDP для:

· Пошуку джерел ed2k хеша

· Пошуку ed2k хеша на ключові слова в назвах файлу

· Надання послуг вузлів, що знаходяться за файерволом (Low ID)

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

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

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

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

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

BitTorrent

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

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

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

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

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

Кожен клієнт має можливість тимчасово блокувати віддачу іншому клієнтові (англ.choke). Це робиться для більш ефективного використання каналу віддачі. Крім того, при виборі - кого розблоковувати, перевага віддається бенкетам, які самі передали цьому клієнтові багато сегментів. Таким чином, бенкети з хорошими швидкостями віддачі заохочують один одного за принципом «ти - мені, я - тобі».

· Отсутствіеочередей на скачування.

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

· Клієнти (peers) обмінюються сегментами безпосередньо між собою, за принципом «ти - мені, я - тобі».

· Завантажені фрагменти стають негайно доступні іншим клієнтам.

· Контролюється цілісність кожного фрагмента.

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

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

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

Клієнти з'єднуються один з одним, використовуючи протокол TCP. Вхідні порти клієнтів: 6881--6889.

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

DHT-мережа в BitTorrent-клієнтах використовує протокол UDP.

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

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

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

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

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

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

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

На даний момент ще не всі клієнти використовують сумісний один з одним протокол. Чи сумісні між собою BitComet. μTorrent. Deluge. KTorrent і офіційний клієнт BitTorrent. Azureus також має режим бестрекерной роботи, але його реалізація відрізняється від офіційної, внаслідок чого він не може працювати через DHT з вищепереліченими клієнтами. [2] Однак, для Azureus існує підтримка стандартного DHT через плагін Mainline DHT.

Super seeding (cупер-сид)

Супер-сид є зміною в поведінці сідерів і не може бути здійснений без порушення протоколу BitTorrent. Тим не менш, це не затверджується ні розробником протоколу, Бремом Коеном, ні в офіційному клієнті.

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

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

Дві помилки початківців бенкетів

Початківці користувачі BitTorrent часто допускають дві помилки:

· Забувають відкрити порт прийому. Завжди, коли це можливо, порт повинен бути відкритий в брандмауері або роутере. Бенкет з закритим портом не може зв'язатися з іншим бенкетом, у якого порт прийому також закритий.

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

· Доступність (англ.availability), або distributed copies - кількість повних копій файлу, доступних клієнтові. Кожен сид додає 1,0 до цього числа; лічери збільшують доступність залежно від кількості завантаженого, якого немає в інших пірів. Наприклад, якщо на роздачі є один сид і два лічер, які завантажили по 50% файлу (викачані частини рівні між собою), то доступність дорівнює 1,50.

· Лічер (англ.leech - п'явка) - бенкет, що не має поки всіх сегментів, тобто що продовжує скачування. Термін часто вживається і в негативному сенсі, який він має в інших файлообмінних мережах: користувач, який віддає набагато менше, ніж викачує.

· Отруєний торрент - ситуація, коли частина бенкетів роздає пошкоджені сегменти.

· Бенкет (англ.peer - співучасник) - клієнт, який бере участь в роздачі. Іноді бенкетами називають лише викачують.

· Роздача (англ.seeding) - процес поширення файлу по протоколу BitTorrent.

· Рейтинг (англ.share ratio) - відношення відданого до завантажити.

· Рой (англ.swarm) - сукупність всіх бенкетів, що беруть участь в роздачі.

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

· 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 (en) - написаний на PHP. працює на віддаленому Web-сервер як PHP-скрипт. дозволяючи не тримати свій комп'ютер включеним постійно, але при цьому качати і роздавати торренти

· BTPD - консольний клієнт для Unix / GNU + Linux, написаний на C ++; працює в режимі демона

· KTorrent - використовує бібліотеку Qt; працює в середовищі KDE

· RTorrent - консольний клієнт для UNIX / GNU + Linux, написаний на C ++; використовує бібліотеки ncurses і libTorrent

· Transmission - клієнт для Mac OS X. FreeBSD. OpenBSD. NetBSD. GNU / Linux і BeOS. використовує GTK. Також може працювати в режимі консолі і в режимі демона.

· Bitflu - консольний клієнт для Unix / GNU + Linux, написаний на Perl; працює в режимі демона. з підтримкою chroot оточення. Має веб-інтерфейс. управляється через telnet

· Shareaza - підтримує роботу з декількома файлообмінними мережами, у тому числі і BitTorrent

· Free Download Manager

Схожі статті