Як клієнти-торенти збирають та зберігають твори?


9

Мені було цікаво, як зберігаються та повторно збираються фрагменти, завантажені торент-клієнтами? Вони використовують метадані? Здається, це не так, оскільки хтось може їх відтворити, якщо вони наполовину сформовані файли? У мене немає поняття, як це робиться? Отже, я в основному запитую, як організовані фрагменти у завантаженому файлі? Це просто від першого до останнього, або є між ними буферні пробіли?


Чи є якийсь спосіб завантажити половину завантажених фрагментів після повторної перевірки?. Моє з'єднання - це як комутований ...... Тож будь ласка, допоможіть.

Відповіді:


19

Ласкаво просимо в чудовий світ Торрент! Є кілька фрагментів, які складають протокол Bittorrent: у вас є файл, legalthing.iso, і ви хочете поширити його якомога більше людей. Таким чином, ви створюєте "торрент-файл", в якому описується legalthing.iso, і ви поширюєте торрент-файл через веб-сайт або будь-яким іншим способом. Файл торрента може вказувати безпосередньо на ваш комп'ютер (а ви будете виконувати роль насіння) або файл торрента може вказувати на "трекер", який є сервером, який з'єднує "насіння" (користувачів із усім legalthing.iso файл уже) та "однорангові" (користувачі, які активно завантажують файл).

Наблизившись до свого питання зараз. Сам файл legalthing.iso криптографічно хеширується так, що кожен, хто читає файл торрента і починає завантажувати legalthing.iso, може перевірити кожен фрагмент на хеш і переконатися, що вони не завантажують фрагмент, модифікований з оригіналу. Шматки, які не мають хеш-перевірок, відкидаються.

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

Отже, що є у фактичному файлі торрента? Він змінюється залежно від клієнта, який використовується для його створення, але, як правило, містить розділ "оголошення", який є адресою трекера, який ви використовуєте, та великий величезний список усіх фрагментів файлу, який ви хочете завантажити. Кожен шматок має однаковий розмір (32 кб, 512 кб, 4 Мб, дійсно будь-який розмір, який вам подобається), і кожен шматок має з ним хеш. Кожен раз, коли одноранговий отримує фрагмент, він порівнює хеш для цього фрагмента (використовуючи хеш-код SHA-1) з хешем, вказаним у файлі торрента. Ось як це з'ясовує, шматочки гарні.

Оскільки торрент-файл перераховує кожен фрагмент завантаженого вами файлу, кожен раз, коли ваш клієнт успішно завантажує фрагмент і хеширує його, він записує фрагмент у правильне положення на жорсткий диск у файлі. Ось чому, якщо ви завантажите файл на 1 ГБ, клієнт відкладе порожній пробіл на диску, розміром 1 Гб, для розміщення торрентних фрагментів, які ви завантажуєте.

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

Є набагато складніші аспекти (google DHT, буферизація писемних торрентів, все, що цікаво), але це основи роботи Bittorrent.


Ого, це дуже повна відповідь .... але я ніколи не помічав, щоб це дійсно відкладало файл 1 Гб? Здається, що вона росте поступово?
Cenoc

1
@Cenoc залежить від клієнта-торента, деякі клієнти попередньо виділяють, деякі не, деякі мають додаткові переваги для попереднього виділення
Sathyajith Bhat

Цікаво, так що спочатку це просто файл, заповнений '0', а потім, коли частково завантажений файл спочатку перевіряється, його порівнюють з хешами?
Cenoc

1
Це порожній контейнер для можливого повного файлу, і коли кожен фрагмент завантажується клієнтом, він перевіряється на хеш і потім поміщається у відповідне місце в контейнері до повного завершення файлу.
geodave

1
Як згадувала Сатья, це залежить від клієнта. Деякі заздалегідь виділять місце на вашому жорсткому диску для всього файлу; це зарезервує купу місця, а інші програми не зможуть використовувати це місце на диску, доки ваш файл не буде завантажений. Інші клієнти bittorrent помістять готові фрагменти у тимчасове місце зберігання, щоб заощадити на диску-диску, а потім зібрати повний файл після завантаження всіх фрагментів. Це залежить від того, які налаштування ви виберете.
geodave
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.