BitTorrent-трекер
Дополнительные действия
BitTorrent-трекер — сервер, осуществляющий координацию клиентов BitTorrent.
Координация клиентов
Основная функция BitTorrent-трекера — обработка запросов клиентов.
Каждый клиент периодически обращается к трекеру с запросом, в котором указаны:
- SHA-1 словаря info (инфохеш);
- Порт, на котором клиент ждёт соединений от других клиентов;
- количество данных, которыми клиент успел обменяться с другими клиентами;
- и некоторая другая информация.
Клиентский узел отправляет трекеру HTTP-запрос типа GET. Ответом служит Bencode-словарь с информацией о ранее обратившихся к трекеру узлах, также участвующих в раздаче. Данная информация используется узлами для установления прямых связей друг с другом.
Если в BitTorrent-клиенте открыто несколько активных торрент-файлов, то для каждого используется отдельный запрос, никак не связанный с другими. Интервалы между запросами по каждому отдельно взятому торренту зависят от настроек клиента и обычно составляют от 30 до 60 минут.
Роль трекера
Трекер «связывает» клиентов друг с другом, но напрямую не участвует в обмене раздаваемых файлов. Более того, трекер не имеет никакой информации об этих файлах, поскольку клиенты только сообщают ему инфохеш.
Трекер считается «слабым» местом системы BitTorrent, поскольку при его отключении новые клиенты просто не могут друг друга «найти». При этом уже участвующие в раздаче клиенты могут некоторое время продолжать файлообмен, постепенно теряя тех, кто отключился или у кого поменялся IP-адрес.
Для решения этой проблемы могут использоваться резервные трекеры или специальные бестрекерные протоколы, например DHT.