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

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

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

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

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

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

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

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

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

– URL трекера;

– Загальну інформацію про файл, що завантажується (ім’я, довжину тощо);

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

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

Спочатку BitTorrent не мав власної пошукової системи (англ. search engine), але в травні 2005 року Брем Коен усунув цей недолік.

Трекер

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

Координація клієнтів

Основна функція BitTorrent-трекера – обробка запитів клієнтів.

Кожен клієнт періодично звертається до трекера із запитом, в якому зазначені:

– унікальна хеш-сума торрент-файлу;

– TCP-порт, на якому клієнт чекає з’єднань від інших клієнтів;

– кількість даних, якими клієнт встиг обмінятися з іншими клієнтами;

– і деяка інша інформація.

Таке звернення є звичайний HTTP–запит, в якому інформація закодована за допомогою спеціального протоколу Bencode (en: Bencode).

Якщо в BitTorrent–клієнті відкрито кілька активних торрент-файлів, то для кожного використовується окремий запит, ніяк не пов’язаний з іншими. Інтервали між запитами по кожному окремо взятому торренту залежать від налаштувань клієнта і зазвичай складають від 30 до 60 хвилин.

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

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