3proxy/src/plugins/TrafficPlugin
2019-09-03 20:46:47 +03:00
..
Changelog.txt initial import to git 2014-04-08 13:03:21 +04:00
Makefile initial import to git 2014-04-08 13:03:21 +04:00
Makefile.inc initial import to git 2014-04-08 13:03:21 +04:00
ReadMe.txt initial import to git 2014-04-08 13:03:21 +04:00
TrafficPlugin.c rename memory functions in pluginlink 2019-09-03 20:46:47 +03:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

========================================================================
   	3proxy traffic plugin
========================================================================
Как известно 3proxy считает траффик не сетевой, а прикладной.
Обычно прикладной траффик немного меньше (примерно на 10%) чем сетевой,
однако в некоторых случаях, например когда пользователи сети играют в
игры, сетевой траффик может превысить прикладной в 4-5 раз. Это довольно неприятно,
так как получается, что они за это не платят.

Происходит это потому, что в каждом посланом пакете есть заголовок+данные. Заголовок
весит порядка 50-60 байт а колличество данных может меняться от 15-20 байт (что характерно для игр)
до 800-900 байт (у IE). Также колличество данных в пакете зависит от загрузки сети,
удалённости сервера и прочих причин.

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

Как использовать плагин:

загрузка плагина:
plugin "TrafficPlugin.dll" start

Далее недоходимо добавить правила:
ДЛЯ РЕЖИМА ДОМНОЖЕНИЯ ТРАФФИКА НА ЧИСЛО:
trafcorrect m <сервис> <исходящий порт> <коэффициент>
где: <сервис> может быть proxy, socks4, socks45, socks5, tcppm, udppm, pop3p
           если сервис указан неверно то считается, что это может быть любой сервис.
	   можно использовать *, тогда правило будет считаться для любого сервиса.
     <исходящий порт> - порт, к которому подключается прокси сервер. * - любой
	 <коэффициент> - число на каоторое домнажается траффик. Обязательный параметр.
	 Должен быть от больше 0 и меньше 100

ДЛЯ РЕЖИМА С УЧЁТОМ РАЗМЕРА ЗАГОЛОВКОВ ПАКЕТОВ:
trafcorrect p <сервис> <tcp/udp> <исходящий порт> [размер пустого пакета]
	 <tcp/udp> - протокол, по которому осуществляется соединение.
	 [размер пакета] - средний размер пустого пакета. Можно определить захватив
данные при помощи такой утилиты как Ethernal. Параметр необязателен. Если отсутствует,
то размер пакета будет считаться равным 66 байт.

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

Пример:
plugin "TrafficPlugin.dll" start
trafcorrect m socks5 6112 4.5
trafcorrect m socks5 * 1.1

следующее неверно:
plugin "TrafficPlugin.dll" start
trafcorrect m socks5 * 1.1
trafcorrect m socks5 6112 4.5
Вторая строчка выполнена никогда не будет. Так как 1 имеет более широкое назначение.

РЕЖИМ ОТЛАДКИ ПРАВИЛ:
1. Запускает прокси в оконном режиме (чтобы видеть stdout).
2. Загрузка плагина должна выглядеть сл. образом:
plugin "TrafficPlugin.dll" start debug
3. В окне прокси сервера будет написана информация о прохождении правил коррекции траффика.
Правила нумеруются с 1.

/////////////////////////////////////////////////////////////////////////////
Copyright:
 (c) Maslov Michael aka Flexx(rus) All rights reserved.
 Plugin was writen on Visual C++ 6.0 SP5
 Using structures.h from 3proxy distr.