BitTorrent-трекер BitTorrent-трекер — файлообменный веб-сервер, осуществляющий координацию BitTorrent-клиентов. Координация клиентов Основная функция BitTorrent-трекера — обработка запросов клиентов. Каждый клиент периодически обращается к трекеру с запросом, в котором указаны: уникальная хеш-сумма торрент-файла; TCP-порт, на котором клиент ждёт соединений от других клиентов; количество данных, которыми клиент успел обменяться с другими клиентами; и некоторая другая информация. Такое обращение представляет собой обычный HTTP-запрос, в котором информация закодирована с помощью специального протокола Bencode (en:Bencode). Если в BitTorrent-клиенте открыто несколько активных торрент-файлов, то для каждого используется отдельный запрос, никак не связанный с другими. Интервалы между запросами по каждому отдельно взятому торренту зависят от настроек клиента и обычно составляют от 30 до 60 минут. BitTorrent-трекер, используя хеш-сумму в качестве уникального идентификатора файла, составляет списки IP-адресов и портов участвующих в каждой отдельной раздаче клиентов. Каждому клиенту в ответ на очередной запрос трекер возвращает такой список, и клиент использует его для установления соединений с другими клиентами. Роль трекера Таким образом, трекер «связывает» клиентов друг с другом, но напрямую не участвует в обмене данными раздаваемых файлов. Более того, в принципе трекер может работать, не имея никакой информации об этих файлах, поскольку клиенты сообщают ему только хеш-суммы файлов. Трекер считается «слабым» местом системы BitTorrent, поскольку при его отключении новые клиенты просто не могут друг друга «найти». При этом уже участвующие в раздаче клиенты могут некоторое время продолжать файлообмен, постепенно теряя тех, кто отключился или у кого поменялся динамический IP-адрес. Для разрешения этой проблемы могут использоваться резервные трекеры или специальный бестрекерный протокол, например DHT. Дополнительные функции Большинство реализаций трекеров, кроме координации клиентов, также имеют дополнительные функции, доступные пользователям с браузерами через обычный веб-сервер, часто с другим адресом или портом, чем у интерфейса для запросов клиентов. Так, практически все трекеры отображают статистику раздач, то есть количества сидов и пиров на каждой раздаче, общие объёмы переданных между клиентами данных и другую доступную им информацию. Часто трекеры используются для хранения торрент-файлов и их описаний. Частные (закрытые) трекеры Частный (англ. private) трекер — это трекер, ограничивающий доступ пользователям, обычно требованием регистрации учётной записи и требованием поддержания «рейтинга» на определённом уровне. Одной из причин появления частных трекеров является асимметричность пользовательских каналов доступа к Интернет. Средний пользователь за время скачивания торрента успевает отдать другим пользователям незначительную по объёму часть данных, при этом многие пользователи после получения нужного файла сразу закрывают торрент-клиент. В результате доступность торрента снижается, и на первоначальных распространителей файла ложится неоправданно большая нагрузка. Как правило, частные трекеры записывают статистику (рейтинг) каждого пользователя по количеству «скачанного» и «отданного» другим пользователям, и требуют поддержания некоторого минимального соотношения этих двух величин. Как результат, доступность и скорость скачивания торрентов на частном трекере обычно выше, чем на открытом. Для идентификации конкретного клиента трекер использует либо IP-адрес пользователя, либо уникальный для каждого пользователя ключ (так называемый user key или pass key), добавляемый трекером в торрент-файл при скачивании его пользователем. У рейтинговой системы есть и негативная сторона: дискриминация пользователей, имеющих узкий канал отдачи. Часто у такого пользователя отдача совсем не идёт; причина тому – другие пользователи, имеющие более широкий upload-канал и отдающие значительно больше и быстрее. Такому пользователю очень сложно восстанавливать свой рейтинг, особенно если он имеет дело с маловостребованными файлами. В итоге пребывание на частном трекере оборачивается для него постоянной головной болью о способах поддержания рейтинга. Реализации трекеров Существуют разные реализации трекеров: в виде отдельного веб-сервера, в виде модуля для стороннего HTTP-сервера (например, Apache) или в виде движка сайта, написанного, к примеру, на PHP или JSP.
|