Torrent (дословно «поток») — P2P-протокол, предназначенный для обмена файлами через интернет. Torrent был создан программистом Брэмом Коэном.
Трекер (англ. tracker) — специализированный сервер, работающий по протоколу HTTP. Трекер нужен для того, чтобы клиенты могли найти друг друга. Фактически, на трекере хранятся IP-адреса, входящие порты клиентов и хэш-суммы, уникальным образом идентифицирующие объекты, участвующие в закачках. По стандарту, имена файлов на трекере не хранятся, и узнать их по хэш-суммам нельзя. Однако на практике трекер часто помимо своей основной функции выполняет и функцию небольшого веб-сервера. Такой сервер хранит файлы метаданных и описания распространяемых файлов, предоставляет статистику закачек по разным файлам, показывает текущее количество подключенных пиров и пр.
Torrent-трекер - это — веб-сервер, осуществляющий координацию Torrent клиентов. Его основная функция — обработка запросов клиентов.
Каждый клиент периодически обращается к трекеру с запросом, в котором указаны:
1) info_hash — уникальный хеш торрент файла
2) port — TCP порт, на котором клиент ждёт соединений от других клиентов.
3) количество данных, которыми клиент успел обменяться с другими клиентами.
...и некоторая другая информация.
Такое обращение представляет собой обычный GET HTTP запрос, в котором информация закодирована с помощью специального протокола Bencode.
Если в Torrent-клиенте открыто несколько активных торрент файлов, то для каждого используется отдельный запрос, никак не связанный с другими. Интервалы между запросами по каждому отдельно взятому торренту зависят от настроек клиента и обычно составляют от 30 до 60 минут.
Torrent трекер, используя info_hash, составляет списки IP адресов и портов участвующих в каждой отдельной раздаче клиентов. Каждому клиенту в ответ на очередной запрос трекер возвращает такой список, и клиент использует его для установления соединений с другими клиентами.
Роль трекера.
Таким образом, трекер «связывает» клиентов друг с другом, но напрямую не участвует в обмене данными раздаваемых файлов. Более того, в принципе трекер может работать, не имея никакой информации об этих файлах, поскольку клиенты сообщают ему только info_hash.
Трекер считается «слабым» местом системы Torrent, поскольку при его отключении новые клиенты просто не могут друг друга «найти». При этом уже участвующие в раздаче клиенты могут некоторое время продолжать файлообмен, постепенно теряя тех, кто отключился или у кого поменялся динамический IP адрес. Для разрешения этой проблемы могут использоваться резервные трекеры или специальный бестрекерный протокол DHT.
Дополнительные функции
Большинство реализаций трекеров, кроме координации клиентов, также имеют дополнительные функции, доступные пользователям с браузерами через обычный веб-сервер, часто с другим адресом или портом, чем у интерфейса для запросов клиентов.
Так, практически все трекеры отображают статистику раздач, то есть количества сидов и пиров на каждой раздаче, общие объёмы переданных между клиентами данных и другую доступную им информацию.
Часто трекеры используются для хранения торрент-файлов и их описаний.