Ласкаво просимо в чудовий світ Торрент! Є кілька фрагментів, які складають протокол Bittorrent: у вас є файл, legalthing.iso, і ви хочете поширити його якомога більше людей. Таким чином, ви створюєте "торрент-файл", в якому описується legalthing.iso, і ви поширюєте торрент-файл через веб-сайт або будь-яким іншим способом. Файл торрента може вказувати безпосередньо на ваш комп'ютер (а ви будете виконувати роль насіння) або файл торрента може вказувати на "трекер", який є сервером, який з'єднує "насіння" (користувачів із усім legalthing.iso файл уже) та "однорангові" (користувачі, які активно завантажують файл).
Наблизившись до свого питання зараз. Сам файл legalthing.iso криптографічно хеширується так, що кожен, хто читає файл торрента і починає завантажувати legalthing.iso, може перевірити кожен фрагмент на хеш і переконатися, що вони не завантажують фрагмент, модифікований з оригіналу. Шматки, які не мають хеш-перевірок, відкидаються.
Тепер зробіть вигляд, що комп'ютер завантажує файл за допомогою Bittorrent. Протокол може працювати одним із двох способів: ви завантажуєте випадкові фрагменти файлу, або спочатку завантажуєте найрідкісніші фрагменти. Останній підхід полягає у підвищенні загального "здоров'я" (доступності) торента.
Отже, що є у фактичному файлі торрента? Він змінюється залежно від клієнта, який використовується для його створення, але, як правило, містить розділ "оголошення", який є адресою трекера, який ви використовуєте, та великий величезний список усіх фрагментів файлу, який ви хочете завантажити. Кожен шматок має однаковий розмір (32 кб, 512 кб, 4 Мб, дійсно будь-який розмір, який вам подобається), і кожен шматок має з ним хеш. Кожен раз, коли одноранговий отримує фрагмент, він порівнює хеш для цього фрагмента (використовуючи хеш-код SHA-1) з хешем, вказаним у файлі торрента. Ось як це з'ясовує, шматочки гарні.
Оскільки торрент-файл перераховує кожен фрагмент завантаженого вами файлу, кожен раз, коли ваш клієнт успішно завантажує фрагмент і хеширує його, він записує фрагмент у правильне положення на жорсткий диск у файлі. Ось чому, якщо ви завантажите файл на 1 ГБ, клієнт відкладе порожній пробіл на диску, розміром 1 Гб, для розміщення торрентних фрагментів, які ви завантажуєте.
Зараз деякі відеопрогравачі та інші переглядачі файлів можуть мати справу з "пошкодженими" файлами. звичайно, напівзавантажений торрент не пошкоджений, але у ньому відсутні фрагменти, і для такої програми, як VLC, він просто виглядає зламаним. Таким чином, VLC зробить все можливе, щоб відтворити будь-які дані, які він знайде, і тому вони можуть грати, частково завантажуючи їх.
Є набагато складніші аспекти (google DHT, буферизація писемних торрентів, все, що цікаво), але це основи роботи Bittorrent.