Перейти к содержанию

Анатомия торрент сессии


Рекомендуемые сообщения

Вот нашел в инете. Думаю, будет любопытно почитать.

"Анатомия" торрент-сессии

Многие пользователи до сих пор не знают, как работает механизм взаимодействия между торрент-клиентом и трекером. Для понимания этого вопроса рассмотрим одну конкретную торрент-сессию. "Общение" клиента с трекером осуществляется с помощью простых HTTP-запросов методом GET. Самая первая команда обычно выглядит так:

GET /announce.php?passkey=xxx&info_hash=c%97%91%C5jG%951%BE%C7M%F9%BFa%03%F2%2C%ED%EE%0F& peer_id=S588-----gqQ8TqDeqaY&port=55500&uploaded=0&downloaded=0&left=753690875&event=started

Рассмотрим, из чего же она состоит:

passkey (пасскей) - уникальное значение, с помощью которого трекер определяет вас;

info_hash - уникальное значение (контрольная сумма, хеш), определяющее конкретный торрент;

peer_id - уникальное значение, определяющее используемый клиент (например, s588 - идентификатор клиента Shad0w's версии 5.8.8, за ним следует произвольный набор символов);

port - номер порта, с помощью которого клиент принимает входящие соединения;

uploaded=0 - количество отданной информации;

downloaded=0 - количество скаченной информации;

left=753690875 - количество оставшейся информации;

event=started - системное сообщение, с помощью которого клиент информирует трекер о начале процесса загрузки торрента.

Обращаем ваше внимание на то, что IP-адрес клиента в указанной команде не используется, хотя это и возможно. Решение о необходимости использования IP-адреса и привязки его к user_id трекер принимает автоматически. При этом скачиваемый торрент появится в разделе "Сейчас качает" вашего профиля как активный.

В процессе загрузки клиент будет время от времени отсылать трекеру запросы вида:

GET /announce.php?passkey=xxx&info_hash=c%97%91%C5jG%951%BE%C7M%F9%BFa%03%F2%2C%ED%EE%0F& peer_id=S588-----gqQ8TqDeqaY&port=55500&uploaded=67960832&downloaded=40828928& left=715417851&numwant=0

Из строки запроса видно, что за всё время сессии пользователь успел отдать 68 МБ, скачав при этом всего 40. С помощью команды "numwant" клиент сообщает трекеру о количестве необходимых ему пиров (в данном случае - 0). Получив подобный запрос от клиента, трекер автоматически обновит информацию о закаченном и отданном как для текущего торрента, так и для всей статистики в целом. Все эти промежуточные HTTP-запросы отсылаются трекеру с определенной периодичностью, которая определяется настройками клиента и трекера). Вы можете также вручную послать запрос на обновление трекеру (в частности, в клиенте uTorrent для этого существует команда "Обновить трекер").

По окончании сессии клиент посылает трекеру команду следующего вида:

GET /announce.php?passkey=xxx&info_hash=c%97%91%C5jG%951%BE%C7M%F9%BFa%03%F2%2C%ED%EE%0F& peer_id=S588-----gqQ8TqDeqaY&port=55500&uploaded=754384896&downloaded=754215163 &left=0&numwant=0&event=completed

Об окончании загрузки клиент информирует трекер системным сообщением "event=completed". После этого информация о торренте будет удалена из раздела "Сейчас качает" вашего профиля. Если же по каким-либо причинам (трекер отключён или перегружен, используется нестабильная версия клиента, произошёл сбой соединения с трекером, имеют место технические проблемы на вашем компьютере и т.п.) последний запрос не достиг трекера, этот торрент, скорее всего, "повиснет" в вашем профиле как активный до тех пор, пока трекер в процессе самоочистки не удалит "мертвые" соединения или вы сами не сделаете этого вручную.

Обращаем внимание пользователей на важность правильного завершения работы клиента. Перед закрытием программы необходимо остановить все активные торренты с помощью команд "Остановить" или "Отменить" (при этом трекер получит сообщение "event=stopped"). Использование команд "Приостановить"/"Возобновить" для остановки активных торрентов, а также простое закрытие программы крайне нежелательны ввиду того, что никаких сообщений трекеру не посылается, поэтому вероятно появление "подвисших" торрентов и ошибок в статистике.

Ссылка на комментарий
  • 4 недели спустя...
  • 2 года спустя...
  • 2 года спустя...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...