Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Институт / FI-12 / 1 / lab1_2theory.doc
Скачиваний:
38
Добавлен:
22.03.2015
Размер:
130.05 Кб
Скачать

Роль трекера

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

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

Для розв’язання цієї проблеми можуть використовуватися резервні трекери або спеціальний бестрекерний протокол, наприклад DHT.

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

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

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

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

Додаткові функції

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

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

Часто трекери використовуються для зберігання торрент-файлів і їх описів.

Приватні (закриті) трекери

Приватний (англ. private) трекер – це трекер, що обмежує доступ користувачам, зазвичай вимогою реєстрації облікового запису і вимогою підтримки «рейтингу» на певному рівні.

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

Як правило, приватні трекери записують статистику (рейтинг) кожного користувача за кількістю «завантаженого» і «відданого» іншим користувачам, і вимагають підтримки деякого мінімального співвідношення цих двох величин. Як результат, доступність і швидкість завантаження торрентів на приватному трекері звичайно вище, ніж на відкритому.

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

У рейтингової системи є й негативна сторона: дискримінація користувачів, що мають вузький канал віддачі. Часто у такого користувача віддача зовсім не йде, а причина тому – інші користувачі, які мають більш широкий upload–канал і віддають значно більше і швидше. Такому користувачеві дуже складно відновлювати свій рейтинг, особливо якщо він має справу з малозатребуваними файлами. У результаті перебування на приватному трекері обертається для нього постійним головним болем про способи підтримки рейтингу.

Реалізації трекерів

Існують різні реалізації трекерів: у вигляді окремого веб–сервера, у вигляді модуля для стороннього HTTP–сервера (наприклад, Apache) або у вигляді движка сайту, написаного, наприклад, на PHP або JSP.

TorrentPier

Один з відомих движків (російськомовних і не лише) BitTorrent–трекера. Виконано у вигляді phpBB, розширеного до повноцінного трекера. Повністю написаний на PHP, включаючи анонсер. В основі організації лежить принцип торрент → топік, тобто торренту зіставлено єдина тема на формі. Торрент-файл завантажується в перше повідомлення теми автором, після чого відбувається реєстрація цього торрента на трекері. Слід врахувати, що хоча форумна і трекерна частини досить тісно інтегровані, трекерна частина використовує окремі таблиці в БД, тому можливо виокремити трекерну частина (анонсер) і винести її, наприклад, на окремий сервер.

Історія створення

Початок розробки движка присвячено відкриттю найбільшого російськомовного торрент-трекера torrents.ru – 18 вересня 2004 року, на якому він і працює донині. Засновник проекту – Meithar.

TBDev

Один з відомих (російськомовних і не лише) движків BitTorrent-трекера. Виконаний у вигляді системи управління вмістом. Повністю написаний на PHP, включаючи анонсер. В основі організації лежить принцип новина → торрент або новина → торрент → реліз, тобто торренту зіставлено певне місце на головній сторінці або окрема сторінка з повним описом та коротке повідомлення про реліз на головній сторінці сайту. Торрент–файл завантажується через спеціальну сторінку, де користувачеві надано ввести опис, після чого відбувається реєстрація цього торрента на трекері. Існує багато модифікацій TBDev, найпопулярніші Kinokpk.com releaser (рос.), TBDev original (англ.), TBDev YSE (рос.).

Історія створення

Движок був колись написаний для сайту TorrentBits.org, користувачем RedBeard. Надалі, після публічного релізу, він став дороблюватись спільнотою. Розповсюджується за ліцензією GNU GPL.

BTIH (BitTorrent Info Hash)

Це SHA1 хеш поля Info з файлу метаданих. Даний хеш використовується в Magnet-посиланнях а також для ідентифікації на трекері і між клієнтами. При завантаженні на трекер файлу метаданих його Info Hash може змінитися, тому трекер може змінити поле info встановивши прапор приватності або змінивши/додавши поля всередині info. Тому необхідно знову завантажити файл метаданих (файл .Torrent) з трекера і додати його в клієнт.

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

– Анонс (англ. announce) – звернення клієнта до трекера. При кожному анонсі клієнт передає на трекер інформацію про обсяги їм завантаженого і відданого, a трекер передає клієнтові список адрес інших клієнтів. Звернення клієнта до трекера відбувається через певні інтервали часу, які визначаються налаштуваннями клієнта і трекера.

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

– Заглухлий (англ. choked – заглухлий, придушений) – клієнт, обмін даними з яким заглух. Або його канал на вихід забитий повністю і він не може нічого передати (досяг max_uploads), або він є сідом і йому нічого не потрібно отримувати.

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

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

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

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

– Пір (англ. peer – співучасник) – клієнт, що бере участь в роздачі. Іноді пірами називають тільки тих учасників, що завантажують

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

– Нехтуючий (англ. snubbed) – клієнт, підключений до одержувача, але не надсилавший йому дані вже більше 60 секунд.

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

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

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

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

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

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

– Хеш (англ. hash) – рядок літерно–цифрових символів в .torrent–файлі, яку використовують клієнти для перевірки переданих даних. Кожна частина після отримання спочатку перевіряється на збіг хешу. Якщо перевірка не вдалася, дані відкидаються і запитуються ще раз.

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

– URL анонса (англ. announce URL) – адреса трекера, до якого клієнт робить анонс. У багатьох клієнтів називається «Tracker URL». Може включати «passkey» – унікальний код, який призначається трекером для облікового запису користувача, що допомагає ідентифікувати його на трекері (додається до URL анонса в самому *.torrent–файлі при завантажені).

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

Кросплатформені

– μTorrent – клієнт BitTorrent для Windows і Mac OS X, що відрізняється малим розміром і високою швидкістю роботи;

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

– Vuze (стара назва – Azureus) – написаний на мові Java, тому є кросплатформним. Підтримує Tor. Потрібно врахувати, що використовується ним бібліотека Eclipse Standard Widget Toolkit використовує системно-залежні модулі і повинна компілюватися для кожної платформи окремо;

– BitTyrant (en) – модифікований варіант клієнта Azureus 2.5;

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

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

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

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

– mlDonkey – багатоплатформовий клієнт;

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

– TorrentFlux (en) – написаний на PHP, працює на віддаленому Web–сервер як PHP–скрипт, дозволяючи не тримати свій комп’ютер включеним постійно, але при цьому качати і роздавати торренти;

– ABC – ще один Bittorrent Client, заснований на BitTornado;

GNU / Linux, UNIX

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

– CTorrent – консольний клієнт для Unix / GNU + Linux, що припинив розвиток в 2004 році;

– 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;

– qBittorrent – bittorrent клієнт для Unix / GNU + можливо інші системи, написаний на C++Qt4, що використовує бібліотеку libtorrent. Поширюється під ліцензією GNU GPL.

Windows

– μTorrent;

– BitComet;

– BitSpirit;

– FlashGet;

– GetRight;

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

– Free Download Manager;

– Mac OS;

– μTorrent;

– XTorrent;

– Transmission;

– BitRocket;

– Tomato Torrent;

– Acquisition Symbian OS;

– SymTorrent for S60;

– Windows Mobile;

– WinMobile Torrent;

Соседние файлы в папке 1