Що таке BitTorrent ?

Тема закрита
 
Автор Повідомлення

Сотник ®

Стать: Чоловік

Стаж: 3 року 7 місяців

Повідомлень: 50

Звідки: Україна

Створювати теми 21-Бер-2017 18:30

[Цитувати]

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

Термінологія

Роздача (англ. seeding) - процес поширення файлу по протоколу BitTorrent.
Пір (англ. peer - співучасник) - клієнт, який бере участь в роздачі. Іноді пірами називають тільки завантажуючих учасників.
Сид, іноді сидер (англ. seeder - сіяч) - пір, має всі сегменти розповсюджуваного файлу, тобто або початковий розповсюджувач файлу, або вже викачав весь файл.
Лічер (англ. витоків - п'явка) - пір, що не має поки всіх сегментів, тобто продовжує скачування. Термін часто вживається і в негативному сенсі, який він має в інших файлообмінних мережах: користувач, який віддає набагато менше, ніж викачує.
Рой (англ. swarm) - сукупність всіх пірів, які беруть участь в роздачі.
Доступність (англ. availability), або distributed copies - кількість повних копій файлу, доступних клієнтові. Кожний сид додає 1,0 до цього числа; лічеры збільшують доступність залежно від кількості скачаного, якого немає в інших лічерів. Приміром, якщо на роздачі є один сид і два лічера, що викачали по 50% файлу (викачані частині рівні між собою), тож доступність дорівнює 1,50.
Рейтинг (англ. share ratio) - відношення відданого до завантаженого.
Анонс (англ. announce) - звернення клієнта до трекера. При кожному анонсі клієнт передає на трекер інформацію про обсяги їм скачаного і відданого, a трекер передає клієнту перелік адрес інших клієнтів. Звернення клієнта до трекера відбувається через певні проміжки часу, які визначаються параметрами клієнта і трекера.
URL анонсу (англ. announce URL) - адреса трекера, до якого клієнт робить анонс. У багатьох клієнтів називається «Tracker URL». Може включати «passkey» - унікальний код, який призначається трекером для облікового запису користувача, який допомагає ідентифікувати його на трекері (додається до URL анонсу в самому *.torrent-файл).

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

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

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

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

Трекер

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

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

У нових версіях протоколу були розроблені бестрекерные (англ. trackerless) системи, які вирішують деякі з попередніх проблем. Відмова трекера в таких системах не призводить до автоматичного відмови всієї мережі.
Починаючи з версії 4.2.0 офіційного клієнта, в ньому реалізована функція бестрекерной роботи, що базується на протоколі Kademlia. У таких системах трекер доступний децентрально, на клієнтах, у формі розподіленої хеш-таблиці.
На даний момент ще не всі клієнти використовують сумісні один з одним протокол. Сумісні між собою BitComet, µTorrent, KTorrent і офіційний клієнт BitTorrent. Azureus також має режим бестреккерной роботи, але його реалізація відрізняється від офіційної, внаслідок чого він не може працювати через DHT з вищепереліченими клієнтами.
Принцип роботи протоколу BitTorrent
Перед початком закачування, клієнт під'єднується до трекера, повідомляє йому свою адресу і хеш-суму запитуваного файлу, на що у відповідь, клієнт отримує адреси інших клієнтів, завантажують або роздають цей же файл. Далі клієнт періодично інформує трекер про свій прогрес і отримує оновлений список адрес. Клієнти з'єднуються один з одним і обмінюються сегментами файлів без безпосередньої участі трекера. Для ефективної роботи мережі BitTorrent необхідно, щоб якомога більше клієнтів були здатні приймати вхідні з'єднання. Неправильне налаштування NAT або файрвола можуть цьому перешкодити.
При з'єднанні клієнти відразу обмінюються інформацією про наявні у них сегментах. Клієнт, який бажає завантажити сегмент, посилає запит, і якщо другий клієнт готовий віддавати, отримує цей сегмент. Після цього клієнт перевіряє контрольну суму сегмента і оповіщає всіх приєднаних пірив про наявність у нього цього сегмента.
Кожен клієнт має можливість тимчасово блокувати віддачу іншому клієнту (англ. choke). Це робиться для більш ефективного використання каналу віддачі. Крім того, при виборі - кого розблокувати, перевага віддається пірам, які самі передали цьому клієнту багато сегментів. Таким чином, піри з хорошими швидкостями віддачі заохочують один одного за принципом «ти - мені, я - тобі».

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

  • Супер-сид (англ. super seeding) - метод, реалізований у тих клієнтів BitTorrent, автори яких намагаються мінімізувати обсяг даних до завершення першого завантаження піру. Метод був задуманий Джоном Хофманом і вперше був здійснений у клієнті «BitTornado» в середині 2003 р.
  • Супер-сид є зміною в поведінці сидерів і не може бути здійснено без порушення протоколу BitTorrent. Тим не менш, це не затверджується ні розробником протоколу, Бремом Коеном, ні в офіційному клієнта.
  • Супер-сид діє, коли є тільки один сидер. Фактично, він змушує користувачів ділитися скачанными даними. Клієнт, який віддав одному учасникові будь-яку частину файлу, припиняє передачу даних до тих пір, поки не виявить в мережі другу копію цієї частини. Оскільки багато учасників не мають можливості або не бажають робити доступними для інших завантажені дані, загальна швидкість віддачі падає. У звичайному ж режимі, на відміну від супер-сид, кожен завжди отримує потрібну інформацію, якщо вона є, тому в ньому середня швидкість передачі даних вище.
  • Супер-сид ефективний при роздачах з великою кількістю качаючих. При невеликій групі людей (2-3 людини) їх клієнти в силу різних причин можуть відмовитися встановлювати зв'язок один з одним. У цьому випадку включений супер-сид змусить клієнтів чекати, поки дані стануть доступні. Коли кількість качають велике (10-20 чоловік), досить віддати кожну частину файлу тільки один раз, тоді клієнти зможуть обмінятися нею між собою, і кожен з них отримає файл цілком.

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

Кросплатформені:
  • aria2 - підтримує HTTP, FTP, BitTorrent; файли Metalink 3.0
  • Azureus - написаний на мові Java, тому є кросплатформним;
  • BitTornado - багатоплатформовий клієнт, написаний на мові Python;
  • FoxTorrent - розширення для браузера Mozilla Firefox, що реалізує функції клієнта BitTorrent;
  • mlDonkey - багатоплатформовий клієнт;
  • Браузер Opera повністю підтримує закачування торрентів, починаючи з версії 9.0;
  • TorrentFlux - написаний на PHP, працює на віддаленому Web-сервері як PHP-скрипт, що дозволяє не тримати свій комп'ютер постійно включеним, але при цьому качати і роздавати торренти.
Для UNIX-подібних систем:
  • BTPD - консольний клієнт для Unix/GNU+Linux, написаний на C++; працює в режимі демона;
  • CTorrent - консольний клієнт для Unix/GNU+Linux, припинив розвиток у 2004 році;
  • Deluge - клієнт для GNU/Linux, написаний на мові Python; використовує GTK;
  • KTorrent - використовує бібліотеку Qt; працює в середовищі KDE;
  • rTorrent - консольний клієнт для UNIX/GNU+Linux, написаний на C++; використовує бібліотеки ncurses і libTorrent;
  • Transmission - клієнт для Mac OS X, FreeBSD, OpenBSD, NetBSD, GNU/Linux і BeOS, що використовує GTK.
Для Microsoft Windows і Windows NT:
  • µTorrent;
  • BitComet;
  • FlashGet;
  • GetRight.
  • Shareaza - підтримує роботу з декількома файлообмінними мережами, в тому числі і BitTorrent.
Для Mac OS:
  • XTorrent;
  • BitRocket.
[Профіль] [ОП]
Показати повідомлення:    
Тема закрита

Поточний час: 11-Грд 03:05

Часовий пояс: UTC + 3



Ви не можете починати теми
Ви не можете відповідати на повідомлення
Ви не можете редагувати свої повідомлення
Ви не можете видаляти свої повідомлення
Ви не можете голосувати в опитуваннях
Ви не можете прикріплювати файли до повідомлень
Ви не можете скачувати файли