BitTorrent , также называемый просто торрент , представляет собой протокол связи для однорангового обмена файлами (P2P), который позволяет пользователям децентрализованно распространять данные и электронные файлы через Интернет . Протокол разработан и поддерживается компанией Rainberry, Inc. и впервые был выпущен в 2001 году. [2]
Для отправки или получения файлов пользователи используют на своем компьютере , подключенном к Интернету, клиент BitTorrent , который доступен для различных вычислительных платформ и операционных систем , включая официальный клиент . Трекеры BitTorrent предоставляют список файлов, доступных для передачи, и позволяют клиенту находить одноранговых пользователей, известных как «сиды», которые могут передавать файлы. Загрузка BitTorrent считается более быстрой, чем HTTP («прямая загрузка») и FTP , из-за отсутствия центрального сервера, который мог бы ограничить пропускную способность. [3] [4]
BitTorrent — один из наиболее распространенных протоколов для передачи больших файлов, таких как цифровые видеофайлы , содержащие телепередачи и видеоклипы , или цифровые аудиофайлы , содержащие песни . В 2019 году BitTorrent был доминирующим протоколом обмена файлами и генерировал значительный объем интернет-трафика: 2,46% нисходящего и 27,58% восходящего трафика. [5]
Программист Брэм Коэн , выпускник Университета в Буффало , [6] разработал протокол в апреле 2001 года и выпустил первую доступную версию 2 июля 2001 года. [2] Коэн и Эшвин Навин основали BitTorrent, Inc. (позже переименованную в Rainberry, Inc.). ) для дальнейшего развития технологии в 2004 году.
В первой версии клиента BitTorrent не было ни поисковой системы, ни однорангового обмена. Вплоть до 2005 года единственным способом обмена файлами было создание небольшого текстового файла под названием « торрент », который можно было загрузить на сайт с индексом торрентов. Первый загрузчик действовал как начальный , а загрузчики изначально подключались как равноправные . Те, кто желает скачать файл, загружают торрент, который их клиент будет использовать для подключения к трекеру, имеющему список IP-адресов других семян и пиров в рое. Как только одноранговый узел завершил загрузку полного файла, он, в свою очередь, мог функционировать как начальное число. Эти файлы содержат метаданные о файлах, которые будут использоваться совместно, а также о трекерах , которые отслеживают другие начальные и одноранговые узлы.
В 2005 году сначала Vuze , а затем клиент BitTorrent представили распределенное отслеживание с использованием распределенных хеш-таблиц, что позволило клиентам напрямую обмениваться данными о роях без необходимости использования торрент-файла.
В 2006 году была добавлена функция обмена узлами, позволяющая клиентам добавлять узлы на основе данных, найденных на подключенных узлах.
В 2017 году компания BitTorrent, Inc. выпустила спецификацию протокола BitTorrent v2. [7] [8] BitTorrent v2 предназначен для бесперебойной работы с предыдущими версиями протокола BitTorrent. Основной причиной обновления было то, что старая криптографическая хеш-функция SHA-1 больше не считается разработчиками защищенной от вредоносных атак , и поэтому v2 использует SHA-256 . Для обеспечения обратной совместимости формат файла .torrent v2 поддерживает гибридный режим, в котором торренты хешируются как новым методом, так и старым методом, с намерением, чтобы файлы были доступны другим узлам как в группах v1, так и в v2. Еще одним обновлением спецификации является добавление хэш-дерева , чтобы ускорить процесс от добавления торрента до загрузки файлов и обеспечить более детальную проверку на предмет повреждения файлов. Кроме того, каждый файл теперь хешируется индивидуально, что позволяет дедуплицировать файлы в группе, так что, если несколько торрентов содержат одни и те же файлы, но раздающие раздают файл только из некоторых, загрузчики других торрентов все равно смогут загрузить файл. Кроме того, хеши файлов можно отображать на трекерах, сервисах индексации торрентов, осуществлять поиск роев путем поиска хэшей содержащихся в них файлов. Эти хэши отличаются от обычного хеша файлов SHA-256 и могут быть получены с помощью инструментов. [9] Magnet Links для версии 2 также поддерживают гибридный режим, чтобы обеспечить поддержку устаревших клиентов. [10]
Протокол BitTorrent можно использовать для уменьшения нагрузки на сервер и сеть при распространении больших файлов. Вместо загрузки файла с одного исходного сервера протокол BitTorrent позволяет пользователям присоединяться к «рою» хостов для одновременной загрузки и загрузки друг с друга. Этот протокол является альтернативой более старому методу распределения данных с одним источником и несколькими зеркальными источниками и может эффективно работать в сетях с более низкой пропускной способностью . Используя протокол BitTorrent, несколько простых компьютеров, например домашних компьютеров, могут заменить большие серверы, одновременно эффективно распределяя файлы среди множества получателей. Такое более низкое использование полосы пропускания также помогает предотвратить большие всплески интернет-трафика в определенной области, поддерживая более высокую скорость интернета для всех пользователей в целом, независимо от того, используют ли они протокол BitTorrent или нет.
Распространяемый файл делится на сегменты, называемые частями . Когда каждый узел получает новую часть файла, он становится источником (этой части) для других узлов, освобождая исходное начальное число от необходимости отправлять эту часть каждому компьютеру или пользователю, желающему получить копию. При использовании BitTorrent задача распространения файла распределяется между теми, кто этого хочет; вполне возможно, что начальное число отправит только одну копию самого файла и в конечном итоге распространит его среди неограниченного числа узлов. Каждый фрагмент защищен криптографическим хешем, содержащимся в дескрипторе торрента. [1] Это гарантирует, что любая модификация фрагмента может быть надежно обнаружена и, таким образом, предотвращает как случайные, так и злонамеренные модификации любого фрагмента, полученного на других узлах. Если узел начинается с подлинной копии дескриптора торрента, он может проверить подлинность всего полученного файла.
Части обычно загружаются непоследовательно и перестраиваются в правильном порядке клиентом BitTorrent, который отслеживает, какие части ему нужны, а также какие части у него есть и которые он может загрузить другим узлам. Фрагменты имеют одинаковый размер в течение одной загрузки (например, файл размером 10 МБ может быть передан как десять фрагментов по 1 МБ или как сорок фрагментов по 256 КБ). Благодаря характеру этого подхода загрузка любого файла может быть остановлена в любой момент и возобновлена позже без потери ранее загруженной информации, что, в свою очередь, делает BitTorrent особенно полезным при передаче файлов большего размера. Это также позволяет клиенту искать легкодоступные фрагменты и немедленно загружать их, вместо того, чтобы останавливать загрузку и ждать следующего (и, возможно, недоступного) фрагмента в очереди, что обычно сокращает общее время загрузки. Этот возможный переход от одноранговых узлов к раздающим определяет общее «здоровье» файла (определяемое количеством раз, когда файл доступен в его полной форме).
Распределенная природа BitTorrent может привести к лавинному распространению файла по множеству одноранговых компьютерных узлов. Чем больше пиров присоединяются к рою, тем выше вероятность успешной загрузки каким-либо конкретным узлом. По сравнению с традиционными схемами распространения через Интернет это позволяет значительно снизить затраты на оборудование и полосу пропускания исходного дистрибьютора. Протоколы распределенной загрузки в целом обеспечивают избыточность при системных проблемах, уменьшают зависимость от исходного распространителя [11] и предоставляют источники файла, которые обычно являются временными , и поэтому не существует единой точки отказа, как при односторонней передаче сервер-клиент.
Хотя оба в конечном итоге передают файлы по сети, загрузка BitTorrent отличается от односторонней загрузки сервер-клиент (как это типично, например, для HTTP- или FTP -запроса) несколькими фундаментальными способами:
В совокупности эти различия позволяют BitTorrent добиться гораздо меньших затрат для поставщика контента, гораздо большей избыточности и гораздо большей устойчивости к злоупотреблениям или « мгновенным толпам », чем обычное серверное программное обеспечение . Однако эта защита теоретически обходится дорого: загрузка может занять некоторое время, чтобы достичь полной скорости, поскольку может потребоваться время для установления достаточного количества одноранговых соединений, а также может потребоваться время, чтобы узел получил достаточно данных, чтобы стать эффективным загрузчик. Это контрастирует с обычными загрузками (например, с HTTP-сервера), которые, хотя и более уязвимы к перегрузке и злоупотреблениям, очень быстро достигают полной скорости и поддерживают эту скорость на протяжении всего времени. Вначале несмежные методы загрузки BitTorrent затрудняли поддержку «потокового воспроизведения». В 2014 году клиент Popcorn Time позволил транслировать видеофайлы BitTorrent. С тех пор все больше и больше клиентов предлагают варианты потоковой передачи.
Протокол BitTorrent не позволяет индексировать торрент-файлы. В результате сравнительно небольшое количество веб-сайтов размещает подавляющее большинство торрентов, многие из которых ссылаются на произведения, защищенные авторским правом, без разрешения правообладателей, что делает эти сайты особенно уязвимыми для судебных исков. [13] Индекс BitTorrent — это «список файлов .torrent , который обычно включает описания» и информацию о содержимом торрента. [14] Несколько типов веб-сайтов поддерживают обнаружение и распространение данных в сети BitTorrent. Публичные торрент-хостинговые сайты, такие как The Pirate Bay, позволяют пользователям искать и скачивать торрент-файлы из своей коллекции. Пользователи обычно также могут загружать торрент-файлы для контента, который они хотят распространять. Часто на этих сайтах также используются трекеры BitTorrent для размещенных на них торрент-файлов, но эти две функции не являются взаимозависимыми: торрент-файл может размещаться на одном сайте и отслеживаться на другом, несвязанном с ним сайте. Частные хостинг-сайты/трекеры работают так же, как и общедоступные, за исключением того, что они могут ограничивать доступ зарегистрированным пользователям, а также могут отслеживать объем данных, загружаемых и скачиваемых каждым пользователем, в попытке уменьшить « похищение ».
Поисковые системы в Интернете позволяют находить торрент-файлы, которые размещаются и отслеживаются на других сайтах; примеры включают The Pirate Bay и BTDigg . Эти сайты позволяют пользователю запрашивать контент, соответствующий определенным критериям (например, содержащий заданное слово или фразу), и получать список ссылок на торрент-файлы, соответствующие этим критериям. Этот список часто можно отсортировать по нескольким критериям, причем релевантность (соотношение раздающих и личеров) является одним из самых популярных и полезных (из-за поведения протокола достижимая пропускная способность загрузки очень чувствительна к этому значению). Метапоисковые системы позволяют осуществлять поиск по нескольким индексам BitTorrent и поисковым системам одновременно.
Клиент Tribler BitTorrent был одним из первых, включивших встроенные возможности поиска. С помощью Tribler пользователи могут находить файлы .torrent, хранящиеся у случайных коллег и приятелей по вкусу. [15] Оно добавляет такую возможность к протоколу BitTorrent с использованием протокола сплетен , чем-то похожего на сеть eXeem , которая была закрыта в 2005 году. Программное обеспечение также включает в себя возможность рекомендовать контент. После дюжины загрузок программное обеспечение Tribler может примерно оценить вкус загрузки пользователя и порекомендовать дополнительный контент. [16]
В мае 2007 года исследователи из Корнеллского университета опубликовали статью, предлагающую новый подход к поиску неточных строк в одноранговой сети [17] , который может заменить функциональность центрального сайта индексирования. Год спустя та же команда реализовала систему в виде плагина для Vuze под названием Cubit [18] и опубликовала последующую статью, сообщающую об ее успехе. [19]
Несколько похожая возможность, но с немного другим подходом, предоставляется клиентом BitComet через функцию «Torrent Exchange» [20] . Всякий раз, когда два узла, использующие BitComet (с включенным Torrent Exchange), подключаются друг к другу, они обмениваются списками всех торрентов (имя и информационный хэш), которые имеются в хранилище Torrent Share (торрент-файлы, которые были загружены ранее и для которых пользователь выбрал включить обмен через Torrent Exchange). Таким образом, каждый клиент создает список всех торрентов, совместно используемых узлами, к которым он подключен в текущем сеансе (или он может даже поддерживать список между сеансами, если это указано).
В любой момент пользователь может найти в этом списке коллекции торрентов определенный торрент и отсортировать список по категориям. Когда пользователь решает загрузить торрент из этого списка, файл .torrent автоматически ищется (по значению информационного хеша) в сети DHT , и когда он найден, он загружается запрашивающим клиентом, который после этого может создать и инициировать загрузку. задача.
Пользователи находят интересующий торрент на сайте торрент-индекса или с помощью встроенной в клиент поисковой системы, загружают его и открывают с помощью BitTorrent-клиента. Клиент подключается к трекеру(ам) или седам, указанным в торрент-файле, от которых он получает список сидов и пиров, в данный момент передающих части файла(ов). Клиент подключается к этим узлам для получения различных частей. Если рой содержит только начальный сид, клиент подключается напрямую к нему и начинает запрашивать кусочки. Клиенты включают механизмы для оптимизации скорости загрузки и выгрузки.
Эффективность этого обмена данными во многом зависит от политик, которые используют клиенты, чтобы определить, кому отправлять данные. Клиенты могут предпочесть отправлять данные пирам, которые отправляют данные обратно им (схема обмена « око за око »), что способствует справедливой торговле. Но строгая политика часто приводит к неоптимальным ситуациям, например, когда вновь присоединившиеся узлы не могут получать какие-либо данные, потому что у них еще нет предметов для самостоятельной торговли, или когда два узла с хорошим соединением между собой не обмениваются данными просто потому, что ни один из них не обменивается данными. они берут инициативу на себя. Чтобы противостоять этим эффектам, официальная клиентская программа BitTorrent использует механизм, называемый «оптимистическое разблокирование», при котором клиент резервирует часть своей доступной пропускной способности для отправки фрагментов случайным узлам (не обязательно известным хорошим партнерам, так называемым предпочтительным узлам) в надежде находить еще лучших партнеров и гарантировать, что новички получат шанс присоединиться к рою. [21]
Хотя «роение» хорошо масштабируется, чтобы выдерживать «мгновенные толпы» для популярного контента, оно менее полезно для непопулярного или нишевого рыночного контента. Пиры, пришедшие после первоначального пика, могут обнаружить, что контент недоступен, и им придется дождаться прибытия «начального числа», чтобы завершить загрузку. Прибытие семян, в свою очередь, может занять много времени (это называется «проблемой продвижения сеялки»). Поскольку поддержка семян для непопулярного контента влечет за собой высокую пропускную способность и административные расходы, это противоречит целям издателей, которые ценят BitTorrent как дешевую альтернативу подходу клиент-сервер. Это происходит в огромных масштабах; измерения показали, что 38% всех новых торрентов становятся недоступными в течение первого месяца. [22] Стратегия, принятая многими издателями, которая значительно увеличивает доступность непопулярного контента, заключается в объединении нескольких файлов в один пакет. [23] Были предложены и более сложные решения; как правило, они используют механизмы кросс-торрента, с помощью которых несколько торрентов могут сотрудничать для лучшего обмена контентом. [24]
Партнер, распространяющий файл данных, рассматривает файл как несколько частей одинакового размера, обычно с размером байта, равным степени 2, и обычно размером от 32 КБ до 16 МБ каждая. Пир создает хэш для каждого фрагмента, используя хеш-функцию SHA-1 , и записывает его в торрент-файл. Фрагменты размером более 512 КБ уменьшают размер торрент-файла при очень большой полезной нагрузке, но, как утверждается, снижают эффективность протокола. [25] Когда другой одноранговый узел позже получает конкретный фрагмент, хэш фрагмента сравнивается с записанным хешем, чтобы проверить, что фрагмент не содержит ошибок. [1] Одноранговые узлы, предоставляющие полный файл, называются раздающими, а одноранговый узел, предоставляющий исходную копию, называется исходным раздающим. Точная информация, содержащаяся в торрент-файле, зависит от версии протокола BitTorrent.
По соглашению, имя торрент-файла имеет суффикс .torrent
. Торрент-файлы используют формат файла Bencode и содержат раздел «объявление», в котором указывается URL-адрес трекера, и раздел «информация», содержащий (рекомендуемые) имена файлов, их длину, длину используемого фрагмента и Хэш-код SHA-1 для каждой части, каждый из которых используется клиентами для проверки целостности получаемых ими данных. Хотя SHA-1 продемонстрировал признаки криптографической слабости, Брэм Коэн изначально не считал риск достаточно большим для обратно несовместимого изменения, например, в SHA-3 . Начиная с BitTorrent v2, хеш-функция обновлена до SHA-256. [26]
Вначале торрент-файлы обычно публиковались на сайтах с торрент-индексами и регистрировались как минимум на одном трекере. Трекер вел списки клиентов, подключенных в данный момент к рою. [1] Альтернативно, в системе без отслеживания (децентрализованное отслеживание) каждый узел действует как средство отслеживания. Azureus был первым [27] клиентом BitTorrent, реализовавшим такую систему с помощью метода распределенной хеш-таблицы (DHT). Альтернативная и несовместимая система DHT, известная как Mainline DHT , была выпущена в клиенте Mainline BitTorrent три недели спустя (хотя она находилась в разработке с 2002 года) [27] и впоследствии была принята µTorrent , Transmission , rTorrent , KTorrent , BitComet , и клиенты Deluge .
После принятия DHT был неофициально введен «частный» флаг, аналогичный флагу вещания , который предписывал клиентам ограничивать использование децентрализованного отслеживания независимо от желаний пользователя. [28] Флаг намеренно помещен в раздел информации о торренте, чтобы его нельзя было отключить или удалить без изменения личности торрента. Назначение флага — предотвратить передачу торрентов клиентам, не имеющим доступа к трекеру. Флаг был запрошен для включения в официальную спецификацию в августе 2008 года, но пока не принят. [29] Клиенты, игнорировавшие частный флаг, были заблокированы многими трекерами, что препятствует такой практике. [30]
BitTorrent сам по себе не обеспечивает анонимность своих пользователей. Обычно IP-адреса всех узлов в группе можно увидеть в собственном клиенте или программе брандмауэра. Это может подвергнуть атакам пользователей с небезопасными системами. [21] В некоторых странах организации по защите авторских прав собирают списки пиров и отправляют интернет-провайдерам уведомления об удалении пользователей, участвующих в скоплении файлов, защищенных авторским правом. В некоторых юрисдикциях правообладатели могут возбуждать судебные иски против пользователей, загружающих или скачивающих контент, за нарушение авторских прав, а в таких случаях полиция может арестовывать подозреваемых.
Для обеспечения анонимности использовались различные средства. Например, клиент BitTorrent Tribler предоставляет доступ к луковой сети , подобной Tor , при необходимости маршрутизируя передачу через других одноранговых узлов, чтобы скрыть, какой клиент запросил данные. Выходной узел будет виден участникам группы, но организация Tribler предоставляет выходные узлы. Одним из преимуществ Tribler является то, что торренты Clearnet можно загружать лишь с небольшим снижением скорости загрузки за один «переход» маршрутизации.
i2p обеспечивает аналогичный уровень анонимности, хотя в этом случае можно загружать только торренты, загруженные в сеть i2p. [31] BitTorrent-клиент Vuze позволяет пользователям, не заботящимся об анонимности, брать торренты в Clearnet и делать их доступными в сети i2p. [32]
Большинство клиентов BitTorrent не предназначены для обеспечения анонимности при использовании через Tor [33] , и ведутся споры о том, является ли торрент через Tor тормозом для сети. [34]
Частные торрент-трекеры обычно доступны только по приглашению и требуют от участников участия в загрузке, но имеют недостаток — единую централизованную точку отказа. Pink Palace от Oink и What.cd являются примерами закрытых частных трекеров.
Сервисы Seedbox сначала загружают торрент-файлы на серверы компании, что позволяет пользователю напрямую загружать файл оттуда. [35] [36] IP-адрес будет виден провайдеру Seedbox, но не третьим лицам.
Виртуальные частные сети шифруют передачи и заменяют IP-адрес пользователя другим, так что любой, кто следит за потоком торрентов, будет видеть только этот адрес.
2 мая 2005 года был выпущен Azureus 2.3.0.0 (теперь известный как Vuze ), [37] в котором появилась поддержка торрентов без трекера через систему, называемую «распределённой базой данных». Эта система представляет собой реализацию распределенной хеш-таблицы , которая позволяет клиенту использовать торренты, не имеющие работающего трекера BitTorrent . Вместо этого используется просто сервер начальной загрузки (router.bittorrent.com, dht.transmissionbt.com или router.utorrent.com [38] [39] ). В следующем месяце BitTorrent, Inc. выпустила версию 4.2.0 клиента Mainline BitTorrent, которая поддерживала альтернативную реализацию DHT (широко известную как « Mainline DHT », описанную в черновике на их веб-сайте), несовместимую с реализацией Azureus. В 2014 году измерения показали, что количество одновременных пользователей Mainline DHT составляет от 10 до 25 миллионов, при этом ежедневный отток составляет не менее 10 миллионов. [40]
Текущие версии официального клиента BitTorrent, μTorrent , BitComet , Transmission и BitSpirit, совместимы с Mainline DHT. Обе реализации DHT основаны на Kademlia . [41] Начиная с версии 3.0.5.0, Azureus также поддерживает Mainline DHT в дополнение к собственной распределенной базе данных за счет использования дополнительного подключаемого модуля приложения. [42] Это потенциально позволяет клиенту Azureus/Vuze охватить более крупный рой.
Еще одна идея, которая появилась в Vuze, — это виртуальные торренты . Эта идея основана на подходе распределенного трекера и используется для описания некоторого веб-ресурса. В настоящее время он используется для обмена мгновенными сообщениями . Он реализуется с использованием специального протокола обмена сообщениями и требует соответствующего плагина. Анатомический P2P — это еще один подход, в котором используется децентрализованная сеть узлов, которые направляют трафик на динамические трекеры. Большинство клиентов BitTorrent также используют обмен пирами (PEX) для сбора пиров в дополнение к трекерам и DHT . Одноранговый обмен проверяет известных одноранговых узлов, чтобы узнать, знают ли они о каких-либо других одноранговых узлах. С выпуском Vuze 3.0.5.0 все основные клиенты BitTorrent теперь имеют совместимый одноранговый обмен.
Веб-раздача была реализована в 2006 году как возможность клиентов BitTorrent загружать фрагменты торрента из источника HTTP в дополнение к «рою». Преимущество этой функции заключается в том, что веб-сайт может распространять торрент для определенного файла или пакета файлов и делать эти файлы доступными для загрузки с того же веб-сервера; это может упростить долгосрочное заполнение и балансировку нагрузки за счет использования существующих дешевых настроек веб-хостинга. Теоретически, это сделает использование BitTorrent для веб-издателя почти таким же простым, как и прямую загрузку по HTTP. Кроме того, это позволит отключить «веб-сид», если рой станет слишком популярным, при этом сохраняя при этом доступ к файлу. Эта функция имеет две различные спецификации, обе из которых поддерживаются Libtorrent и более чем 26 клиентами, которые ее используют.
Первый был создан Джоном «TheSHAD0W» Хоффманом, создателем BitTornado. [43] [44] Эта первая спецификация требует запуска веб-службы, которая обслуживает контент по информационному хешу и номеру фрагмента, а не по имени файла.
Другая спецификация создана авторами GetRight и может опираться на базовое пространство загрузки HTTP (с использованием байтовой службы ). [45] [46]
В сентябре 2010 года был запущен новый сервис под названием Burnbit, который генерирует торрент с любого URL-адреса с помощью веб-раздачи. [47] Существуют серверные решения, которые обеспечивают первоначальную раздачу файла с веб-сервера через стандартный протокол BitTorrent, а когда количество внешних раздающих достигает предела, они перестают обслуживать файл из исходного источника. [48]
Технология, называемая широкополосной перехватом , объединяет RSS- каналы с протоколом BitTorrent для создания системы доставки контента, что еще больше упрощает и автоматизирует распространение контента. Стив Гиллмор объяснил эту концепцию в колонке для Ziff-Davis в декабре 2003 года. [49] Дискуссия быстро распространилась среди блоггеров (Эрнест Миллер, [50] Крис Пирилло и т. д.). В статье, озаглавленной «Распространение с помощью BitTorrent» , Скотт Рэймонд объяснил:
Мне нужны RSS-каналы файлов BitTorrent. Сценарий периодически проверял ленту на наличие новых элементов и использовал их для начала загрузки. Затем я мог бы найти доверенного издателя RSS-канала Alias и «подписаться» на все новые эпизоды шоу, которые затем начнут загружаться автоматически – как функция «сезонного абонемента» на TiVo .
- Скотт Рэймонд, scottraymond.net [51]
RSS-канал будет отслеживать контент, а BitTorrent обеспечивает целостность контента с помощью криптографического хеширования всех данных, поэтому подписчики канала будут получать неповрежденный контент. Одним из первых и популярных программных клиентов ( бесплатных и с открытым исходным кодом ) для широковещательной передачи является Miro . Другие клиенты бесплатного программного обеспечения, такие как PenguinTV и KatchTV, теперь также поддерживают широковещание. Веб-сервис BitTorrent MoveDigital в 2006 году добавил возможность предоставлять торренты любому веб-приложению, способному анализировать XML, через свой стандартный интерфейс на основе REST , [52] хотя с тех пор эта возможность была прекращена. Кроме того, Torrenthut разрабатывает аналогичный торрент- API , который будет предоставлять те же функции и поможет привести торрент-сообщество к стандартам Web 2.0 . Наряду с этим выпуском выпущено первое PHP- приложение, созданное с использованием API под названием PEP, которое анализирует любой канал Really Simple Syndicate (RSS 2.0) и автоматически создает и раздает торрент для каждого вложения, найденного в этом канале. [53]
Поскольку BitTorrent составляет большую часть общего трафика, некоторые интернет-провайдеры решили «ограничить» (замедлить) передачу BitTorrent. По этой причине были разработаны методы маскировки BitTorrent-трафика в попытке помешать этим усилиям. [54] Шифрование заголовка протокола (PHE) и шифрование потока сообщений/шифрование протокола (MSE/PE) — это функции некоторых клиентов BitTorrent, которые пытаются затруднить обнаружение и регулирование BitTorrent. По состоянию на ноябрь 2015 года Vuze , BitComet , KTorrent , Transmission , Deluge , μTorrent , MooPolice, Halite, qBittorrent , rTorrent и последний официальный клиент BitTorrent (v6) поддерживают шифрование MSE/PE.
В августе 2007 года Comcast предотвращала раздачу BitTorrent, отслеживая и вмешиваясь в обмен данными между узлами. Защита от этих попыток обеспечивается путем перенаправления трафика клиентского трекера через зашифрованный туннель в точку за пределами сети Comcast. [55] В 2008 году Comcast заключила «перемирие» с BitTorrent, Inc. с намерением формировать трафик независимо от протокола. [56] Вопросы об этике и законности поведения Comcast привели к возобновлению дебатов о сетевом нейтралитете в Соединенных Штатах . [57] В целом, хотя шифрование может затруднить определение того, что передается, BitTorrent уязвим для анализа трафика . Таким образом, даже при использовании MSE/PE интернет-провайдер может распознать BitTorrent, а также определить, что система больше не загружает, а только загружает данные, и разорвать соединение, внедрив пакеты TCP RST (флаг сброса).
Еще одна неофициальная функция — это расширение формата метаданных BitTorrent, предложенное Джоном Хоффманом [58] и реализованное несколькими индексирующими веб-сайтами. Это позволяет использовать несколько трекеров для каждого файла, поэтому в случае сбоя одного трекера другие смогут продолжать поддерживать передачу файлов. Он реализован в нескольких клиентах, таких как BitComet , BitTornado, BitTorrent, KTorrent , Transmission , Deluge , μTorrent , rtorrent , Vuze и Frostwire . Трекеры размещаются в группах или уровнях, при этом трекер случайно выбирается из верхнего уровня и опробуется, а затем переходит на следующий уровень, если все трекеры верхнего уровня терпят неудачу.
Торренты с несколькими трекерами могут сократить время загрузки файла, но также имеют несколько последствий:
По состоянию на декабрь 2008 года [update]BitTorrent, Inc. работала с Oversi над новыми протоколами обнаружения политик, которые запрашивают у интернет-провайдера информацию о возможностях и сетевой архитектуре. Блок NetEnhancer, размещенный у интернет-провайдера Oversi, предназначен для «улучшения выбора одноранговых узлов», помогая одноранговым узлам находить локальные узлы, улучшая скорость загрузки и одновременно снижая нагрузку на сеть интернет-провайдера и из нее. [60]
Спецификация BitTorrent бесплатна для использования, и многие клиенты имеют открытый исходный код , поэтому клиенты BitTorrent созданы для всех распространенных операционных систем с использованием различных языков программирования . Официальный клиент BitTorrent — μTorrent , qBittorrent , Transmission , Vuze и BitComet — одни из самых популярных клиентов. [61] [62] [63] [64]
Некоторые реализации BitTorrent, такие как MLDonkey и Torrentflux, предназначены для работы в качестве серверов. Например, это можно использовать для централизации общего доступа к файлам на одном выделенном сервере, к которому пользователи имеют общий доступ в сети. [65] Серверно-ориентированные реализации BitTorrent также могут размещаться хостинг-провайдерами на совместно расположенных объектах с высокоскоростным подключением к Интернету (например, в центре обработки данных), что может обеспечить значительные преимущества в скорости по сравнению с использованием BitTorrent при обычном домашнем широкополосном соединении. Такие службы, как ImageShack, могут загружать файлы через BitTorrent для пользователя, что позволяет им загружать весь файл по HTTP после его завершения.
Веб-браузер Opera изначально поддерживает BitTorrent. [66] Веб-браузер Brave поставляется с расширением , которое поддерживает WebTorrent , протокол, подобный BitTorrent, основанный на WebRTC вместо UDP и TCP . [67] [68] BitLet позволял пользователям загружать торренты непосредственно из своего браузера с помощью Java-апплета (пока браузеры не удалили поддержку Java-апплетов). [69] Выпускается все больше аппаратных устройств с поддержкой BitTorrent. К ним относятся маршрутизаторы и устройства NAS, содержащие встроенное ПО с поддержкой BitTorrent, такое как OpenWrt . Собственные версии протокола, реализующие DRM , шифрование и аутентификацию, находятся в управляемых клиентах, таких как Pando .
Все большее число людей и организаций используют BitTorrent для распространения своих собственных или лицензионных произведений (например, инди- группы, распространяющие цифровые файлы своих новых песен). Независимые пользователи сообщают, что технология BitTorrent снижает требования к оборудованию и пропускной способности частных сетей, что крайне важно для некоммерческих групп с большими объемами интернет-трафика. [70]
Многие крупные проекты с открытым исходным кодом и бесплатного программного обеспечения поощряют BitTorrent, а также обычные загрузки своих продуктов (через HTTP , FTP и т. д.) для повышения доступности и снижения нагрузки на свои собственные серверы, особенно при работе с большими файлами. [71] Кроме того, некоторые установщики видеоигр, особенно те, чей большой размер затрудняет их размещение из-за ограничений пропускной способности, чрезвычайно частых загрузок и непредсказуемых изменений сетевого трафика, вместо этого распространяют специализированный, урезанный клиент BitTorrent с достаточным функционалом. для загрузки игры с других работающих клиентов и основного сервера (который сохраняется в случае недостаточного количества одноранговых узлов).
Некоторые виды использования BitTorrent для обмена файлами могут нарушать законы некоторых юрисдикций (см. раздел «Законодательство»).
По состоянию на январь 2012 года [update]BitTorrent используют 150 миллионов активных пользователей. Исходя из этой цифры, общее количество ежемесячных пользователей можно оценить более чем в четверть миллиарда (≈ 250 миллионов). [72] По состоянию на февраль 2013 года [update]на BitTorrent приходилось 3,35% всей мировой пропускной способности — более половины из 6% общей пропускной способности, предназначенной для обмена файлами. [73] По состоянию на 2013 год [update]у BitTorrent одновременно было 15–27 миллионов пользователей. [74]
По оценкам AT&T , к началу 2015 года на долю BitTorrent приходилось 20% всего широкополосного трафика. [106]
Маршрутизаторы, использующие преобразование сетевых адресов (NAT), должны поддерживать таблицы IP-адресов и портов источника и назначения. Поскольку BitTorrent часто обращается к 20–30 серверам в секунду, таблицы NAT некоторых маршрутизаторов потребительского уровня быстро заполняются. Это известная причина, по которой некоторые домашние роутеры перестают работать корректно. [107] [108]
Хотя сам протокол является законным, [109] проблемы возникают из-за его использования для передачи работ, нарушающих авторские права, поскольку BitTorrent часто используется для загрузки платного контента, такого как фильмы и видеоигры. Было много споров по поводу использования трекеров BitTorrent. Метафайлы BitTorrent сами по себе не хранят содержимое файла. Вопрос о том, нарушают ли издатели метафайлов BitTorrent авторские права, ссылаясь на произведения, защищенные авторским правом, без разрешения правообладателей, является спорным. Различные юрисдикции подали судебные иски против веб-сайтов, на которых размещены трекеры BitTorrent.
В результате использование BitTorrent иногда может быть ограничено поставщиками интернет-услуг (ISP) по юридическим причинам или по причинам, связанным с авторскими правами. [ нужна цитация ] Пользователи могут использовать сидбоксы или виртуальные частные сети (VPN), чтобы обойти эти ограничения.
Громкие примеры включают закрытие Suprnova.org , TorrentSpy , LokiTorrent , BTJunkie , Mininova , Oink's Pink Palace и What.cd. Поисковая система BitTorrent Торрент -сайт Pirate Bay , созданный шведской группой, известен своим «юридическим» разделом, в котором публично отображаются письма и ответы на тему предполагаемых нарушений авторских прав. 31 мая 2006 года серверы The Pirate Bay в Швеции подверглись рейду шведской полиции по обвинению MPAA в нарушении авторских прав; [110] однако через три дня трекер снова заработал. В исследовании, использованном для оценки стоимости NBC Universal в результате слияния с Comcast, Envisional изучила 10 000 торрент-групп, управляемых PublicBT, у которых были самые активные загрузчики. После исключения порнографического и неидентифицируемого контента выяснилось, что только один рой предлагал законный контент. [111]
В США с 2010 года было подано более 200 000 исков о нарушении авторских прав на BitTorrent. [112] В Великобритании 30 апреля 2012 года Высокий суд обязал пять интернет-провайдеров заблокировать The Pirate Bay . [113]
Одной из проблем является атака UDP-флуд . Реализации BitTorrent часто используют μTP для связи. Для достижения высокой пропускной способности используется базовый протокол UDP , который позволяет подделывать исходные адреса интернет-трафика. Атаки типа «отказ в обслуживании» можно было осуществить в лабораторной среде P2P, где пользователи, использующие клиенты BitTorrent, действуют как усилители атаки на другой сервис. [114] Однако это не всегда эффективная атака, поскольку интернет-провайдеры могут проверить правильность адреса источника.
В ходе нескольких исследований BitTorrent были обнаружены доступные для скачивания файлы, содержащие вредоносное ПО . В частности, одна небольшая выборка показала, что 18% всех исполняемых программ, доступных для загрузки, содержат вредоносное ПО. [115] В другом исследовании утверждается, что 14,5% загрузок BitTorrent содержат вредоносное ПО нулевого дня и что BitTorrent использовался в качестве механизма распространения для 47% всех обнаруженных вредоносных программ нулевого дня. [116]
Функция обмена торрентами BitComet.
Биткомет.com.
{{cite book}}
: |work=
игнорируется ( помощь ){{cite book}}
: |work=
игнорируется ( помощь )