Torrent: альтернативный способ детектирования

Jul 07, 2010 06:48

Со времени событий вокруг uTP прошло более 4 месяцев, разработчики uTorrent на месте не стояли, в теме на nag.ru тоже накатали уже более сорока страниц. Придумал и я принципиально новый способ ловить соединения торрентов, но обо всём по порядку.( Рабочий скрипт с демонстрацией концепта прилагается )

сети, l7, freebsd, ipfw, админское, идиоты

Leave a comment

rc_conf July 27 2010, 10:07:54 UTC
Решил сегодня потестировать на 0day.kiev.ua.
Интересная картина:
Первый ответ почти всегда получается нормальный
d8:intervali1256e12:min intervali628e5:peers900

Но иногда проскакивает
d8:completei16e10:incompletei8e10:downloadedi40e8:intervali300e5:peers132
Соответственно матч не проходит

Reply

nuclight July 28 2010, 10:43:47 UTC
Занятно, в официальной спецификации этого нет, нашлось на http://wiki.theory.org/BitTorrentSpecification - там еще некоторые ключи могут попадаться. Ну что ж, значит, надо модифицировать регэксп :)

Reply

rc_conf July 29 2010, 15:53:37 UTC
У себя уже пофиксил. Интересно, сколько еще новых сюрпризов принесет данный протокол :)
А вообще, скриптик работает на ура - за вчера 25К уникальных хостов порезал.

Reply

nuclight July 29 2010, 16:01:02 UTC
Ну, у них есть, например, драфт протокола трекера, работающего по UDP. Правда, номер порта я из него не понял.

> за вчера 25К уникальных хостов порезал.

А эффект по полосе есть? В смысле, что-нибудь явно лишнее просачивается, как признак неучтенного скриптом?

Reply

rc_conf July 29 2010, 16:12:27 UTC
Вообще есть и довольно не плохой, есть подозрение, что он таки процентов 10% общего трафика пропускает(внимательно не смотрел), но этого вполне достаточно. В общем на 30K pps легче становится ,с учетом того что, фильтруется пока всего 3 трекера.

Reply

nuclight July 29 2010, 16:24:27 UTC
А, жесткий список трекеров... Тогда да, адекватно не получится оценить. Можно попробовать натравить на трафик что-нибудь типа ngrep по "\r\n\d8:" для отлова неучтенных трекеров - но это нагрузка на машину...

Reply

rc_conf July 29 2010, 16:24:43 UTC
Но этот метод мне понравился больше по сравнению с предложены Ivan_83 http://www.rozhuk.org.ru/forum/index.php?topic=175.0. Очевидные плюсы это меньшая нагрузка на цпу (не нужно фильтровать такое количество пакетов), не попадают по горячую руку всякие CS и тп. игры, плюс получаем более гибкую систему фильтра самого торент трафика.
В случае uTPControl, он тоже не плохо работает, но как я писал выше не всегда корректно. И замечены странности у самих клиентов, когда uTPControl сбрасывает конект и через несколько секунд этот хост опять появляется и опять и опять, а этот момент и хомячка клиент отчаянно пытается найти пиров.

Reply

rc_conf July 29 2010, 16:26:37 UTC
Да, но я думаю проще опросить хомячков и сделать динамический лист трекеров и нагрузка меньше и думать меньше :)

Reply

nuclight July 29 2010, 16:33:40 UTC
На самом деле, если речь об UDP, и добавляется с выхода скрипта хост целиком, без учета порта, то проблемы таки могут возникнуть с играми и прочим DNS. Например, там NAT-хост, для торрента всего пару портов, а остальное игры, DNS местной сетки, whatever.
Для шейпинга TCP, конечно, это не будет существенно.

Reply

rc_conf July 29 2010, 16:42:32 UTC
Да может. Но процент намного меньше получается. В правилах главное порты поставить from any 1024-65535 и будет все ок.

Reply

Fix blaker_1 October 11 2010, 20:17:44 UTC
Покажите, пожалуйста, фикс

Reply


Leave a comment

Up