суббота, 7 июля 2007 г.

Как работают торренты.

Intro
В своё время я сам искал ответ на этот вопрос, дня три и после 30 примерно разных запросов в Гугл, я начал понимать, как ЭТО работает. И вот как!

Поехали! (Ц, Гагарин)
Перво-наперво торрент клиент (далее ТК, клиент на тачке на которой закачивается файл, например WinXP.iso), парсит файл .торрент любезно предоставленный заботливым пользователям :), там в "первой строчке" он находит адресс куда надо сделать ГЕТ запрос: http://bt.myt0rrent.gov/announce.php?uk=jPAnNwpuvd

Что происходит дальше, смотри ниже (пользователи Lynx’a извиняйте :) )
Как работают торренты
Запрос 1.
Следуя по этому адресу (из .торрент файла) с ГЕТ запросом, в котором, содержится много всякой инфы (ИД, сколько скачал, сколько надо скачать и т.д.).
Ответ 1.
Сервер (в ответе) помимо всего возвращает список ИП машин, с указанными портами (пример: 56.200.37.2:3665), которые тоже качают/отдают данный торрент.

Запрос 2. (одиноковый для всех машин, разница лишь в данных которые запрашиваются)
Наш ТК получает эти данные и… правильно обращается к каждой из этих машин (в этом случае, каждая машина вешает сервер на данный порт) с просьбой "типа подгони пару байт, подними себе ratio :)".
Ответ 2.
Машины любезно подгоняют байты в массы!

Несколько заметок.
1. вся информация передаётся по протоколам HTTP/HTTPS.
2. вся "полезная" информация, то есть торрент файл, ответы сервера (трекера) и клиентов предоставляются в виде bencoding данных.

Что почитать.
1. Ну конечно Спецификация, зеркальце
2. Альтернатива ( ДЖДЖДЖ запил гитары, Slayer превед! :) ) всегда важна (!!!), так вот и она: PDTP, о PDTP (на русском из ЛинуксФормата, выпуск 70 )

+ спасибо Патисону за критику

Комментариев нет:

[Кодер]::Лого :) - просто как всё гениальное.