Что такое BitTorrent?
![]()
Однажды в Америке, 1975 года, в одной из многочисленных американских семей родился младенец. Звали его Коэн Брэм.
Прошло много лет перед тем, когда он впервые задумался над созданием такого проекта, который позволял бы людям обмениваться информацией, не используя при этом стандартную модель получения данных «один источник – много клиентов». В результате такая технология смогла бы снизить нагрузку на сервера, которые предоставляли файлы больших объемов.
Коэн разработал интересный алгоритм, который впоследствии был преобразован в сетевой протокол. Он назвал его BitTorrent, что дословно переводится как «поток битов».
Работу сетевого протокола BitTorrent можно рассмотреть на простом примере:
Допустим, у нашего друга есть видеозапись весом в 700 Мб, которой он хочет поделиться с сотней своих друзей. Если он откроет доступ на своем компьютере к этой видеозаписи и каждый из друзей загрузит её, то в результате ему придётся отдать 70 Гб (700 Мб х 100 друзей = 70 Гб) данных. Учитывая пропускную способность канала, можно догадаться, сколько времени придётся потратить на загрузку каждому из друзей.
Отступление.
Если взять за пример пропускную способность в 8 Мбит/сек, то на загрузку всеми друзьями видеозаписи (идеальная передача) уйдет не менее девятнадцати с половиной часов.
Что же нам предлагает BitTorrent для решения этой проблемы?
BitTorrent делит файл (в данном случае, нашу видеозапись) на множество частей. Умные люди вместо выражения «часть файла» говорят «сегмент файла», так что BitTorrent делит файл на множество сегментов (сегментирует его, так сказать). Намного умнее получилось, согласитесь?
Представим, что у нас не 100 друзей, а только один.
Наш друг сначала загружает один сегмент файла, затем второй, потом третий, и так до последнего, пока не загрузится весь файл. Следует отметить, что сегменты загружаются не по порядку, а в случайной последовательности, поэтому первый сегмент вполне может быть серединой файла, второй сегмент концом файла, а третий – его началом. Как мы видим, процесс загрузки не сильно отличается от модели «один источник – много клиентов».
Теперь представим, что друзей у нас двое.
Первый начинает загружать случайный сегмент (например, 2-ой), второй (тоже случайно) начинает загружать 7-ой сегмент.

После этого первый начинает случайным образом скачивать 5-ый сегмент, и, заметив у нашего знакомого 7-ой сегмент, параллельно начинает загружать и его. А тот, в свою очередь, увидев, что приятель обладает 2-ым сегментом, начинает встречную загрузку, при этом скачивая случайным образом 9-ый сегмент c первого источника.

Затем, параллельно с загрузкой очередных сегментов с первого источника , они обмениваются 9-ым и 5-ым сегментами.

Таким образом данный алгоритм уменьшает нагрузку на основной источник.

В результате такого процесса каждый из друзей получает все сегменты файла.
Обратим внимание, что источник отдает каждому только по 50% данных, другие 50% они получают друг у друга.
Теперь представим, что друзей у нас три.
Каждый из них начинает загружать случайный сегмент файла.

А на втором этапе они уже начинают отбирать сегменты друг у друга (естественно, те сегменты, которыми не обладают).

Вывод:
При увеличении количества друзей мы получаем больше радости, и, поскольку сегменты выкачиваются не с одного источника, а уже с нескольких, то у нас существенно увеличивается скорость загрузки.
Ещё раз замечу, что первому источнику нужно будет отдать всего лишь 700 Мб данных, чтобы каждый из друзей (а их у нас сто) смог загрузить видеозапись на приличной скорости.
Выигрыш бьет пощечиной в лицо. Так что преимущества BitTorrent`а очевидны.
Более подробно о BitTorrent`е
Поскольку мы люди умные, заменим слово «друг» на слово «клиент«. Почему именно «клиент»? Потому что ваш файл, возможно, захотят скачать не только ваши друзья, а, возможно, даже и друзья друзей, или даже соседи, знакомые, туристы, хакеры и т.п. Особенно, если ваш файл будет им интересен. Вы спросите: почему же тогда не называть их просто «людьми»? Ответ очень прост. В развитых странах профессиональные дрессировщики могут так надрессировать собак, что с уверенностью утверждать, что за компьютером сидит человек, уже нельзя. Поэтому всех участников BitTorrent`а будем называть «клиентами». Данный термин в английском языке звучит как «Peer», что по-нашему произносят как «пир«.
И снова будем использовать наглядный пример.
Допустим, у нас есть человек, который хочет поделиться интересным фильмом.
Пропускаем практическую часть, и у нас уже есть 7 клиентов (или пиров), которые загружают этот фильм через BitTorrent. Вам, естественно, тоже захотелось посмотреть этот фильм, и вы присоединяетесь к этим клиентам.
Что при этом происходит?
А происходит обращение к каждому клиенту лично (а клиентов у нас семь) с вопросом: «Слушай, приятель, а какие у тебя есть сегменты файла?». И каждый клиент сообщает нам информацию о имеющихся у него сегментах, а затем задает аналогичный вопрос нам. Если у нас какого-то сегмента нет, то мы обращаемся к этому клиенту с просьбой переслать нам этот сегмент. После того, как мы получим этот сегмент, мы рассказываем эту новость всем клиентам, и если какой-то клиент нуждается в этом сегменте, он просит нас его переслать.
Другими словами, мы в курсе всех дел – знаем, что у кого.
С целью адаптации к новой терминологии, вместо слова «клиент» теперь будем говорить «пир».
Как происходит присоединение к загрузке?
Заметим, что выражения «присоединиться к загрузке» и «присоединиться к раздаче», по сути, ничем не отличаются. Смысл тот же. Поэтому, остановимся на последнем (в силу его популярности).
В нашем примере есть 7 пиров, которые загружают (или уже загрузили) фильм. Наша задача – подключиться к этим пирам с целью загрузить фильм себе на компьютер. Необходимым условием такого подключения является адрес пира.
Но где его взять?
Неплохо было бы, если бы адреса всех пиров, у которых имеются требуемые файлы, вносились в базу данных в интернете, а после того, как пир покидал раздачу (или удалял файл), удалялись из базы данных. Существует ли такая база данных? Да, существует, и имя ей – трекер. В интернете существует большое количество трекеров, наиболее популярные из которых:
Если разобраться, то трекер не являет собой базу данных в чистом виде. Прежде всего, это служба, которая обрабатывает входящие запросы пиров, предоставляет им необходимую информацию (адреса других пиров), и, в зависимости от определённых условий, вносит коррективы во внутреннюю базу данных.
В дополнение к трекерам, обычно, создают веб-сайты, на которых размещают информацию обо всех файлах, которые находятся в раздаче. Нам остается лишь выбрать требуемый файл и подключиться к раздаче.
Подключение к раздаче осуществляется посредством специального файла, который называется файлом метаданных. Но в народе прижилось другое название – «торрент-файл» или просто «торрент». Имя такого файла обычно заканчивается на .torrent, поэтому перепутать его с каким-то другим файлом сложно.
Торрент-файл содержит в себе адрес трекера (с которого он будет требовать адреса подключённых к раздаче пиров), имя раздаваемого файла, его характеристики, а также информацию для проверки целостности загружаемых сегментов.
Ещё парочка терминов
Пиры делятся на две категории:
На тех, кто загружает файл, и на тех, кто уже загрузил файл. Тех, кто ещё загружает файл называют «пиявками» (потому что высасывают). На английский язык слово переводится как «leech», что по-нашему произносится как «лич». Как только ввели данный термин в BitTorrent, стали все пиры личерами.
А когда личер получал все сегменты файла (соответственно, перестав «высасывать» их из других), он становился «раздающим» (или «сеющим» сегменты). В переводе на английский язык «сеятель» означает «seeder», что по-нашему звучит как сидер. Поэтому пир, обладающий всеми сегментами, зовётся сидером.
Рано или поздно, каждый личер становится сидером. Такова суть BitTorrent`а.
Для работы в среде BitTorrent существуют множество программ. Наиболее популярные из них, это: µTorrent, BitComet, Shareaza.

Я с вами согласен
Для меня это точно очень актуально
Премного благодарен за информацию, буду юзать.
Да… Мне на самом деле близка обсуждаемая тема! Даже грустно как-то
Согласна с предыдущими ораторами. Грустно, грустно…. Ох уж эти торренты.
Я конечно в этом не особо разбираюсь, но после вашего поста стал гораздо больше понимать. Спасибочки
Интересно… Что эт у меня здесь с лицом?
Перебрали малёха.
С кем не бывает?
С Вами не бывает
. У Вас всегда всё dead-on!( Не при Potape будет сказано)
.
А вы знаете, что после смайлов знаки препинания не ставятся? Сам Артемий Л. говорил. Я, оказывается, по своим правилам штампую. То-то меня недопонимают здесь
я долгое время не понимала как работает торрент. Просто пользовалась и все. А потом мне мой знакомый подробненько объяснил как это происходит.И с тех пор я выбираю сайты с максимальним количеством раздающих. Чтоб не сидеть с недобранными процентами,сгорая от дикого желания посмотреть фильм
Да, это очень полезный совет для людей, которые мало знакомы с торрент-трекерами.
Загружайте торренты с максимальным количеством сидов/пиров.
А вот интересно, если бы не родился Коэн Брэм? Через сколько придумали бы этот алгоритм? Многие знакомые спрашивают: «Что такое торренты? Как они работают?», а тут такая подробная для понимания статья! Буду знать куда теперь посылать знакомых!
Думаю, если бы не Коэм Брэм, то в течении 20 лет кто-то другой написал бы этот протокол.
Если изучать историю, то можно заметить, что подобные открытия делаются практически одновременно разными учёными из разных уголков мира приблизительно в одно и то же время.
Ой, столько букв! Не для блондинки всё это. По наивности полагала, что это имя такое мужское – Торрент, от фамилии Торрентино произошедшее. А тут – такое разочарование!
Интересная информация, я более полугода пользуюсь, этой программой для скачки фильмов и до конца не понимала, кто такие пиры, кто такие сиды, а тут все по полочкам разложили, и стало всё понятноё
Ё!
Ну зачем, зачем Вы придираетесь к Анне?
Могу Вас заверить, что она не специально.
А я и не придираюсь. Это радостный возглас. Ё(у)!
Не надо тратить силы, чтобы заверять меня. Вы лучше к Анне обратитесь, чтоб она с горя не сбежала отсюда.