[Вход]
Общие вопросыBitTorrent — P2P-протокол, предназначенный для обмена файлами

BitTorrent (дословно «поток битов») — P2P-протокол, предназначенный для обмена файлами через Интернет.

Общие особенности

  • Отсутствие очередей на закачку. Файлы закачиваются небольшими сегментами; чем менее доступен сегмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сида» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.
  • Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».
  • Закачанные сегменты становятся немедленно доступны другим клиентам.
  • Контролируется целостность каждого сегмента.
  • В качестве объекта закачки могут выступать несколько файлов (например, содержимое каталога).

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

  • Раздача. Процесс распространения файла по протоколу BitTorrent.
  • Пир (англ. peer — соучастник) — клиент, участвующий в раздаче. Иногда пирами называют только скачивающих участников.
  • Сид (англ. seeder — сеятель) — пир, имеющий все сегменты распространяемого файла, то есть либо начальный распространитель файла, либо уже скачавший весь файл.
  • Личер и его ройЛичер (англ. leech — пиявка) — пир, не имеющий пока всех сегментов, то есть продолжающий скачивание. Термин часто употребляется и в негативном смысле, который он имеет в других файлообменных сетях: пользователь, который отдает гораздо меньше, чем скачивает.
  • Рой (англ. swarm) — совокупность всех пиров, участвующих в раздаче.
  • Доступность (англ. availability) (также distributed copies) — количество полных копий файла, доступных клиенту. Каждый сид добавляет 1.0 к этому числу, личеры увеличивают доступность в зависимости от количества скачанного, которого нет у других личеров. К примеру, если на раздаче есть один сид и два личера с 50%, и скачанные части равны между собой, то доступность равна 1.50.
  • Рейтинг(англ. share ratio) — отношение отданного к скачанному.

Торрент-трекер


Торрент-трекер (англ. torrent tracker) — специализированный сервер, работающий по протоколу HTTP. Трекер нужен для того, чтобы клиенты могли найти друг друга. Фактически, на трекере хранятся IP-адреса, входящие порты клиентов и хэш-суммы, уникальным образом идентифицирующие объекты, участвующие в закачках. По стандарту, имена файлов на трекере не хранятся, и узнать их по хэш-суммам нельзя. Однако на практике трекер часто помимо своей основной функции выполняет и функцию небольшого веб-сервера. Такой сервер хранит файлы метаданных и описания распространяемых файлов, предоставляет статистику закачек по разным файлам, показывает текущее количество подключенных пиров и пр.

Роль торрент-трекера

  • Таким образом, трекер «связывает» клиентов друг с другом, но напрямую не участвует в обмене данными раздаваемых файлов. Более того, в принципе трекер может работать, не имея никакой информации об этих файлах, поскольку клиенты сообщают ему только info_hash.
  • Трекер считается «слабым» местом системы BitTorrent, поскольку при его отключении новые клиенты просто не могут друг друга «найти». При этом уже участвующие в раздаче клиенты могут некоторое время продолжать файлообмен, постепенно теряя тех, кто отключился или у кого поменялся динамический IP адрес.
  • Для разрешения этой проблемы могут использоваться резервные трекеры или специальный бестрекерный протокол DHT.

Дополнительные функции торрент-трекера

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

Частные торрент-трекеры

  • Частный (англ. private) трекер — это трекер, ограничивающий доступ пользователям, обычно требованием регистрации учётной записи.
  • Одной из причин появления частных трекеров является ассиметричность пользовательских каналов доступа к Интернет. Средний пользователь за время скачивания торрента успевает отдать другим пользователям незначительную по объёму часть данных, при этом многие пользователи после получения нужного файла сразу закрывают торрент клиент. В результате доступность торрента снижается, и на первоначальных распространителей файла ложится неоправданно большая нагрузка.
  • Как правило, частные трекеры записывают статистику каждого пользователя по количеству «скачанного» и «отданного» другим пользователям, и требуют поддержания некоторого минимального отношения этих двух величин. Как результат, доступность и скорость скачивания торрентов на частном трекере обычно выше, чем на открытом.
  • Для опознания запросов от клиента (программы) пользователя трекер либо использует IP адрес пользователя либо уникальный для каждого пользователя passkey, добавляемый трекером в announce URL торрент файла при скачивании пользователем.

Заблуждение про статистику

Иногда встречается мнение, что включенный в клиенте DHT как-то влияет на учет статистики клиента, например "раздавал через DHT, значит статистика шла мимо трекера". Это неверно:

  1. Клиент рапортует статистику только на трекер, через DHT/PEX вообще никакого подсчета статистики не ведется;
  2. Клиент рапортует трекеру суммарные данные об объемах им скачанного и отданного всем пирам, с которыми общался, независимо от того, узнал клиент об отдельных пирах через трекер, DHT или PEX, или тот пир вообще начал соединение сам. То есть даже если из-за DHT/PEX на раздаче появятся левые пользователи, клиент все равно сообщит на трекер все, что у них скачал и отдал. Правильный учет статистики зависит только от состояния трекера: работает трекер - статистика учитывается, не работает - не учитывается. Только в случае длительно неработающего трекера DHT/PEX может играть косвенную роль, не давая постепенно затухнуть файлообмену на такой "раздаче без учета статистики".
  1. Кроме того, часто пользователи просто забывают, что на их закрытом трекере все торренты private, и следовательно DHT/PEX в раздачах в принципе не используется.

Отключать ли DHT?

Безусловно отключать DHT стоит в следующих двух случаях:

  1. Вы качаете с закрытого трекера с системой passkey, на котором администраторы не хотят или не умеют делать все торренты private. Дело в том, что через DHT пользователи могут узнать passkey других пользователей, и нечестные пользователи могут использовать чужие passkey для скачивания под чужой учетной записью.
  2. Вы качаете только с правильных закрытых трекеров. Если при этом в клиенте разрешить DHT, то получится, что клиент подключается к DHT сети, тратит на это трафик, но ни на одной раздаче DHT не использует.
Х