Распечатать страницу

Лекція №5, Передача файлів через Інтернет

« Назад

Код роботи: 3745

Вид роботи: Лекція

Предмет: Web-програмування

Тема: №5, Передача файлів через Інтернет

Кількість сторінок: 17

Дата виконання: 2015

Мова написання: українська

Ціна: безкоштовно

1. Робота з файлами засобами FTP-сервера

2. Інші способи передачі файлів

1. Робота з файлами засобами FTP-сервера

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

• Вільно-розповсюджувані програми (freeware). Програми цього типу розповсюджуються безкоштовно, деколи за певних умов. Наприклад, користувач зобов'язаний скопіювати пакет повністю, а не частково.

• Умовно-безкоштовні програми (shareware). Дані програми розповсюджуються безкоштовно, і їх можна спробувати в роботі, але для законного використання цих програм потрібно заплатити деяку невелику суму.

Для доступу до цих файлів потрібно знати їх повні адреси, які мають такий загальний вигляд: <назва сервера>/<повний шлях до файлу>/<назва файлу>.

Щоб одержати файли з Iнтернета, використовують універсальні програми, типу Internet Explorer або Netscape Navigator, але в деяких випадках зручніше користуватися спеціальною програмою для передачі файлів.

FTP (англ. File Transfer Protocol - протокол передачі файлів) - протокол, призначений для передачі файлів в комп'ютерних мережах. FTP дозволяє підключатися до серверів FTP, проглядати вміст каталогів і завантажувати файли з сервера або на сервер, крім того, можливий режим передачі файлів між серверами.

FTP є одним з найстаріших прикладних протоколів, що з'явилися задовго до HTTP, в 1971 році. Він і сьогодні широко використовується для розповсюдження ПЗ і доступу до віддалених вузлів..

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

Протокол не шифрується, при аутентифікації передаються логін і пароль відкритим текстом. У разі побудови мережі з використанням концентратора, зловмисник за допомогою пасивного сніффера може перехоплювати логіни та паролі знаходяться в тому ж сегменті мережі користувачів FTP, або, при наявності спеціального ПЗ, отримувати надіслані через FTP файли без авторизації. При побудові мережі на світча завдання зловмисника ускладнюється, але злом все одно можливий (MAC-спуфінга, переповнення таблиці адрес). Щоб запобігти перехоплення трафіку, необхідно використовувати протокол шифрування даних SSL, який підтримується багатьма сучасними FTP-серверами і деякими FTP-клієнтами.

На багатьох FTP-серверах існує каталог (під назвою вхідних, завантажувати і т. П.), Відкритий на запис і призначений для закачування файлів на сервер. Це дозволяє користувачам наповнювати сервер свіжими даними.

2. Інші способи передачі файлів

Пасивний режим

Споконвічно протокол припускав зустрічне TCP-з'єднання від сервера до клієнта для передачі файлу або вмісту каталогу. Це унеможливлювало спілкування з сервером, якщо клієнт перебуває за IP NAT, крім того, часто запит з'єднання до клієнта блокується файєрволом. Щоб цього уникнути, було розроблено розширення протоколу FTP в пасивному режимі, коли з'єднання для передачі даних теж походить від клієнта до сервера. Важливим моментом є те, що клієнт встановлює з'єднання з адресою і портом, зазначеним сервером. Порт сервер вибирає випадковим чином з певного діапазону (49152-65534). Тому при знаходженні FTP-сервера за NAT, слід явно вказати в налаштуваннях сервера його адресу.

NAT-PT

Спеціально для роботи FTP-протоколу через міжмережеві екрани було зроблено розширення NAT, зване NAT-PT (rfc2766), що дозволяє транслювати вхідні з'єднання від сервера до клієнта через NAT. У процесі такого з'єднання NAT підміняє передані дані від клієнта, вказуючи серверу істинний адресу і порт, з яким зможе з'єднатися сервер, а потім транслює з'єднання від сервера від цієї адреси клієнту на його адресу. Незважаючи на всі заходи та нововведення, прийняті для підтримки FTP-протоколу, на практиці функція NAT-PT зазвичай відключається в усіх роутерах і маршрутизаторах з метою забезпечення додаткової безпеки від вірусних погроз.

FXP

FXP (англ. файлів Exchange Protocol - протокол обміну файлами) - спосіб передачі файлів міждвома FTP-серверами безпосередньо, не закачуючи їх на свій комп'ютер. При FXP-сесії клієнтвідкриває два FTP-з'єднання до двох різних серверів, запитуючи файл на першому сервері,вказуючи в команді порт IP-адреса другого сервера.Безсумнівною перевагою підтримки стандарту FXP є те, що на кінцевих користувачів, охочихскопіювати файли з одного FTP-сервера на інший, вже не діє обмеження пропускної спроможностіїх власного інтернет-з'єднання. Немає необхідності викачувати собі файл, щоб потім завантажитийого на інший FTP-сервер. Таким чином, час передачі файлів буде залежати тільки від швидкості з'єднання між двома віддаленими FTP-серверами, яка в більшості випадків свідомо більше "користувальницької".

FXP став використовуватися зловмисникам для атак на інші сервери: в команді порт вказується IP-адресу та порт атакується сервісу на комп'ютері жертви, і командами RETR / STOR проводиться звернення на цей порт від імені FTP-сервера, а не атакуючої машини, що дозволяло влаштовувати масштабні DDoS-атаки з використанням відразу багатьох FTP-серверів, або обходити систему безпеки комп'ютера жертви, якщо він покладається тільки на перевірку IP-клієнта і використовуваний для атаки FTP-сервер знаходиться у довіреній мережі або на шлюзі. В результаті зараз практично всі сервери перевіряють відповідність IP-адреси, вказаної в команді PORT, IP-адресою FTP-клієнта і за замовчуванням забороняють використання там IP-адрес третіх сторін. Таким чином, використання FXP неможливо при роботі з публічними FTP-серверами

Peer-to-peer (з англ. — рівний до рівного) - варіант архітектури системи, в основі якої стоїть мережа рівноправних вузлів.

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

Фраза «peer-to-peer» була вперше використана у 1984 році Парбауелом Йохнухуйтсманом (Parbawell Yohnuhuitsman) при розробці архітектури Advanced Peer to Peer Networking фірми IBM.

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

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

Сучасні P2P-мережи набули розвитку завдяки ідеям, пов'язаними з обміном інформацією, які формувалися у руслі того, кожен вузол може надавати та отримувати ресурси які надаються будь-якими іншими учасниками. У випадку мережі Napster, це був обмін музикою, в інших випадках це може бути надання процесорного часу для пошуку інопланетних цивілізацій (SETI@home) або ліків від раку (Folding@home).

P2P не є новим. Цей термін, звичайно, новий винахід, але сама технологія існує з часів появи USENET та FidoNet — двох дуже успішних, цілком децентралізованих мереж. Розподілені обчислення з'явилися навіть раніше, але цих двох прикладів достатньо, щоб продемонструвати вік

P2P.

USENET, який народився в 1979 році, — це розподілена мережа, яка забезпечує спілкування у групах новин. На початку це була праця двох студентів, Тома Траскота та Джіма Еллиса. В той час Інтернету, який ми знаємо зараз, ще не існувало. Обмін файлами відбувався за допомогою телефонних ліній, зазвичай протягом ночі, тому що це було дешевше. Таким чином не було ефективного способу централізувати такий сервіс як USENET.

Іншим видатним успіхом P2P був FidoNet. FidoNet, як і USENET, — це децентралізована, розподілена мережа для обміну повідомленнями. FidoNet був створений у 1984 році Томом Дженнінгсом як засіб для обміну повідомленнями між користувачами різних BBS. Він був потрібен, тому він швидко виріс та, як і USENET, існує по цей день. Перше покоління P2P мереж

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

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

Популяризація і поточна ера peer-to-peer почалась із створення мережі Napster. У травні 1999 Napster надав кінцевим користувачам можливість роздавати та обмінюватись їх улюбленою музикою безпосередньо з іншими кінцевими користувачами. Мережа використовувала центральний сервер, зокрема для пошукових цілей. Кількість користувачів Napster в лютому 2001 складала 26.4 мільйона.

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

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

Невдовзі після появи Napster було створено мережу EDonkey2000. Ключова перевага eDonkey над Napster полягала у тому, що мережа дозволяла проводити зкачування різних частин одного файлу, одночасно із різних учасників мережі, які його надають. Іншою перевагою eDonkey було те, що згодом, серверне забезпечення набуло функціональності міжсерверного зв'язку, що дозволило виконувати пошук інформації на учасниках мережі що були під'єднані до різних серверів. Незважаючи на названі переваги, через використання серверів, ця мережа не була чистою peer-to-peer мережою.

Друге покоління P2P мереж

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

Джастін Франкел вирішив створити мережу без центрального індексного сервера, і Gnutella була результатом. Нажаль, ідея Gnutella про рівність всіх вузлів, швидко померла від наявності вузьких місць, оскільки мережа росла від минулих користувачів Napster. FastTrack вирішив цю проблему маючи деякі вузли більш рівними ніж інші. Обираючи деякі більш потужні вузли, щоб індексувати вузли із меншою потужністю, FastTrack дозволив створити мережу, яка могла масштабуватись до набагато більшого розміру. Gnutella швидко перейняла цю модель, і більшість поточних мережі мають цей дизайн, оскільки це дозволяє робити великі і ефективні мережі без центральних серверів.

Найкращими прикладами є Gnutella, Kazaa або Emule з Kademlia, серед яких лише Kazaa ще має центральний сервер для реєстрації. eDonkey2000/Overnet, Gnutella, FastTrack і Ares Galaxy мають приблизно 10.3 мільйонів користувачів (на квітень 2006 року, згідно зі slyck.com).

Третє покоління P2P мереж

Третє покоління P2P мереж характеризується децентралізованою структурою, та принципово новими алгоритмами пошуку, які базуються на ключовому понятті розподіленої хеш-таблиці (Distributed hash table) яка підтримується учасниками мережі.

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

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

Анонімні peer-to-peer мережі

Приклади анонімних мереж — Freenet, I2P, ANts P2P, RShare, GNUnet і Entropy. Також [1]прикладом децентралізованої мережі є система анонімної цифрової грошової одиниці Bitcoin.

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

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

• Розподіл/зменшення вартості. Централізовані системи, які обслуговують багато клієнтів, зазвичай складають більшість вартості системи. Коли, ця вартість стає дуже великою, архітектура P2P може допомогти розподілити вартість серед користувачів. Наприклад, серед систем файлообміну Napster дозволив розподілити вартість зберігання файлів і міг підтримувати індекс, потрібний для сумісного використання. Економія коштів, здійснюється за допомогою використання та об'єднання ресурсів, які в іншому випадку не використовуються (наприклад SETI@home). Оскільки вузли зазвичай є автономними, важливо розподіляти витрати справедливо.

• Об'єднання ресурсів. Децентралізований підхід веде до об'єднання ресурсів. Кожен вузол в системі P2P приносить певні ресурси як наприклад обчислювальна потужність або пам'ять.

У програмах, які потребують величезну кількість цих ресурсів, як наприклад intensive моделювання або розподілені файлові системи, природно використовувати P2P, щоб залучити ці ресурси. Розподілені обчислювальні системи, як наприклад SETI@Home, distributed.net, і Endeavours — очевидні приклади цього підходу. Об'єднуючи ресурси тисяч вузлів, вони можуть виконувати важкі з точки зору кількості обчислень функції.

Файлобмінні системи, як наприклад Napster, Gnutella, і так далі, також об'єднують ресурси.

У цих випадках, це дисковий простір, щоб зберігати дані, та пропускна спроможність, щоб їх передавати.

• Вдосконалена масштабованість/надійність. З відсутністю сильної центральної влади по відношенню до автономних вузлів, важливою метою є покращення масштабованості і надійності. Масштабованість і надійність визначаються в традиційному для розподілених систем сенсі, як наприклад використання пропускної спроможності — скільки вузлів можуть бути досягнуті від одного вузла, скільки вузлів може підтримуватися, скільки користувачів може підтримуватися. Розподілена природа peer-to-peer мереж також збільшує помилкостійкість у разі невдач, шляхом дублювання даних поміж багатьох вузлів, і — в чистих системах P2P — надаючи можливість вузлу знайти дані без залежності від єдиного централізованого індексного сервера. У останньому випадку, немає ніякої єдиної критичної точки в системі.

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

• Анонімність/конфіденційність. Пов'язаним із автономією є поняття анонімності і конфіденційності. Користувач, можливо, не хоче, щоб кого-небудь або будь-який постачальник послуг знав про нього або про його роль у системі. З центральним сервером, гарантувати анонімність важко, тому що сервер зазвичай зможе ідентифікувати клієнта, як мінімум через його адресу в Інтернет. Використовуючи структуру P2P, в якій дії виконуються локально, користувачі можуть уникати необхідності передавати будь-яку інформацію про себе до кого-небудь іншого. FreeNet — яскравий приклад того, як анонімність може вбудуватися в додаток P2P. Він пересилає повідомлення через інші вузли, щоб забезпечити неможливість вистежування початкового автора. Це збільшує анонімність, використовуючи імовірнісні алгоритми таким чином, щоб походження не можливо було легко відстежити аналізуючи трафік у мережі.

• Динамічність. Системи P2P припускають, що оточення надзвичайно динамічне. Тобто, ресурси, як наприклад вузли, з'являються та зникають із системи безперервно. У випадках комунікації, як наприклад мережі для обміну повідомленнями, використовуються так званий «список контактів», щоб інформувати користувачів, коли їхні друзі стають доступними. Без цього, потрібно було би, щоб користувачі «опитували» партнерів, посилаючи періодичні повідомлення. У випадку розподілених обчислень, як наприклад distributed.net і SETI@home, система повинна пристосуватись до заміни учасників. Тому вони повинні повторно видавати завдання для обчислення іншим учасникам, щоб гарантувати, що робота не втрачена, якщо попередні учасники відпадають від мережі, поки вони виконували крок обчислення.

За функціями:

• Розподілені обчислення. Обчислювальна проблема розподіляються на невеликі незалежні частини. Обробка кожної з частин робиться на індивідуальному ПК і результати збираються на центральному сервері. Цей центральний сервер відповідальний за розподілення елементів роботи серед окремих комп'ютерів в Інтернеті. Кожен із зареєстрованих користувачів має клієнтське програмне забезпечення. Воно користується періодами бездіяльності в ПК (часто це характеризується часами активації скрінсейверів), щоб виконувати деяке обчислення, надане сервером. Після того, як обчислення закінчене, результат посилається назад до сервера, і нова робота передається для клієнта.

• Файлообмін. Зберігання та обмін даними ¬- це одна з областей, де технологія P2P була найуспішнішою. Мультимедійні дані, наприклад, вимагають великих файлів. Napster і Gnutella використовувались користувачами, щоб обійти обмеження пропускної спроможності, які роблять передачу великих файлів неприйнятними.

• Співпраця. Природа технології P2P робить її добре придатною для забезпечення співпраці між користувачами. Це може бути обмін повідомленнями, онлайн ігри, сумісна робота над документами в бізнесі, освіті та дома.

За ступенем централізації:

• Чисті peer-to-peer системи. Вузли є рівними, поєднуючи ролі серверу та клієнту. Не існує центрального сервера, що керує мережею. Прикладами таких систем є Gnutella та Freenet

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

В залежності від того, як вузли з'єднуються один з одним можна поділити мережі на структуровані та неструктуровані:

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

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

• Ares Ares

• Blubster Blubster

• FileSpree FileSpree

• Gnutella Gnutella AquaLime, BearShare, FileNavigator, FreeWire, Gnucleus, LimeWire, Phex,

Shareaza, Xolox Ultra

• DirectConnect DirectConnect

• eDonkey2000eDonkey2000, eMule

• FastTrackMorpheus, KaZaA, KaZaA Lite, Grokster, iMesh

• PioletPiolet

• WASTEWASTE

«БітТоррент» (BitTorrent) — відкритий протокол обміну інформацією у мережах типу peer-to-peer. Автором проекту є Брам Коен (Bram Cohen), який створив першу версію у квітні 2001 разом із першим клієнтом з тією ж назвою.

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

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

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

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

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

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

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

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

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

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

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

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

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