Торренты и торрент-раздача¶
Торрент — файл с расширением .torrent, содержащий метаданные о разделяемом контенте и адресах узлов сети, а также обобщённое название технологии файлообмена, основанной на протоколе BitTorrent. В отличие от классической клиент-серверной модели, при которой все участники скачивают файл с одного сервера, в торрент-сети каждый клиент одновременно скачивает недостающие фрагменты файла у других пользователей и отдаёт им уже скачанные куски. Такой подход называется раздачей (сидированием) и позволяет распределить нагрузку между всеми участниками.
¶Принцип работы
Файл, раздаваемый по торренту, разбивается на равные части — фрагменты (обычно от 256 КБ до 16 МБ). В .torrent-файле хранятся:
- имя раздачи и список файлов;
- размер фрагмента и контрольные суммы (SHA-1) каждого фрагмента;
- адрес трекера — сервера, отслеживающего участников раздачи;
- список «пиров» (участников), если раздача работает по модели DHT без центрального трекера.
Клиент, желающий скачать файл, обращается к трекеру или через DHT-сеть (распределённую хеш-таблицу) и получает список IP-адресов других клиентов. Далее обмен данными идёт напрямую между участниками. Клиент, у которого уже есть весь файл, называется сидом; клиент, который ещё качает, — личем. Клиент, у которого есть только часть файла, раздаёт эти фрагменты, одновременно докачивая недостающие.
¶История
Протокол BitTorrent разработан Брэмом Коэном (Bram Cohen). Первый публичный релиз состоялся в 2001 году. Идея Коэна заключалась в том, чтобы сделать раздачу популярного контента (например, дистрибутивов Linux) дешёвой: чем больше людей качает файл, тем быстрее он раздаётся, а не наоборот.
В 2003 году появился клиент BitTorrent для Unix, затем были выпущены версии для Windows и macOS. В середине 2000-х годов технология получила массовое распространение: по оценкам различных аналитиков, в пиковые годы торрент-трафик составлял от 30 до 70 % всего трафика интернета в отдельных странах.
В 2017 году компания BitTorrent Inc., разрабатывавшая одноимённый клиент, была приобретена криптовалютной биржей Tron Foundation.
¶Трекеры и DHT
Трекер — это HTTP-сервер, который ведёт список активных участников раздачи. Клиенты регулярно отправляют трекеру запросы (announce) и получают адреса пиров. Крупнейшие публичные трекеры в разные годы — Demonoid, The Pirate Bay, RuTracker — индексировали миллионы раздач.
В 2005 году в клиент BitTorrent была добавлена поддержка DHT — распределённой хеш-таблицы, работающей по протоколу Kademlia. DHT позволяет обходиться без центрального трекера: список участников хранится в самих клиентах, что делает сеть устойчивой к блокировкам отдельных серверов. Позже появились протоколы PEX (обмен списками пиров между клиентами) и Local Peer Discovery (поиск пиров в локальной сети).
¶Метка-файл и клиенты
Файл .torrent можно открыть в любом торрент-клиенте. Наиболее известные клиенты:
| Клиент | Особенности |
|---|---|
| qBittorrent | Свободный, без рекламы, мультиплатформенный |
| Transmission | Лёгкий клиент для macOS и Linux |
| Deluge | Модульная архитектура, поддержка плагинов |
| µTorrent | Популярный клиент для Windows (проприетарный) |
| BitTorrent | Официальный клиент от разработчиков протокола |
| libtorrent | Библиотека, на которой построено множество клиентов |
Помимо файлов .torrent, существует формат магнет-ссылки (magnet:?xt=urn:btih:...), который содержит только хеш раздачи. Магнет-ссылка позволяет начать скачивание без загрузки самого .torrent-файла — клиент ищет пиров через DHT.
¶Правовой статус
Технология BitTorrent нейтральна по отношению к содержимому: она одинаково используется для распространения свободного ПО (дистрибутивы Ubuntu, Fedora, архивы Internet Archive), открытых игр, научных данных и для пиратского распространения фильмов, игр и программ.
В России и ряде других стран распространение контента, на который распространяются авторские права, через торренты без разрешения правообладателя является нарушением закона. Суды признают незаконным размещение торрент-файлов, содержащих ссылки на пиратский контент. Правообладатели и Роскомнадзор направляют трекерам и хостингам уведомления о незаконных раздачах (DMCA-подобные takedown-уведомления); крупные публичные трекеры периодически блокируются по решению судов.
¶Применение
BitTorrent применяется в легальных целях:
- распространение дистрибутивов Linux и BSD (официальные сайты Ubuntu, Debian и Fedora предлагают скачивание торрент-файлами);
- раздача больших архивов (Internet Archive использует торренты для раздачи своих коллекций);
- обмен файлами в закрытых сообществах и корпоративных сетях;
- игровая индустрия: некоторые издатели (например, Blizzard) использовали торрент-протокол для обновления игр;
- обновление программного обеспечения: протокол встроен в некоторые системы управления пакетами.
¶Ограничения
Скорость скачивания через торрент зависит от количества и скорости сидов. В раздачах с малым числом участников загрузка может быть медленнее, чем при прямом скачивании. Кроме того, в отличие от HTTP-загрузки, торрент-клиент продолжает отдавать данные другим участникам после завершения загрузки, что расходует трафик и ресурсы канала пользователя.
Исторически технология BitTorrent стала одним из первых массовых примеров децентрализованного распределённого хранения данных и повлияла на развитие одноранговых сетей, распределённого хранения (IPFS, BitTorrent Sync) и криптовалютных систем.
Источники:
- Bram Cohen. BitTorrent Protocol Specification. — 2008.
- A. Bakulev. BitTorrent-протокол и его применение. — 2009.
- П. Майерс, А. Окулир. O'Reilly. BitTorrent для чайников. — 2005.
- RFC 5389, RFC 7693 (спецификации, связанные с инфраструктурой P2P-сетей).
- Материалы проекта libtorrent (libtorrent.org).
