BitTorrent

Эта статья входит в число готовых статей
Эта статья прошла проверку экспертом
Материал из «Знание.Вики»
Принцип работы BitTorrent

BitTorrent — это p2p-протокол, который упрощает распространение файлов, особенно больших и снижает нагрузку на каждого участника, а также снижает зависимость от источника, который раздает файл. Это достигается за счет использования возможностей загрузки одноранговых узлов, которые загружают файл. Значительное увеличение числа загрузчиков приведет лишь к незначительному увеличению нагрузки на издателя, размещающего файл.[1]

P2P-протокол

Peer-to-peer (P2P) — это децентрализованная модель связи, в которой каждая сторона обладает одинаковыми возможностями, и любая сторона может инициировать сеанс связи.[2]

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

Системы P2P могут обеспечивать анонимизированную маршрутизацию сетевого трафика, массовые параллельные вычислительные среды, распределенное хранилище и другие функции. Большинство P2P-программ сосредоточены на совместном использовании мультимедиа, поэтому P2P в основном ассоциируется с пиратством программного обеспечения и нарушением авторских прав.

В настоящее время программное обеспечение, использующее одноранговые сетевые решения, становится все более популярным. По сравнению с более распространенным серверно-клиентским решением одноранговый подход имеет ряд преимуществ, включая повышенную надежность и предоставление ресурсов, таких как пропускная способность, пространство для хранения и вычислительная мощность, одноранговыми узлами. Одной из областей, где важна надежность и использование ресурсов, является распределение файлов, особенно больших. Примером решения peer-topeer, которое зарекомендовало себя как эффективная и надежная альтернатива классическому решению сервер-клиент, является BitTorrent.[3]

История BitTorrent

Брэм Коэн

К концу 90-х у Брэма Коэна возникла идея сохранить файл в целости и сохранности, разбив его на мелкие фрагменты, зашифровав их и сохранив в разных местах. Брэм понял, что концепция разбиения файла на более мелкие фрагменты также может быть использована при совместном использовании файлов.[4] Летом 2001 года Коэн выпустил свою первую бета-версию BitTorrent. В 2002 году он представил его на конференции. Его целью с помощью этого программного обеспечения было предоставить людям быстрый и простой способ распространения и обновления программного обеспечения Linux. Однако в 2004 году пиратские копии фильмов и телешоу начали доминировать в трафике BitTorrent.

Способ работы BitTorrent также значительно отличается от других существующих одноранговых протоколов.

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

Архитектура BitTorrent

Файл:ΜTorrent screenshot.png
Utorrent — один из торрент-клиентов

Архитектура BitTorrent обычно состоит из следующих объектов:[5]

  • статический файл metainfo («торрент-файл»).
  • трекер.
  • оригинальный загрузчик («seed»).
  • загрузчик конечного пользователя («leecher»).

Первым шагом в публикации файла с помощью BitTorrent является создание файла метаинформации из файла, который нужно опубликовать. Файл метаинформации называется «торрент». Торрент-файл содержит имя файла, размер, информацию о хешировании и URL-адрес «трекера».[6]

Торрент создается с помощью бесплатной программы. Эта функция также обычно включена в клиенты BitTorrent. Чтобы загрузить или «раздать» файл нужен клиент BitTorrent. Клиент BitTorrent — это бесплатное приложение, которое управляет процедурой загрузки. Доступно несколько различных клиентов BitTorrent . Все они поддерживают стандартный протокол BitTorrent, но могут отличаться и быть несовместимы друг с другом по некоторым функциям . Загрузка BitTorrent начинается с открытия торрент-файла в клиенте BitTorrent.

Трекер ведет журнал пиров, которые в данный момент скачивают файл, и помогает им найти друг друга. Трекер не принимает непосредственного участия в передаче данных и не имеет копии файла. Трекер и скачивающие пользователи обмениваются информацией по простому протоколу поверх HTTP. Во-первых, пользователь сообщает трекеру информацию о том, какой файл он скачивает, какие порты прослушивает и т. д. Ответ от трекера — это список других пользователей, которые скачивают тот же файл, и информация о том, как с ними связаться.[7]

Однако создания торрент-файла недостаточно, чтобы сделать файл, который нужно распространять, доступным. Должен быть запущен оригинальный загрузчик, известный как «seed». «Сид» — это пользователь, у которого есть весь файл. Скачивающий пользователь, у которого нет ничего или только части файла, называется «личером». «Сид» должен загрузить хотя бы одну полную копию файла. Как только вся копия будет распространена среди других загрузчиков, «начальный сид» может прекратить загрузку, и загрузка будет продолжаться для всех загрузчиков, пока есть достаточное количество людей, загружающих файл, и все части файла доступны. В результате требования к пропускной способности для пользователя, который разместил файл меньше, если скачивает много людей. Это полная противоположность тому, что произошло бы, если бы использовалось какое-либо серверно-клиентское решение. Требование к пропускной способности трекера также очень низкое, несмотря на то, что количество загрузчиков велико.

При создании торрент-файла из исходного файла исходный файл разрезается на более мелкие части, обычно размером 512 КБ или 256 КБ. Хэш-коды частей SHA-1 включены в торрент-файл. Загруженные данные проверяются путем вычисления хэш-кода SHA-1 и сравнения его с кодом SHA-1 соответствующего фрагмента в торрент-файле. Таким образом, данные проверяются на наличие ошибок, и это гарантирует пользователям, что они загружают правильный файл. Всякий раз, когда фрагмент загружается и проверяется, загружающий одноранговый узел сообщает другим одноранговым узлам в раздаче о своем новом фрагменте.

Терминология

Клиент / Торрент-клиент

Это программное обеспечение, которое управляет подключениями к BitTorrent. Он отвечает за загрузку торрент-ссылок и подключение к одноранговым узлам в рое. Многие торрент-клиенты добавляют дополнительные функции, такие как шифрование, поддержка прокси и управление пропускной способностью.

К популярным торрент-клиентам относятся: uTorrent, BitTorrent, Vuze, Deluge, qBittorrent и Transmission.

Мертвый торрент

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

Децентрализованный

BitTorrent — это децентрализованный протокол. Вместо загрузки файлов с центрального сервера фрагменты торрент-файлов распространяются по всей сети, что делает её более устойчивой к цензуре.

Распределенная хэш-таблица (DHT)

Вместо того чтобы загружать список одноранговых узлов непосредственно с трекера, DHT позволяет торрент-клиенту обнаруживать новых одноранговых узлов у других одноранговых узлов, к которым вы уже подключились. Это как рекомендация от друга. DHT помогает децентрализовать сеть BitTorrent, чтобы трекеры не были причиной сбоя.

Шифрование

Шифрование — это метод скремблирования данных таким образом, чтобы они не могли быть прочитаны сторонними пользователями. Большинство торрент-клиентов имеют дополнительное шифрование протокола, которое можно использовать для маскировки торрент-трафика и обхода регулирования.[8]

Фейковые торренты

Фейковый торрент — это любой торрент-файл с обманчивым названием, который не соответствует его содержимому. Часто поддельные торренты представляют собой чрезвычайно популярные или редкие медиафайлы, такие как изображения, видео или музыка. Поддельные торренты могут быть просто безвредным или могут содержать вредоносные программы, шпионские программы и вирусы.

Брандмауэр

Брандмауэр — это тип программного обеспечения безопасности, который ограничивает входящие / исходящие подключения к устройству или сети. Он предназначен для контроля доступа и предотвращения опасной сетевой активности (например, хакеров). Брандмауэры могут запускаться на системном уровне (брандмауэр Windows на ПК) или на сетевом уровне (брандмауэр вашего интернет-провайдера). Некоторые брандмауэры могут блокировать порты BitTorrent или одноранговые соединения.

Грэб

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

Хэш

Каждый файл .torrent имеет уникальный хэш, который похож на цифровой отпечаток пальца. Хэш — это метод проверки подлинности целостности данных, поэтому злоумышленники не могут изменить часть файла.

Сегмент

Все файлы для передачи делятся на небольшие куски— сегменты, которые, затем, передаются по сети в произвольном порядке для оптимизации обмена.

Личер

Личер (англ. leech — пиявка)— это любой одноранговый узел, у которого нет полной копии торрент-файла и который все еще загружается. Пользователь можете быть и личером, и сидом одновременно, загружая фрагменты файла, который вы уже загрузили.[9]

Магнитная ссылка

Магнитные ссылки — это, по сути, URL (гиперссылка) с дополнительными параметрами, которые указывают на файл .torrent (метаданные с информацией о файле). Большинство крупных торрент-клиентов могут открывать магнитные ссылки, проверять подлинность .torrent файла по хэшу магнита и получать торрент напрямую.

Пир

Клиент, участвующий в раздаче в любой файлообменной сети.

Приватный трекер

Частные трекеры — это торрент-сообщества только по приглашению, которые соблюдают определенные правила и соотношение долей. Они предлагают немного больше конфиденциальности от торрент-мониторинга, чем общедоступные трекеры. Они также, как правило, содержат хорошо заполненные файлы и множество труднодоступных торрентов, которые недоступны публично. Многие частные трекеры организованы вокруг определенной темы (например, бутлеги с живой музыкой).[10]

Сид, сидер

Сид (англ. Seeder — сеятель) — это любой одноранговый узел, который имеет полную копию торрент-файла и в данный момент загружает фрагменты в swarm. Заполнение — это процесс загрузки. Одноранговые узлы, имеющие только часть торрент-файла, могут быть сеялками для их завершенной части, в то время как остальная часть является пиявкой.

Существует неписаное правило, согласно которому для каждого торрент-файла вы должны использовать как минимум столько данных, сколько вы извлекаете (коэффициент общего доступа 1). Это улучшает общее состояние сети и предотвращает ненужные торренты (которые не могут быть завершены, поскольку ни у одного узла нет полной копии.

Рой

Рой — это общая сумма всех одноранговых узлов (сеялки + пиявки), совместно использующих торрент-файл.

Примечание

  1. Кирилл Климентьев. Как работает BitTorrent — Журнал «Код». Журнал «Код» программирование без снобизма (19 ноября 2021). Дата обращения: 23 марта 2023.
  2. P2P протоколы обмена данными. Хабр. Дата обращения: 23 марта 2023.
  3. Peer-2-Peer на весь мир?. old.computerra.ru. Дата обращения: 23 марта 2023.
  4. Ян Альшевский. История торрентов, которые сэкономили белорусам миллионы - Технологии Onlíner. Onlíner (26 января 2020). Дата обращения: 23 марта 2023.
  5. BitTorrent. Как это работает и как с этим работать. XDRV.RU. Дата обращения: 23 марта 2023.
  6. Как работает торрент – загрузка файлов по технологии BitTorrent. Обзор сети Интернет. Дата обращения: 23 марта 2023.
  7. Как работает DHT? - Справочник по компьютерам и ноутбукам. ch-pik.ru. Дата обращения: 23 марта 2023.
  8. Скрытые торренты в utorrent. kompyutery-programmy.ru. Дата обращения: 23 марта 2023.
  9. Терминология торрентов - что значит пир, сид, личер? — пк-ГИД. www.pkgid.ru. Дата обращения: 23 марта 2023.
  10. Что такое общедоступные трекеры? - Публичный - 2023. larafornm. Дата обращения: 23 марта 2023.