BitTorrent , также называемый просто torrent , является протоколом связи для обмена файлами между пользователями (P2P), который позволяет пользователям распространять данные и электронные файлы через Интернет децентрализованным образом . Протокол разработан и поддерживается Rainberry, Inc. и был впервые выпущен в 2001 году. [2]
Для отправки или получения файлов пользователи используют клиент BitTorrent на своем подключенном к Интернету компьютере, который доступен для различных вычислительных платформ и операционных систем , включая официальный клиент . Трекеры BitTorrent предоставляют список файлов, доступных для передачи, и позволяют клиенту находить одноранговых пользователей, известных как «сиды», которые могут передавать файлы. Загрузка BitTorrent считается более быстрой, чем HTTP («прямая загрузка») и FTP из-за отсутствия центрального сервера, который мог бы ограничивать пропускную способность. [3] [4]
BitTorrent — один из самых распространенных протоколов для передачи больших файлов, таких как цифровые видеофайлы , содержащие телепередачи и видеоклипы, или цифровые аудиофайлы . Согласно исследованию Cachelogic, в 2004 году на BitTorrent приходилась треть всего интернет-трафика. [5] Еще в 2019 году BitTorrent оставался значимым протоколом обмена файлами по данным Sandvine , генерируя значительный объем интернет-трафика с 2,46% нисходящего и 27,58% восходящего трафика, [6] хотя с тех пор эта доля значительно снизилась. [7]
Программист Брэм Коэн , выпускник Университета Буффало , [8] разработал протокол в апреле 2001 года и выпустил первую доступную версию 2 июля 2001 года. [2] Коэн и Эшвин Навин основали BitTorrent, Inc. (позже переименованную в Rainberry, Inc. ) для дальнейшего развития технологии в 2004 году.
Первая версия клиента BitTorrent не имела поисковой системы и обмена пирами. До 2005 года единственным способом обмена файлами было создание небольшого текстового файла под названием « торрент », который они загружали на сайт индекса торрентов. Первый загрузчик выступал в качестве сида , а загрузчики изначально подключались как пиры . Те, кто хотел загрузить файл, скачивали торрент, который их клиент использовал для подключения к трекеру, у которого был список IP-адресов других сидов и пиров в рое. После того, как пир завершал загрузку всего файла, он, в свою очередь, мог выступать в качестве сида. Эти файлы содержат метаданные о файлах, которыми нужно поделиться, и трекерах , которые отслеживают другие сиды и пиры.
В 2005 году сначала Vuze , а затем и клиент BitTorrent представили распределенное отслеживание с использованием распределенных хеш-таблиц, что позволило клиентам обмениваться данными о роях напрямую, без необходимости использования торрент-файла.
В 2006 году была добавлена функция обмена одноранговыми узлами, позволяющая клиентам добавлять одноранговые узлы на основе данных, найденных на подключенных узлах.
В 2017 году BitTorrent, Inc. выпустила спецификацию протокола BitTorrent v2. [9] [10] BitTorrent v2 предназначен для бесперебойной работы с предыдущими версиями протокола BitTorrent. Основной причиной обновления было то, что старая криптографическая хэш - функция SHA-1 больше не считается разработчиками безопасной от вредоносных атак , и поэтому v2 использует SHA-256 . Для обеспечения обратной совместимости формат файла v2 .torrent поддерживает гибридный режим, в котором торренты хэшируются как новым, так и старым методом, с намерением, что файлы будут совместно использоваться с одноранговыми узлами как в роях v1, так и в роях v2. Еще одним обновлением спецификации является добавление хэш -дерева для ускорения времени от добавления торрента до загрузки файлов и для обеспечения более детальной проверки на предмет повреждения файлов. Кроме того, каждый файл теперь хэшируется индивидуально, что позволяет дедуплицировать файлы в рое, так что если несколько торрентов включают одни и те же файлы, но сидеры раздают файл только с некоторых, загрузчики других торрентов все равно могут загрузить файл. Кроме того, хэши файлов могут отображаться на трекере, сервисах индексации торрентов, для поиска роев путем поиска хэшей файлов, содержащихся в них. Эти хэши отличаются от обычного хэша SHA-256 файлов и могут быть получены с помощью инструментов. [11] Magnet-ссылки для v2 также поддерживают гибридный режим для обеспечения поддержки устаревших клиентов. [12]
Протокол BitTorrent может использоваться для снижения влияния сервера и сети на распространение больших файлов. Вместо загрузки файла с одного сервера-источника протокол BitTorrent позволяет пользователям присоединяться к «рою» хостов для одновременной загрузки и скачивания друг с друга. Протокол является альтернативой более старой технологии распространения данных с одним источником и несколькими зеркальными источниками и может эффективно работать в сетях с более низкой пропускной способностью . Используя протокол BitTorrent, несколько базовых компьютеров, таких как домашние компьютеры, могут заменить большие серверы, эффективно распространяя файлы многим получателям. Это более низкое использование пропускной способности также помогает предотвратить большие всплески интернет-трафика в заданной области, поддерживая более высокую скорость интернета для всех пользователей в целом, независимо от того, используют ли они протокол BitTorrent или нет.
Распространяемый файл делится на сегменты, называемые частями . Когда каждый пир получает новую часть файла, он становится источником (этой части) для других пиров, освобождая исходный seed от необходимости отправлять эту часть каждому компьютеру или пользователю, желающему получить копию. С BitTorrent задача распространения файла делится между теми, кто этого хочет; вполне возможно, что seed отправит только одну копию самого файла и в конечном итоге распространит ее среди неограниченного числа пиров. Каждая часть защищена криптографическим хешем, содержащимся в дескрипторе торрента. [1] Это гарантирует, что любое изменение части может быть надежно обнаружено, и, таким образом, предотвращает как случайные, так и злонамеренные изменения любой из частей, полученных на других узлах. Если узел начинает с подлинной копии дескриптора торрента, он может проверить подлинность всего файла, который он получает.
Части обычно загружаются непоследовательно и перестраиваются в правильном порядке клиентом BitTorrent, который отслеживает, какие части ему нужны, а какие у него есть и которые он может загрузить другим пирам. Части имеют одинаковый размер на протяжении всей одной загрузки (например, файл размером 10 МБ может быть передан как десять частей по 1 МБ или как сорок частей по 256 КБ). Из-за природы этого подхода загрузка любого файла может быть остановлена в любое время и возобновлена позднее, без потери ранее загруженной информации, что, в свою очередь, делает BitTorrent особенно полезным при передаче больших файлов. Это также позволяет клиенту искать легкодоступные части и загружать их немедленно, а не останавливать загрузку и ждать следующую (и, возможно, недоступную) часть в очереди, что обычно сокращает общее время загрузки. Этот окончательный переход от пиров к сидерам определяет общее «здоровье» файла (определяемое количеством раз, когда файл доступен в своей полной форме).
Распределенная природа BitTorrent может привести к распространению файла по множеству одноранговых компьютерных узлов, подобному наводнению . По мере того, как все больше одноранговых узлов присоединяются к рою, вероятность успешной загрузки любым конкретным узлом увеличивается. По сравнению с традиционными схемами распространения в Интернете это позволяет значительно сократить затраты на оборудование и ресурсы полосы пропускания исходного дистрибьютора. Распределенные протоколы загрузки в целом обеспечивают избыточность против системных проблем, уменьшают зависимость от исходного дистрибьютора [13] и предоставляют источники для файла, которые, как правило, являются временными , и поэтому не существует единой точки отказа, как при односторонней передаче сервер-клиент.
Хотя оба способа в конечном итоге передают файлы по сети, загрузка BitTorrent отличается от односторонней загрузки сервер-клиент (как это обычно бывает, например, с запросами HTTP или FTP ) несколькими фундаментальными моментами:
В совокупности эти различия позволяют BitTorrent достичь гораздо более низкой стоимости для поставщика контента, гораздо более высокой избыточности и гораздо большей устойчивости к злоупотреблениям или « флеш-толпам », чем обычное серверное программное обеспечение . Однако эта защита, теоретически, имеет свою цену: загрузкам может потребоваться время, чтобы достичь полной скорости, поскольку может потребоваться время для установления достаточного количества одноранговых соединений, и может потребоваться время, чтобы узел получил достаточно данных, чтобы стать эффективным загрузчиком. Это контрастирует с обычными загрузками (например, с HTTP-сервера), которые, хотя и более уязвимы для перегрузки и злоупотреблений, очень быстро достигают полной скорости и поддерживают эту скорость на протяжении всего времени. Вначале методы несмежной загрузки BitTorrent затрудняли поддержку «потокового воспроизведения». В 2014 году клиент Popcorn Time позволил транслировать видеофайлы BitTorrent. С тех пор все больше и больше клиентов предлагают возможности потоковой передачи.
Протокол BitTorrent не предоставляет возможности индексировать торрент-файлы. В результате сравнительно небольшое количество веб-сайтов разместили большую часть торрентов, многие из которых ссылаются на защищенные авторским правом работы без разрешения владельцев авторских прав, что делает эти сайты особенно уязвимыми для судебных исков. [15] Индекс BitTorrent — это «список .torrent-файлов , который обычно включает описания» и информацию о содержимом торрента. [16] Несколько типов веб-сайтов поддерживают обнаружение и распространение данных в сети BitTorrent. Публичные сайты хостинга торрентов, такие как The Pirate Bay, позволяют пользователям искать и загружать из своей коллекции торрент-файлов. Пользователи обычно также могут загружать торрент-файлы для контента, который они хотят распространять. Часто эти сайты также запускают трекеры BitTorrent для своих размещенных торрент-файлов, но эти две функции не являются взаимозависимыми: торрент-файл может быть размещен на одном сайте и отслеживаться другим, не связанным с ним сайтом. Частные сайты-хостинги/трекеры работают так же, как и публичные, за исключением того, что они могут ограничивать доступ зарегистрированным пользователям, а также могут отслеживать объем данных, которые каждый пользователь загружает и скачивает, пытаясь сократить « пидинг ».
Поисковые системы в Интернете позволяют обнаруживать торрент-файлы, которые размещены и отслеживаются на других сайтах; примерами являются The Pirate Bay и BTDigg . Эти сайты позволяют пользователю запрашивать контент, отвечающий определенным критериям (например, содержащий заданное слово или фразу), и получать список ссылок на торрент-файлы, соответствующие этим критериям. Этот список часто можно сортировать по нескольким критериям, причем релевантность (соотношение сидов и личеров) является одним из самых популярных и полезных критериев (из-за того, как ведет себя протокол, достижимая пропускная способность загрузки очень чувствительна к этому значению). Метапоисковые системы позволяют осуществлять поиск по нескольким индексам BitTorrent и поисковым системам одновременно.
Клиент Tribler BitTorrent был одним из первых, кто включил встроенные возможности поиска. С Tribler пользователи могут находить файлы .torrent, хранящиеся у случайных пиров и друзей по вкусу. [17] Он добавляет такую возможность в протокол BitTorrent, используя протокол сплетен , несколько похожий на сеть eXeem , которая была закрыта в 2005 году. Программное обеспечение также включает возможность рекомендовать контент. После дюжины загрузок программное обеспечение Tribler может приблизительно оценить вкус загрузки пользователя и рекомендовать дополнительный контент. [18]
В мае 2007 года исследователи из Корнелльского университета опубликовали статью, в которой предлагался новый подход к поиску неточных строк в одноранговой сети, [19] который мог бы заменить функциональность центрального индексирующего сайта. Год спустя та же команда реализовала систему в качестве плагина для Vuze под названием Cubit [20] и опубликовала последующую статью, в которой сообщалось об успехе. [21]
Несколько похожая возможность, но с немного другим подходом, предоставляется клиентом BitComet через его функцию "Torrent Exchange" [22] . Всякий раз, когда два пира, использующих BitComet (с включенным Torrent Exchange), подключаются друг к другу, они обмениваются списками всех торрентов (именем и информационным хэшем), которые у них есть в хранилище Torrent Share (файлы торрентов, которые были ранее загружены и для которых пользователь решил включить обмен через Torrent Exchange). Таким образом, каждый клиент создает список всех торрентов, которыми поделились пиры, к которым он подключился в текущем сеансе (или он даже может поддерживать список между сеансами, если ему даны инструкции).
В любое время пользователь может выполнить поиск в этом списке Torrent Collection для определенного торрента и отсортировать список по категориям. Когда пользователь выбирает загрузку торрента из этого списка, файл .torrent автоматически ищется (по значению info-hash) в сети DHT и, когда он найден, загружается запрашивающим клиентом, который затем может создать и инициировать задачу загрузки.
Пользователи находят интересующий их торрент на сайте индекса торрентов или с помощью поисковой системы, встроенной в клиент, загружают его и открывают с помощью клиента BitTorrent. Клиент подключается к трекеру(ам) или сидам, указанным в файле торрента, от которых он получает список сидов и пиров, которые в данный момент передают части файла(ов). Клиент подключается к этим пирам, чтобы получить различные части. Если рой содержит только начальный сид, клиент подключается напрямую к нему и начинает запрашивать части. Клиенты включают механизмы для оптимизации своих скоростей загрузки и выгрузки.
Эффективность этого обмена данными во многом зависит от политик, которые клиенты используют для определения, кому отправлять данные. Клиенты могут предпочесть отправлять данные одноранговым узлам, которые отправляют данные им обратно (схема обмена « око за око »), что поощряет честную торговлю. Но строгие политики часто приводят к неоптимальным ситуациям, например, когда недавно присоединившиеся одноранговые узлы не могут получить никаких данных, потому что у них еще нет частей для обмена, или когда два одноранговых узла с хорошим соединением между ними не обмениваются данными просто потому, что ни один из них не проявляет инициативы. Чтобы противостоять этим эффектам, официальная клиентская программа BitTorrent использует механизм, называемый «оптимистичным разблокированием», посредством которого клиент резервирует часть своей доступной полосы пропускания для отправки частей случайным одноранговым узлам (не обязательно известным хорошим партнерам или «предпочтительным одноранговым узлам») в надежде обнаружить еще лучших партнеров и гарантировать, что новички получат шанс присоединиться к рою. [23]
Хотя «роение» хорошо масштабируется, чтобы выдерживать «мгновенные толпы» для популярного контента, оно менее полезно для непопулярного или нишевого рыночного контента. Пиры, прибывающие после первоначального наплыва, могут обнаружить контент недоступным и должны будут ждать прибытия «семени», чтобы завершить свои загрузки. Прибытие семени, в свою очередь, может занять много времени (это называется «проблемой продвижения сида»). Поскольку поддержание семени для непопулярного контента влечет за собой высокую пропускную способность и административные расходы, это противоречит целям издателей, которые ценят BitTorrent как дешевую альтернативу подходу клиент-сервер. Это происходит в огромных масштабах; измерения показали, что 38% всех новых торрентов становятся недоступными в течение первого месяца. [24] Стратегия, принятая многими издателями, которая значительно увеличивает доступность непопулярного контента, состоит в объединении нескольких файлов в один рой. [25] Также были предложены более сложные решения; как правило, они используют механизмы кросс-торрентов, посредством которых несколько торрентов могут сотрудничать для лучшего обмена контентом. [26]
Пир, распространяющий файл данных, рассматривает файл как ряд одинаковых по размеру частей, обычно с размерами байтов, равными степени 2, и обычно от 32 КБ до 16 МБ каждая. Пир создает хэш для каждой части, используя хэш-функцию SHA-1 , и записывает его в торрент-файл. Части размером более 512 КБ уменьшат размер торрент-файла для очень большой полезной нагрузки, но, как утверждается, снижают эффективность протокола. [27] Когда другой пир позже получает определенную часть, хэш части сравнивается с записанным хешем, чтобы проверить, что часть не содержит ошибок. [1] Пиры, которые предоставляют полный файл, называются сидами, а пир, предоставляющий начальную копию, называется начальным сидером. Точная информация, содержащаяся в торрент-файле, зависит от версии протокола BitTorrent.
По соглашению, имя файла torrent имеет суффикс .torrent
. Файлы torrent используют формат файла Bencode и содержат раздел «announce», в котором указан URL-адрес трекера, и раздел «info», содержащий (предлагаемые) имена файлов, их длину, используемую длину фрагмента и хэш-код SHA-1 для каждого фрагмента, все из которых используются клиентами для проверки целостности получаемых ими данных. Хотя SHA-1 показал признаки криптографической слабости, Брэм Коэн изначально не считал риск достаточно большим для обратно несовместимого изменения, например, SHA-3 . Начиная с BitTorrent v2 хэш-функция была обновлена до SHA-256. [28]
В ранние дни файлы torrent обычно публиковались на сайтах индекса torrent и регистрировались как минимум на одном трекере. Трекер поддерживал списки клиентов, в данный момент подключенных к рою. [1] В качестве альтернативы, в системе без трекеров (децентрализованное отслеживание) каждый одноранговый узел действует как трекер. Azureus был первым [29] клиентом BitTorrent, реализовавшим такую систему с помощью метода распределенной хэш-таблицы (DHT). Альтернативная и несовместимая система DHT, известная как Mainline DHT , была выпущена в клиенте Mainline BitTorrent три недели спустя (хотя она находилась в разработке с 2002 года) [29] и впоследствии принята клиентами μTorrent , Transmission , rTorrent , KTorrent , BitComet и Deluge .
После принятия DHT был неофициально введен флаг «private» — аналог флага broadcast , сообщающий клиентам о необходимости ограничить использование децентрализованного отслеживания независимо от желаний пользователя. [30] Флаг намеренно размещен в разделе информации торрента, чтобы его нельзя было отключить или удалить без изменения идентичности торрента. Цель флага — предотвратить распространение торрентов среди клиентов, не имеющих доступа к трекеру. Флаг был запрошен для включения в официальную спецификацию в августе 2008 года, но до сих пор не принят. [31] Клиенты, проигнорировавшие флаг private, были забанены многими трекерами, что препятствовало такой практике. [32]
BitTorrent сам по себе не предлагает своим пользователям анонимность. Обычно можно увидеть IP-адреса всех пиров в рое в своей собственной клиентской программе или программе брандмауэра. Это может подвергнуть пользователей с незащищенными системами атакам. [23] В некоторых странах организации по защите авторских прав собирают списки пиров и отправляют уведомления об удалении интернет-провайдеру пользователей, участвующих в роях файлов, защищенных авторским правом. В некоторых юрисдикциях владельцы авторских прав могут подавать иски против загрузчиков или скачивателей за нарушение, и полиция может арестовывать подозреваемых в таких случаях.
Для обеспечения анонимности использовались различные средства. Например, клиент BitTorrent Tribler предоставляет луковую сеть типа Tor , опционально маршрутизируя передачи через других пиров, чтобы скрыть, какой клиент запросил данные. Выходной узел будет виден пирам в рое, но организация Tribler предоставляет выходные узлы. Одним из преимуществ Tribler является то, что торренты clearnet можно загружать с небольшим снижением скорости загрузки от одного «прыжка» маршрутизации.
i2p обеспечивает аналогичный уровень анонимности, хотя в этом случае можно загружать только торренты, загруженные в сеть i2p. [33] Клиент BitTorrent Vuze позволяет пользователям, не беспокоящимся об анонимности, брать торренты Clearnet и делать их доступными в сети i2p. [34]
Большинство клиентов BitTorrent не предназначены для обеспечения анонимности при использовании через Tor, [35] и ведутся споры о том, не является ли торрент-соединение через Tor обузой для сети. [36]
Частные торрент-трекеры обычно доступны только по приглашению и требуют, чтобы участники принимали участие в загрузке, но имеют недостаток в виде единой централизованной точки отказа. Oink's Pink Palace и What.cd являются примерами закрытых частных трекеров.
Сервисы Seedbox сначала загружают торрент-файлы на серверы компании, позволяя пользователю напрямую загрузить файл оттуда. [37] [38] IP-адрес пользователя будет виден провайдеру Seedbox, но не третьим лицам.
Виртуальные частные сети шифруют передачи и подменяют IP-адрес пользователя другим, так что любой, кто следит за торрент-роем, будет видеть только этот адрес.
2 мая 2005 года был выпущен Azureus 2.3.0.0 (теперь известный как Vuze ), [39] использующий распределенную систему баз данных. Эта система представляет собой реализацию распределенной хэш-таблицы , которая позволяет клиенту использовать торренты, у которых нет работающего трекера BitTorrent . Вместо этого используется сервер начальной загрузки. В следующем месяце 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, — это идея виртуальных торрентов . Эта идея основана на подходе распределенного трекера и используется для описания некоторого веб-ресурса. В настоящее время она используется для обмена мгновенными сообщениями . Она реализована с использованием специального протокола обмена сообщениями и требует соответствующего плагина. Anatomic 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]
Техника, называемая broadcatching, объединяет RSS- каналы с протоколом BitTorrent для создания системы доставки контента, что еще больше упрощает и автоматизирует распространение контента. Стив Гиллмор объяснил концепцию в колонке для Ziff-Davis в декабре 2003 года. [49] Дискуссия быстро распространилась среди блоггеров (Эрнест Миллер, [50] Крис Пирилло и т. д.). В статье под названием Broadcatching with BitTorrent Скотт Рэймонд объяснил:
Мне нужны RSS-каналы BitTorrent-файлов. Скрипт будет периодически проверять канал на наличие новых элементов и использовать их для начала загрузки. Затем я смогу найти доверенного издателя Alias RSS -канала и «подписаться» на все новые эпизоды шоу, которые затем начнут автоматически загружаться — как функция «сезонного пропуска» TiVo .
— Скотт Рэймонд, scottraymond.net [51]
RSS-канал будет отслеживать контент, в то время как BitTorrent гарантирует целостность контента с помощью криптографического хеширования всех данных, поэтому подписчики канала будут получать неповрежденный контент. Одним из первых и популярных программных клиентов ( бесплатных и с открытым исходным кодом ) для вещания является Miro . Другие бесплатные программные клиенты, такие как PenguinTV и KatchTV, также теперь поддерживают вещание. Веб-сервис BitTorrent MoveDigital добавил возможность делать торренты доступными для любого веб-приложения, способного анализировать XML через свой стандартный интерфейс на основе REST , в 2006 году [52] , хотя с тех пор это было прекращено. Кроме того, Torrenthut разрабатывает аналогичный API торрентов , который будет предоставлять те же функции и поможет привести сообщество торрентов к стандартам Web 2.0 . Наряду с этим релизом появилось первое приложение PHP , созданное с использованием API под названием PEP, которое анализирует любой канал Really Simple Syndication (RSS 2.0) и автоматически создает и раздает торрент для каждого вложения, найденного в этом канале. [53]
Поскольку BitTorrent составляет большую долю общего трафика, некоторые интернет-провайдеры решили «замедлить» (удушить) передачи BitTorrent. По этой причине были разработаны методы для маскировки трафика BitTorrent в попытке помешать этим усилиям. [54] Шифрование заголовка протокола (PHE) и шифрование потока сообщений/шифрование протокола (MSE/PE) являются функциями некоторых клиентов BitTorrent, которые пытаются сделать BitTorrent сложным для обнаружения и удушения. По состоянию на ноябрь 2015 года шифрование MSE/PE поддерживают Vuze , BitComet , KTorrent , Transmission , Deluge , μTorrent , MooPolice, Halite, qBittorrent , rTorrent и последний официальный клиент BitTorrent (v6).
В августе 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 позволял пользователям загружать Torrents непосредственно из своего браузера с помощью 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]
К началу 2015 года AT&T подсчитала, что на BitTorrent приходилось 20% всего широкополосного трафика. [106]
Маршрутизаторы, использующие трансляцию сетевых адресов (NAT), должны поддерживать таблицы исходных и конечных IP-адресов и портов. Поскольку BitTorrent часто связывается с 20–30 серверами в секунду, таблицы NAT некоторых маршрутизаторов потребительского класса быстро заполняются. Это известная причина того, что некоторые домашние маршрутизаторы перестают работать правильно. [107] [108]
Хотя сам протокол является законным, [109] проблемы возникают из-за использования протокола для трафика работ, нарушающих авторские права, поскольку BitTorrent часто используется для загрузки в противном случае платного контента, такого как фильмы и видеоигры. Было много споров по поводу использования трекеров BitTorrent. Метафайлы BitTorrent сами по себе не хранят содержимое файлов. Нарушают ли издатели метафайлов BitTorrent авторские права, ссылаясь на защищенные авторским правом работы без разрешения владельцев авторских прав, является спорным вопросом. Различные юрисдикции возбуждали судебные иски против веб-сайтов, на которых размещаются трекеры BitTorrent.
В результате использование BitTorrent иногда может быть ограничено интернет-провайдерами (ISP) по юридическим причинам или из-за нарушения авторских прав. [ необходима ссылка ] Пользователи могут запускать seedbox-ы или виртуальные частные сети (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. Bitcomet.com.
{{cite book}}
: |work=
проигнорировано ( помощь ){{cite book}}
: |work=
проигнорировано ( помощь )