Как устроен торрент

С миру по нитке – голому рубаха, а с мира по «пиру» – пользователю файл. Торрент – как сплетение тонких файловых «ниточек», тянущихся к вашему компьютеру со всего Земного шара. Чтобы докачать информацию целиком, достаточно запустить «torrent-клиент» на ПК

и «продеть» в него, будто нитку в иголку, специальную ссылку в Сети. Как же работает эта полезная технология и кто ее придумал?

В основе всего лежит BitTorrent – сетевой протокол для обмена файлами. Он был создан американским программистом Брэмом КОЭНОМ, который написал первый «torrent-клиент» «BitTorrent» на языке Python в апреле 2001 года. Файлы по такому протоколу передаются частями, а каждый torrent-клиент, получая эти части, в то же время отдает их другим клиентам.

Принцип работы протокола заключается в том, скачивающие файлы клиенты начинают обмениваться данными сразу же, даже если файл еще не скачан ими до конца.

Для работы BitTorrent, как правило, необходим трекер – специализированный сервер. Он нужен, чтобы клиенты, именуемые «пирами», смогли друг друга найти. Перед началом скачивания клиент подсоединяется к трекеру по указанному в torrent -файле адресу, сообщает ему свой адрес и идентификатор файла, который требуется скачать (он именуется хэш-суммой). В ответ клиент получает адреса других клиентов, скачивающих или раздающих этот файл. Впоследствии клиент периодически информирует трекер о ходе процесса и получает обновленные списки адресов. Пиры соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера. Он лишь хранит информацию, получаемую от клиентов. Существуют также и бестрекерные системы, в которых трекер доступен децентрализованно – на клиентах в форме распределенной хэш-таблицы.

При соединении клиенты сразу обмениваются информацией об имеющихся у них сегментах. Обмен данными начинается, когда каждая из сторон имеет сегменты, которых нет у другой. Пир, желающий скачать сегмент, именуемый также «личем», посылает запрос и получает его от соответствующего клиента.

Количество переданных сегментов подсчитывается, и если одна из сторон обнаруживает, что передает в среднем больше, чем принимает, она блокирует на некоторое время отдачу другой стороне. Это делается для более эффективного использования канала отдачи. При выборе, кого разблокировать, предпочтение отдается клиентам, которые передали много сегментов.

Порядок обмена выбирается таким образом, чтобы сначала клиенты обменивались наиболее редкими сегментами: таким образом повышается доступность файлов в раздаче. Одновременно могут запрашиваться блоки из разных сегментов.

Когда скачивание почти завершено, клиент входит в режим, именуемый end game. Он запрашивает все оставшиеся сегменты у всех раздающих клиентов, что позволяет избежать замедления почти завершенной закачки.

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

Кратко резюмируем: уникальность и «непобедимость» торрентов состоит в том, что фильмы, музыка или программы находятся одновременно «везде и всюду». И если ухватиться за нужную веревочку, то обязательно выудишь из глубоких вод Интернета искомый контент. Главное, чтобы он был легальным и не подпадал под авторские ограничения.



подпишитесь на нас в Дзен