Jump to content
Калькуляторы

Уменьшение торрент трафика на магистрали и увеличение доли локального/пиринг

Сервис (стартап) полезен для разгрузки магистрали тем, у кого много абонентов и/или много доступных чужих абонентов через пиринги.

Меньше 10к абонентов (своих + пиринг партнёров) - смысла читать дальше нет.

Кратко: если набирается хотя бы n локальных пиров для закачки то внешние пиры фильтруются и трафик не идёт через магистраль.

Результат как у систем кеширующих торрент, но без необходимости держать у себя монстров с дисками.

 

 

Принцип работы

 

Запросы к популярным торрент трекерам заворачиваются на спец софтину, софтине скармливается список подсетей своих и пирринг партнёров, список локальных ретрекеров (опционально, своих и пиринг партнёров).

Запрос от абонента в несколько модифицированном виде рассылается на на оригинальный трекер и ретрекеры, ответы собираются, в начале в них добавляются локальные пиры и пиры пиринг партнёров, если их больше заданного числа (например 10), то "внешние" пиры не добавляются.

 

 

Плюсы:

+ экономия внешних каналов;

+ прозрачно для абонента;

+ работает со всем трекерами, не зависимо от их желания;

+ работает со всеми пиринг партнёрами, не зависимо от их желания;

+ минимум настроек;

+ минимум доп нагрузки на оборудование провайдера;

 

 

Статистика софтины доступна и подробна, например:

http://www.netlab.linkpc.net:8088/stat

http://www.netlab.li...t:8088/dnscache

 

 

answers with weightX peers only: 17233 (12,55%)
...
requests per sec: 0
requests total: 139095
returned peers total: 586611

 

первая строчка показывает сколько было ответов без "внешних" пиров вообще.

 

 

Вопросы сюда, желающие по тестировать в личку.

Share this post


Link to post
Share on other sites

Ivan_83

 

Так а что вы с DHT и PEX делаете? Всё равно оттуда внешние пиры набегут. Или вы пошли путём Билайна и тупо дропаете его?

Share this post


Link to post
Share on other sites

Лост и другие не отдают ретрекер локал, а выдают пиры рандомно. И даже если ретрекер локал там есть, то их трекеры опрашиваются первыми и выдают что попадется.

В случае использования данного сервиса все запросы проходят через локальные ретрекеры и при наборе n локальных пиров внешних пиров в ответе трекеров не будет вообще.

Те кпд точек обмена (IX) будет выше при грамотном применении.

Share this post


Link to post
Share on other sites

Так а что вы с DHT и PEX делаете? Всё равно оттуда внешние пиры набегут. Или вы пошли путём Билайна и тупо дропаете его?

Ничего.

Задача оптимизировать и ничего не сломать.

Работает только с http трекерами.

 

DHT - долго ищет, за это время от трекеров успевает придти ответ и начаться закачка.

PEX - предполагает вмешательство на L7 в достаточно большом потоке трафика, и тоже начинает работать уже после ответов от трекеров.

Share this post


Link to post
Share on other sites

Решил я посмотреть логику работы uTorrent. Загрузил винду, поставил последнюю stable версию uTorrent Free 3.2[27708], скачал популярный торрент с rutracker-а, смотрю что происходит. uTorrent почти одновременно обращается к retracker-у и к самому tracker-у(с разницей в 0.15с), на ретрекере находится много сидеров, смотрю по списку пиров - бо'льшая часть трафика льётся с IP из той AS, из которой у меня IP, т.е. всё само по себе работает и не понятно зачем вообще нужна ваша софтина. В случае если у вас wirespeed-локалка, то даже несколько пиров с ретрекера сделают своё дело. Если на ретрекере меньше 50 пиров на раздаче(ограничение по умолчанию в uTorrent), то всё равно внешние пиры прибегут по DHT/PEX.

 

Плюсы:

+ экономия внешних каналов;

покажите это статистикой по трафику, а не статистикой пиров/торрентов и прочих чисел(отключите вашу приблуду на пару дней, при этом оставьте retracker.local и записи для bep22)

 

+ работает со всем трекерами, не зависимо от их желания;

 

isp.bep22 уже давно включен по умолчанию, retracker появляется даже в тех раздачах, где он не прописан (вот можете попробовать http://torrent.ubuntu.com/simple/precise/desktop/ubuntu-12.04.1-desktop-amd64.iso.torrent )

Share this post


Link to post
Share on other sites

и вместо того, чтобы изобретать прозрачные прокси, я уверен, надо мучать разработчиков uTorrent(остальные подтянуться) на предмет автополучения peer_policy по аналогии с bep22(один раз уже писали http://forum.utorrent.com/viewtopic.php?pid=621170#p621170 , но как видно ниже, тамошние r&d просто послали автора сообщения)

Share this post


Link to post
Share on other sites

uTorrent почти одновременно обращается к retracker-у и к самому tracker-у(с разницей в 0.15с), на ретрекере находится много сидеров, смотрю по списку пиров - бо'льшая часть трафика льётся с IP из той AS, из которой у меня IP, т.е. всё само по себе работает и не понятно зачем вообще нужна ваша софтина. В случае если у вас wirespeed-локалка, то даже несколько пиров с ретрекера сделают своё дело. Если на ретрекере меньше 50 пиров на раздаче(ограничение по умолчанию в uTorrent), то всё равно внешние пиры прибегут по DHT/PEX.

Есть приватные торренты, запрещающие клиенту DHT/PEX.

Чем дольше клиент не увидит внешние пиры, тем больше скачает с локала. А если локалка 100мегабит, то шансы не дождаться пока внешние пиры появятся и разгонятся весьма велики.

50 - это скорее дефолт трекеров, я пробовал просить больше (лост, нова, рутрекер), всё равно прилетает 50, если просить меньше, то прилетит меньше.

 

покажите это статистикой по трафику, а не статистикой пиров/торрентов и прочих чисел(отключите вашу приблуду на пару дней, при этом оставьте retracker.local и записи для bep22)

Такой возможности у меня пока нет.

 

isp.bep22 уже давно включен по умолчанию, retracker появляется даже в тех раздачах, где он не прописан (вот можете попробовать http://torrent.ubunt...d64.iso.torrent )

И в приватных торрентах?

(кажется лост, нова такие делают)

А ещё есть альтернативные клиенты, которые всякие bep не очень то и поддерживают.

 

и вместо того, чтобы изобретать прозрачные прокси, я уверен, надо мучать разработчиков uTorrent(остальные подтянуться) на предмет автополучения peer_policy по аналогии с bep22(один раз уже писали http://forum.utorren...=621170#p621170 , но как видно ниже, тамошние r&d просто послали автора сообщения)

Софтина немного из другого выросла: нужно было просто дублировать запросы на второй трекер, идея сделать её умнее пришла во время изучения протокола.

Торрент клиент не один, до всех пока достучишься...

Помню было ещё какое то расширение, которое типа умело вытягивать хмл с локальными подсетями провайдера, не знаю чем дело кончилось с внедрение этой фичи.

Share this post


Link to post
Share on other sites

Есть приватные торренты, запрещающие клиенту DHT/PEX.

 

Капля в море, можно пренебречь.

 

s.lobanov (Сегодня, 19:19) писал:

покажите это статистикой по трафику, а не статистикой пиров/торрентов и прочих чисел(отключите вашу приблуду на пару дней, при этом оставьте retracker.local и записи для bep22)

 

Такой возможности у меня пока нет.

 

У вас нет своего DNS или вы PTR-записи ваших IP не проделегированы на вас? В любом случае, это ваша проблема, к операторам не деревня-телеком 50 абонентов, это не относится

 

 

И в приватных торрентах?

(кажется лост, нова такие делают)

А ещё есть альтернативные клиенты, которые всякие bep не очень то и поддерживают.

 

опять капля в море. масса качает с рутрекера мюторрентом почти последней версии, остальными пренебрегаем

 

посмотрите клиентов на какой-нибудь популярной раздаче, бо'льшая часть это uTorrent 3.1.3 (скоро будет 3.2 ибо autoupdate)

 

я просто не вижу смысла возиться ради альтернативных клиентов, приватных раздач и прочей мелочёвки.

 

вы программист и должны знать правило относительно профилирования ПО - если вы даже оптимизируете в 100 раз код, который занимает 5% времени выполнения, то выигрыш будет... ну вы знаете. в плане оптимизации трафика тоже самое, сначала надо определить за что браться, а потом уже оптимизировать это. у вас же никакого предварительного анализа этой проблемы не видно

Share this post


Link to post
Share on other sites

Наши оценки эффективности такого алгоритма, популярности клиентов и трекеров расходятся.

Кроме принудительной регистрации на своём ретрекере торрентов с популярных трекеров можно точно также регистрировать на ретрекерах партнёров и вытаскивать пиров от туда.

В нашей деревне не все себе могут ретрекер поставить, некоторые dpi покупают и изобретают тарифы с приоритетами, у других есть свой ретрекер и менять они ничего не хотят.

Share this post


Link to post
Share on other sites

Вспомнил еще, клиенты построенные на библиотеке Rasterbar libtorrent могут с пирами обмениваться трекерами, т.к. есть расширение lt_trackers extension, to exchange trackers between peers и часто оно включено по умолчанию.

Share this post


Link to post
Share on other sites

Ivan_83

Молодец, что выставил в паблик. Мы как раз 100 Мбит в сентябре давать будем, можем потестить приблуду. Нашу ситуацию ты знаешь, что нужно для теста?

Share this post


Link to post
Share on other sites

Нашу ситуацию ты знаешь, что нужно для теста?

Сегодня выложу в паблик:

- конфиг nginx для проксирования (если не удаётся подключится куда указано то проксирует на то что указано в http_host);

- список трекеров;

- скрипты для iptables + ipset (берут список хостов из файла, резолвят все IP и загоняют во временный ipset, потом заменяют рабочий временным).

 

Вам нужно будет [поставить/настроить] nginx на проксирование до нашего адреса 94...79, и трафик к трекерам завернуть на него (nginx).

Share this post


Link to post
Share on other sites

Заворачиваются запросы к трекерам и модифицируется траф к ним/от них. Включил и траф попёр на локальные ретрекеры сам, в том числе от тех торрентов которые юзеры давно раздают.

Share this post


Link to post
Share on other sites

Я так понял у Dyr ловятся торенты, дописывается свой ретрекер и отдается клиенту, у Ivan_83 перехватываются запросы к штатным трекерам и убираются-добавляются пиры в ответы. нет ?

Share this post


Link to post
Share on other sites

у Ivan_83 перехватываются запросы к штатным трекерам и убираются-добавляются пиры в ответы. нет ?

К любым указанным.

Траф заворачивается на софтину фаерволом, так же как раньше заворачивали на прозрачные проксики весь хттп.

Дальше софтина "множит" запрос на указанные в конфиге трекеры и может сходить на тот трекер куда он был изначально (если в конфиге разрешено), пиры из всех ответов суммируются, сортируются в зависимости от предпочтений и если достаточно пиров из прописанных в конфигах подсетей то все остальные пиры клиенту не отдаются.

Думаю ещё дописать опцию, для себя, чтобы на ориг трекер уходили только start/stop эвенты, а апдейты не уходили, иногда мне не хочется рейтинг...

Share this post


Link to post
Share on other sites

А как у тебя с src ip дела обстоят? Свои ставишь или в совсем-совсем прозрачном режиме делаешь?

Share this post


Link to post
Share on other sites

На трекер идёт src ip = ip сервера с софтиной, добавляю x-real-ip (или как то так) заголовок с реальным ip клиента. Ещё в аргументах запроса ip тоже добавляется/исправляется.

Только не все трекеры это понимают.

OpenTracker собранный с опред опциями (см make от него) это понимает.

Остальные регают сервер с софтиной в кач пира, что в принципе не очень плохо когда речь идёт об оригинальных трекерах из запроса - меньше трафика со внешки к юзеру если мы отдали только "локальные" пиры.

Share this post


Link to post
Share on other sites

Есть пару вопросов.

1. Я так понял все это касается только вхлдящего торрент-трафика. На исходящий не работает?

2.Если у кого-то есть все же MRTG-графики с выключенной и включенной софтиной - просьба выложить.

Без этого неясно как оценить эффективность.

Edited by Negator

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.