
Как работают торренты: работа протокола простым языком

Протокол передачи данных BitTorrent был создан в 2001 году. Его активно используют для передачи больших файлов - далеко не всегда пиратских. Торрентами пользуются не только активно (но безуспешно) блокируемые РКН торрент-трекеры с платным контентом, но и крупные корпорации для обмена объёмными базами данных. Как же работает этот протокол?
Раздача
Предположим, у нас есть большой файл (10-20 ГБ), который нужно раздать тысяче пользователей. Отправлять каждому в отдельности - чистой воды потеря времени. Загрузка со стороннего файлообменника тоже займёт несколько часов у каждого получателя. Вместо этого можно:
- разделить файл на множество мелких фрагментов;
- делиться этими кусочками с пользователями;
- тот, кто уже загрузил фрагмент, может раздавать его другим.
Как это реализовано в BitTorrent? Для начала раздающему нужно скачать торрент клиент - программу, которая будет загружать данные о файле на сервер. Сервер формирует торрент-файл - легковесный документ с координатами сервера и информацией о файле. Этот документ выкладывается на сайт, где его могут скачать пользователи.
Скачивание
Мы нашли на трекере нужный нам файл и качаем легковесный торрент. Открыть его можно с помощью того же торрент-клиента, что и у раздающего. В документе содержатся координаты сервера. По ним торрент-клиент обращается к серверу и спрашивает, где сейчас можно скачать искомый файл. Сервер запрашивает у всех скачивающих и раздающих список имеющихся фрагментов и сообщает вашему клиенту, откуда их можно достать. Чем больше людей раздают фрагменты искомого файла, тем быстрее он скачается.
Если вы - первый и единственный скачивающий, то загрузка будет довольно медленной. Скорость будет ограничена скоростью отдачи у единственного раздающего. Но предположим, что параллельно с вами файл качают ещё несколько человек. Каждый из них через свой торрент-клиент отправляет на сервер информацию о том, какие фрагменты уже загружены, даже если файл целиком ещё не скачан. Ваш клиент регулярно запрашивает обновление информации у сервера. Прямо в процессе скачивания клиент "узнаёт" о том, где можно загрузить другие фрагменты файла, и увеличивает скорость загрузки.
Кто использует протокол BitTorrent
Этим протоколом пользуются крупные компании:
- Facebook. У соцсети есть несколько серверов, которые требуют одновременной загрузки обновлений. Для передачи этих данных используют торренты;
- Blizzard. Создатели World of Warcraft применяют этот протокол для того, чтобы предоставить своим игрокам быструю загрузку клиентов игр;
- радиостанции. NRK, CBC, VPRO и многие другие бесплатно распространяют записи своих эфиров через торренты.
|
</> |