uk en pl it
Web Monarx
BACK NEXT

Протокол BitTorrent


Протокол BitTorrent — тот самый случай, когда хочется сказать «все гениальное просто». Несмотря на всеобщее признание и многомиллионную армию пользователей, в самом протоколе лежат самые что ни на есть «родные» принципы, вроде «Я тебе — ты мне». И в тоже время, это не просто пиринговая сеть, где пользователи закачивают друг у друга расшаренные (открытые для скачки) файлы, непременно простаивая в очереди в ожидании, пока для них, наконец-то, освободится заветный слот. Напротив, это технология, позволяющая получить файл максимально быстро — зачастую быстрее, чем просто скачав его с HTTP-сервера. Большую роль здесь играют так называемые torrent-трекеры, которые изначально подразумевались лишь как координаторы процесса передачи файлов между пользователями, но впоследствии превратились в информационные порталы о расшаренных файлах с бешеной популярностью. Разобравшись во внутренней организации протокола BitTorrent, запустить трекер можно и самому.

Общие принципы работы протокола

Протокол BitTorrent был впервые представлен общественности 2 июля 2001 года, когда программист Bram Cohen опубликовал его первую реализацию на языке Python. Сейчас существует огромное количество клиентов, которыми пользуются более чем 150 миллионов пользователей BitTorrent по всему миру. Такой популярности способствуют несколько причин:

  • самая высокая скорость работы по сравнению с другими пиринговыми сетями;
  • отсутствие очередей, практически моментальный старт закачек;
  • возможность просмотра детальной информации о скачиваемом файле (например, для музыкального альбома – это информация о битрейте, треклист, лог-файл программы риппера, обложка), благодаря информационным сайтам, на которых выкладываются торренты;
  • возможность закачки файлов по частям;
  • раздача файлов происходит напрямую между пользователями, сервера лишь координируют процесс соединения и передачи файлов

Для обмена файлами пользователю необходим BitTorrent-клиент — программа, в которой реализован протокол BitTorrent. Чтобы скачать какой-либо файл, необходимо сначала найти для него так называемый torrent-файл, внутри которого содержатся специальные метаданные. Во-первых, это информация о самом файле (его хэш-сума) и, во-вторых, координаты так называемого трекера — компьютера-сервера, который координирует распространение файла. Torrent-файл может хранить информацию не об одном, а сразу множестве файлов, сохраняя сложную иерархию папок.

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

Получается, что клиенты соединяются друг с другом, обмениваются без непосредственного участия трекера, который лишь регулярно обновляет информацию о подключившихся к обмену пирах и прочую статистику. Для эффективной работы сети BitTorrent необходимо, чтобы как можно больше клиентов были способны принимать входящие соединения. Нужно, чтобы у них были открыты следующие TCP-порты: 6881—6889. Впрочем, они могут быть изменены в случае необходимости, чтобы, например, обойти ограничения файрвола.

Что находится внутри torrent-файла?

Для распространения любого файла обязательно создается файл метаданных, в котором содержится следующая информация:

  • общая информацию о закачиваемом файле (имя, длина и пр.);
  • контрольные суммы сегментов закачиваемого файла;
  • URL трекера

Естественно, вручную ничего делать не надо. Всю работу берет на себя специальная программа, включенная в любой современный torrent-клиент. Именно она разбивает файл на части, размером от 64 до 4 Мб. Для каждого из кусочков высчитывается контрольная сумма (используя алгоритм SHA-1) и записывается в torrent-файл с другими метаданными. Надо сказать, что подсчет контрольных сумм является неотъемлемой частью протокола: как только пользователь скачивает сегмент какого-то файла, он тут же сверяет реальную и заявленную контрольную суммы. Таким образом, обеспечивается отсутствие ошибок на любом этапе закачки. После создания torrent-файл выкладывается в публичное место, чтобы другие пользователя могли его найти — обычно это вебсайты, связанные с трекером.

Трекеры

Несмотря на то, что трекер координирует обмен файлами между клиентами, он зачастую даже не знает, какие файлы через него передаются. Ведь пиры, обращаясь к нему, не указывают имена или даже описания, а передают только ничего не говорящие хэш-суммы. С другой стороны, трекеры уже давно перестали быть исключительно технической составляющей, необходимой для работы с системой. Практически все они сейчас имеют специальный веб-интерфейс с дополнительными функциями. Индивидуальная для каждого пользователя статистика раздач, текущее количество сидов и пиров для каждого торрента, общие объемы переданных между клиентами данных… – давно стали стандартными фишками любого torrent-трекера. И что самое главное, такой интерфейс используется как площадка для хранения и публикации новых torrent-файлов.

Доступ к трекеру может быть открытый или частный. В связи с появлением большого количество халявщиков или, иначе говоря, личеров, закачивающих в огромном количестве файлы, но ничего при этом не отдавая, появились так называемые частные трекеры. Доступ к такому – исключительно после регистрации, которая зачастую возможна только по приглашению уже зарегистрированного пользователя. Для идентификации конкретного клиента трекер использует либо IP-адрес пользователя, либо уникальный для каждого юзера пароль, добавляемый трекером в торрент-файл при его скачивании. Особенность частных трекеров – это специальная система рейтингов, учитывающая количество переданных другим пирам и скачанных себе данных. Администраторы трекера требуют поддержания некоторого минимального соотношения этих двух величин. Как результат, доступность и скорость скачивания торрентов на частном трекере обычно выше, чем на открытом.

Выбираем трекер

Существуют разные реализации torrent-трекеров, но основным языком, на котором сейчас разрабатывают подобный софт, является PHP! Одним из самых распространенных, безусловно, является TBDev/TBSource и его различные модификации, которые в огромном количестве распространяются по Сети (еще бы, ведь подогнать PHP-скрипт под себя ничего не стоит). В частности, на этом движке «крутятся» такие популярные трекеры, как what.cd и waffles.fm, BtiTracker, xbtit, AKNova, TorrentTrader. Все они требуют установленного на сервере PHP-интерпретатора и используют в качестве данных СУБД MySQL

Другая часть трекеров, появившаяся значительно ранее, была написана на компилируемых языках: XBTT, BNBT, Opentracker. Но лучше всего использовать именно PHP-реализации – TBDev/TBSource либо xbtit. В качестве примера мы возьмем модификацию TBDEV YSE.

Установка

Для установки нужно:

  • Веб-сервер с поддержкой PHP (например, Apache или LightTPD);
  • PHP версии 5.1.1 или выше;
  • Сервер базы данных MySQL версии 4.1 или выше, лучше 5.0;
  • Любая оболочка для работы с СУБД MySQL (например, phpMyAdmin или EMS SQL Manager 2007 Pro for mySQL).

Требования настолько минимальные, что для размещения торрент-трекера подойдет даже бесплатный хостинг. Однако вероятность того, что твой торрент скоро откажет или вообще будет удален, очень велика. Поэтому не скупись потратиться на платную площадку: на первых порах вполне сойдет самый обычный хостинг, цена на которые не превышает $10-15. Если дело пойдет и трекер будет набирать обороты, можно задуматься о VPS/VDS и, в конечном итоге, выделенном сервере. Единственный тонкий нюанс — это настройки PHP интерпретатора:

memory_limit = 16M
error_reporting = E_ALL ^ E_NOTICE
display_errors = On
display_startup_errors = On
log_errors = On
report_memleaks = On
short_open_tag = On
register_globals = Off
magic_quotes_gpc = Off
file_uploads = On
upload_max_filesize = 8M
allow_url_fopen = On

Если все ОК, можно приступать к установке. После распаковки архива со скриптами обрати внимание на папку SQL, в которой лежит один единственный файл database.sql — с его помощь ты сможешь создать базу данных с нужной структурой. Чем мы сейчас и займемся.

Практически на любом хостинге установлен скрипт phpMyAdmin, специально предназначенный для удобного управления базами данных через браузер. Далее создаем новую базу данных, указываем ее имя (скажем, tbdev), а в качестве параметра «Сравнение» выбираем кодировку cp1251_general_ci. Жмем «Создать». Переходим на вкладку «Импорт». Может оказаться так, что такой вкладки не окажется – тогда подойдет вкладка с названием SQL. Так или иначе, тебе будет предложено указать файл SQL, содержащий последовательность SQL-команд. Жмем на кнопку «Обзор» и указываем путь к нашему SQL-файлу. Не забывая выбрать cp1251, даем команду на импорт. Теперь нужно указать параметры базы данных и самого SQL-сервера нашим скриптам. Для этого перейдем в папку /include и отредактируем следующие параметры в файле secrets.php:

$mysqli_host = "localhost";// 99%, что тебе не потребуется менять это значение
$mysqli_user = "user";// имя пользователя MySQL
$mysqli_pass = "password";// ...и пароль
$mysqli_db = "tbdev";// имя базы данных
$mysqli_charset = "cp1251";// это не трогаем

Теперь файлы трекера можно заливать на сервер. Скрипты написаны таким образом, что ничего больше настраивать не надо. Достаточно набрать в адресной строке браузера путь к только что закачанным скриптам, – и перед тобой появится страница твоего собственного трекера! Первый зарегистрированный пользователь автоматически становится администратором, который может управлять настройками трекера, удалять и редактировать учетные записи, модерировать внутренний форум и т.д., и т.п. Словом, делать все, чтобы трекер служил на благо общества. Описывать особенности работы было бы лишним, в виду простоты всего процесса. Замечу лишь, что часть настроек, влияющих на поведение трекера, находятся также в файле secrets.php.

Словарик терминов

Пир (от англ. peer — соучастник) — клиент, участвующий в скачивании и/или раздаче файле
Сварм (от англ. swarm — рой) — группа компьютеров, отправляющих и принимающих один и тот же файл
Сид или сидер (от англ. seed - сеятель) — компьютер, на котором есть полная версия распространяемого файла
Личеры (от англ. leech — пиявка) — люди, которые скачивают файлы, но не предоставляют для скачки другим пользователям
Трекер (tracker) — сервер, который управляет процессом передачи файлов по протоколу BitTorrent
Рейтинг или ratio — соотношение скачанной и отданной информации
Сидбокс (от англ. Seedbox) — выделенный сервер, использующийся закачки и раздачи каких-либо файлов, постоянно доступных в сети. Как правило, расположен на площадке с широким каналом и нелимитируемым трафиком.

Обзор торрент-трекеров

Торренты (http://torrents.ru)

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

Demonoid (Demonoid.com)

Крупнейший трекер во всем мире, которому объявили настоящую войну ассоциации звукозаписывающих компаний. Еще недавно, когда Демоноид пропал на несколько месяцев, казалось, они эту войну выиграли. Однако весной сервер снова ожил и отлично чувствует себя на украинских площадках. Для регистрации необходимо приглашение от одного из пользователей.

НоваФильм (http://novafilm.tv)

«НоваФильм» – сообщество, специализирующееся на переводе и озвучке популярных телешоу (преимущественно, сериалы). Все свои релизы они оформляют в виде раздач на одноименном трекере. Особенность «НоваФильм» в эксклюзивности и хорошем качестве контента. Новые эпизоды популярных сериалов появляются через день-два после их премьеры за бугром. Благодаря такой оперативности, novaFilm.tv стал трекером номер один для всех любителей новых и старых телесериалов.

Лучшие сериалы (http://lostfilm.ru)

«ЛостФильм» можно смело назвать зеркалом «НоваФильм». Почему? Да потому что это еще один трекер, целиком и полностью посвященный распространению популярных сериалов. У любителей сериалов уже давно возник обычай – если желаемый сериал не нашелся на novafilm, то значит, он непременно найдется на lost\'e.

HD Tracker (http://hdtracker.ru)

Основной контент этого трекера – новинки фильмов в формата HD DVD, Blu-ray и HDTV. Основные посетили ресурса – любители кино с хорошим качеством изображения и широчайшим интернет-каналом. Простым смертным с тормознутым инетом на этом трекере делать нечего, так как средний размер фильма, как правило, не меньше 4-х гигов, а значит, с толщиной канала 64/128 КБит быстро стянуть ничего не получится. Для регистрации необходимо получить приглашение от одного из пользователей ресурса.

Sharereactor (http://tracker.sharereactor.ru/)

Достаточно хороший и «живой» трекер. Из контента здесь представлено только видео. Причем имеются как новинки, так и достаточно старые и раритетные фильмы. Многие из релизов можно назвать эксклюзивными, ведь созданием озвучки занимаются постоянные посетители ресурса. Только благодаря таким энтузиастам многие могут посмотреть фильм, который еще не был официально дублирован в РФ (а возможно, что и не будет…), а таких фильмов очень-очень много.

TFile (http://tfile.ru/)

Крупный торрент-трекер, который по количеству пользователей и объему представленного контента можно сравнить с torrents.ru (хотя до полноценного torrents.ru ему еще далеко). Контент на трекере самый разнообразный: новые фильмы, фильмы в HDTV качестве, сериалы, soft, мультики, аниме, литература и т.д. Из особенностей можно выделить – стабильность и душевную атмосферу, царящую на форуме. Стабильность работы действительно на высоте. Трекер такого масштаба редко уходит в даун и всегда рад новым гостям. Среди минусов можно отметить достаточно быстрое «остывание» раздач.

Free Exchage (http://tracker.freeexchange.ru)

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

The Pirate Bay (http://thepiratebay.org)

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

Torrent Finder (http://torrent-finder.com)

Это не торрент-трекер, а специализированный поисковик torrent-файлов. С помощью этого сервиса очень удобно искать какие-нибудь эксклюзивные вещи. Torrent Finder производит поиск по самым крупным забугорным трекерам, но, к сожалению, обходит стороной отечественные ресурсы.

Дополнительно

Трекер считается «слабым» местом системы BitTorrent, поскольку при его отключении новые клиенты просто не могут друг друга «найти». Однако в последних версиях протокола пиры могут обмениваться файлами и без трекера. Во многих популярных клиентах реализована система распределенных хэш-таблиц (DHT), позволяющих пользователям использовать торренты, не имеющие работающего трекера. Более того, большинство клиентов поддерживают технику Peer exchange (PEX) для обмена информации о пирах между собой.

В распространении файлов через BitTorrent нет ничего плохого или противозаконного. Но ровно до тех пор, пока в качестве файлов не начинают передавать варез или защищенные авторским правом продукты. Тогда пользователь нарушает закон.

Программы для работы с торрентами

µTorrent

Если вы хотите свести к минимуму вероятность возникновения каких-либо проблем при «общении» с любимым трекером, то используйте одну из самых популярных программ µTorrent (www.utorrent.com). «мюТоррент» — маленький, быстрый и не требовательный к ресурсам клиент, который к тому же и работает весьма стабильно. Программа не перегружена наворотами, но имеет всё, что необходимо. Например, здесь предусмотрен очень удобный графический планировщик ширины канала — просто кликая мышкой по квадратикам графика, можно заранее задавать, в какие часы каких дней недели отдавать µTorrent всю полосу пропускания интернет-соединения, а когда разрешать только сидирование, когда вообще выключать загрузки, а когда ограничивать их скорость для того, чтобы была возможность нормально работать и в других интернет-программах. Скорость можно указывать даже для каждого торрента по отдельности, а можно пойти другим путём — запрограммировать программу таким образом, чтобы она раздала, скажем, 300% данного файла, а потом прекратила сидирование. Определить же реальную скорость вашего канала и подобрать соответствующие ей параметры загрузки и раздачи поможет специальный компонент Speed Guide.

Неплохо реализовано поведение программы по факту завершения загрузок — так называемый режим Auto Shutdown. При желании вы можете сделать так, что ПК будет автоматически выключен, когда всё скачается, или же погружен в любой необходимый энергосберегающий режим. Можно ограничиться и просто автовыгрузкой программы. Кстати, если настройки вашей системы таковы, что она захочет сама уйти в стендбай, пока идёт закачка, то µTorrent не даст ей это сделать.

Умеет программа работать (по крайней мере, в последней версии — 1.8.1 beta) с UPnP, NAT и Proxy. Совместима с DHT (Distributed Hash Table, возможность работать без трекера), умеет искать пиров внутри локальной сети (эта фича вообще считается едва ли не одной из наиболее полезных в этом клиенте, поскольку способна кардинально ускорить загрузку в крупных локалках), обмениваться данными по пирам, шифровать трафик. Имеется и небольшой бонус в виде встроенного RSS-ридера, который здесь уместен, поскольку многие трекеры имеют свой RSS-канал, по которому очень удобно отслеживать обновления. Появился в последних версиях веб-интерфейс WEBUI — фича, позволяющая удаленно подключаться к вашему ПК и полностью управлять µTorrent — например, если он запущен у вас на работе, а вы сидите дома и хотите в очередной раз попользоваться «халявным» рабочим интернетом, добавив ещё одну закачку.

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

BitComet

Ещё один распространённый клиент BitComet (www.bitcomet.com). Эта программа, строго говоря, не является абсолютно бесплатной, поскольку в последних релизах отображает рекламу, то есть по сути это adware-утилита. Она считается несколько более продвинутой, нежели µTorrent, и совсем недавно пользовалась огромной популярностью у пользователей, предпочитающих копаться в настройках. Хотя на самом деле каких-то значимых «фич» по сравнению с µTorrent здесь, наверное, и нет. Помимо того, что уже упоминалось по отношению к µTorrent (шифрование, DHT и так далее), можно отметить наличие встроенного браузера, позволяющего открывать страничку того или иного торрента прямо в окне BitComet — для кого-то это удобно, но прожить без него, разумеется, можно. Есть функция предпросмотра видео (и предпрослушивания звуковых файлов) в процессе закачки, но ничто не мешает натравить на незаконченный файл всеядный плеер типа VideoLAN и при работе с любым другим клиентом. Предусмотрено скачивание файлов по протоколам FTP/HTTP и даже eDonkey, но зачем надо было дублировать функции специализированных и гораздо более удобных инструментов типа FlashGet и eMule — не совсем понятно. Хотя, с другой стороны, любителей подобных мегакомбайнов немало. Зато небольшая утилита, которая патчит системный файл tcpip.sys для ускорения работы клиента (известная проблема half-open connections), заядлым личерам будет удобна и полезна. Да и функция настройки порядка загрузки файлов внутри одного торрента (например, если торрент — это несколько альбомов одного исполнителя и вы хотите скачать в первую очередь самые интересные для вас, а уже потом — всё остальное) выглядит достаточно обоснованной. Вот, пожалуй, и все существенные «фичи» этого клиента.

Надо только учитывать, что многие трекеры недолюбливают эту программу, главным образом из-за того, как здесь реализована поддержка DHT. И хотя часть проблем старых релизов, из-за которых трекеры банили пользователей BitComet, решена, до сих пор при работе с DHT есть вероятность утечки вашего passkey (пароль, используемый на некоторых трекерах), так что DHT в этом клиенте рекомендуется отключать. Да и на стабильность программы многие жалуются, в том числе на то, что BitComet отдаёт некорректную информацию трекеру о ваших загрузках, на то, что части файла, в которых возникли ошибки, с трудом перезагружаются. Хотя, конечно, многие глюки обусловлены не столько самой программой, сколько системой, в которой ей приходится работать, да и последние релизы стали совместимы с основным обиталищем российского личера — трекером Torrents.ru. Так что попробовать BitComet всё же стоит, хотя бы из-за того, что у некоторых пользователей он показывает более высокую скорость закачки, нежели конкуренты. Да и удобство специфического интерфейса программы может оказаться решающим фактором.

Azureus

Кроссплатформенный Azureus (azureus.sourceforge.net), написан на Java и довольно требователен к ресурсам. Поддерживает плагины.

На наиболее интересных особенностях этой программы, которая сегодня называется Vuze, и остановимся. Начнем с того, что эта программа изначально умеет работать с сетью Tor и I2P. То есть если вы всерьёз озабочены участившимися последнее время преследованиями любителей покачать музычку из файлообменных сетей (а особенно беспокоиться по этому поводу стоит тем, кто выкладывает торренты), то эта программа позволит с минимальными усилиями обеспечить вашу анонимность.

 

Интересна опция автоматического импорта новых торрентов — то есть вы скачиваете torrents-файлы в определённую папку, а программа их сама подхватывает. Или такая мелочь, как функция переноса уже частично загруженных файлов в другое место. Но самое главное — огромное количество всевозможных настроек. Их так много, что по умолчанию интерфейс программы несколько урезан, и только переключение в режим Advanced позволяет получить доступ к всем опциям. Настроить можно всё, что угодно.

BitTorrent

Фактически «родной» клиент сети, который называется так же, как и сама сеть — BitTorrent (www.bittorrent.com) — это ещё одна простейшая программа.

Другие

А ещё качать торренты можно с помощью FlashGet 2.0 или Opera

Источники: журнал Хакер, статья BitTorrent-клиенты

Скачивание торрентов без клиента

Зайдите на сайт Torrent2exe.com и укажите ссылку на файл с расширением .torrent. Далее необходимо дождаться формирования экзешника, который останется только скопировать на компьютер и запустить. Несмотря на простоту, созданная сервисом Torrent2exe.com утилита позволяет контролировать процесс загрузки и приостанавливать его, анализировать объем переданных данных и скорость их копирования, просматривать количество участвующих в раздаче клиентов и автоматически восстанавливать скачивание файла после перезагрузки операционной системы.

Также можно воспользоваться сайтом BitLet (необходимо установить виртуальную среду Java Runtime Environment), скормив сервису ссылку на торрент-файл и дождаться, когда данные будут скопированы на диск. Интерфейс онлайнового приложения предельно лаконичен, а количество его настроек сведено к минимуму.

Ссылки на торрент-ресурсы

•litezone.com
•top100.topmango.com/bittorrent
•torrent.hackz.nl
•trackerlist.com
Русские трекеры:
•dc.ru-board.com
•torrents.ru
•www.bt-club.org
•tracker.sharereactor.ru
•kinoclub.org
•tracker.freeexchange.ru
•www.elitetorrent.ru
•69.sytes.net
•movies.lathost.lv
•www.mytorrents.info
•www.t-films.info
•www.kinozal.ws
•www.upashi.com
•www.rusdivx.ee/tracker
•shadow.lv/browse.php
•torrent.e2k.ru
•torrent.stepashka.com
•www.kinoworld.info
•kov4eg.net/BT
•game-torrent.info


 

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