Описание работы программы BSB


Общее описание

BSB - это служба

Запуск и остановка

Ограничение
   скорости
   трафика
   соединений

Журналы

Важные замечания




О программе

Новое в программе

Описание работы

Настройка

Клиентская часть

Коды ошибок

Скачать




Общее описание

   Band Speed Balancer работает по принципу прокси-сервера, но не кэширующего, поэтому c ним необходимо использовать любой другой любимый прокси-сервер, который работает по протоколу HTTP. Программа BSB для этого прокси-сервера будет выглядеть как очень активный клиент, делающий HTTP-запросы. Версия 1.6 BSB не может работать без прокси-сервера следующего уровня, в следующей версии такая возможность будет добавлена.

   Браузеры пользователей надо настраивать на использование одного и того же прокси-сервера по всем протоколам, указав тот же порт, что и в файле конфигурации в параметре ListenPort.

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

Вся последовательность работы выглядит так:
1. Браузер устанавливает соединение с BSB, как с прокси-сервером;
2. Если число соединений с данного IP-адреса уже максимально, то соединение разрывается
3. BSB устанавливается соединение с прокси-сервером следующего уровня;

4. Браузер посылает HTTP-запрос
5. BSB принимает этот запрос, выделяет из него HTTP-заголовок, а весь HTTP-запрос пересылает прокси-серверу следующего уровня;
6. BSB принимает данные от этого прокси-сервера и пересылает их все браузеру, подсчитывая объём данных и регулируя скорость их выдачи клиенту;

7. Когда браузер или прокси-сервер закрывают соединение, BSB записывает заголовок HTTP-запроса и объем данных, переданных для него, в файл журнала "Номер порта.log" и закрывает соответствующие соединения с браузером или прокси-сервером.


Инсталляция и деинсталляция BSB как службы

   Band Speed Balancer может работать как служба или как обычное консольное приложение Win32. Процедура инсталляции/деинсталляции BSB как службы одинакова для Windows NT4/2000 и Windows 98/ME.

   Чтобы установить BSB как службу, которая будет запускаться автоматически при каждом старте системы до логона пользователя, необходимо выполнить команду BSB -i или BSB -install. Если инсталляция выполнена успешно, то BSB выведет сообщение

Trying to install BSB as service
Service 'BSBService' installed successfully.
It will automatically start during system boot.
Or it can be started manually right now

Если инсталляция службы не удалась, то в журнале bsb.log можно прочитать о типе ошибки.

   После инсталляции BSB в списке служб системы будет называться "BSBService".

   Когда возникнет необходимости деинсталировать службу BSB, просто выполните команду BSB -u или BSB -uninstall. При успешной деинсталляции BSB выведет сообщение

Trying to uninstall BSB from services list
Service 'BSBService' removeded successfully.

В случае неудачной деинсталляции информацию об ошибках можно прочитать в журнале bsb.log. Перед деинсталляцией службы "BSBService" рекомендуется её остановить.


Запуск и остановка BSB

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

   Запуск BSB в качестве обычного консольного приложения Win32 выполняется командой BSB -d. Если в файле bsb.cfg задана некорректная конфигурация, программа BSB завершиться сразу же после запуска, а ошибки можно посмотреть в журнале bsb.log. Поэтому запускать BSB в качестве простого консольного приложения рекомендуется после серьезного изменения конфигурации для проверки на ошибки. Выйти из консольного приложения BSB можно, нажав Ctrl+Break или Ctrl+C или щелкнув на X в правом верхнем углу окна. Когда все ошибки в файле конфигурации устранены, то лучше установить BSB как службу с именем "BSBService", чтобы она автоматически запускалась при загрузке системы и работала до завершения её работы. Служба "BSBService" запускается и останавливается по разному в Windows NT4/2000 и в Windows 98/ME

Windows NT4/2000

   После инсталляции службы "BSBService", она автоматически начинает работу при старте системы, однако можно стандартными средствами системы перевести её в режим запуска вручную или вообще отключить. Команды net start BSBService и net stop BSBService соответственно запускают и останавливают службу, также эту процедуру можно выполнять с помощью любых специализированных приложений, позволяющих работать со службами. Внимание! Если попытаться просто запустить файл BSB.EXE без параметров, то он работать не будет, т.к. он должен запускаться Диспетчером Управления Службами системы.

   Остановить службу "BSBService" можно, выполнив команду BSB -s. В этом случае просто программа сама вызывает выполнение тойже команды net stop BSBService.

Windows 98/ME

   Аналогичным образом, после установки службы "BSBService", она автоматически начинает работу при старте системы ещё до ввода пользователем своего имени и пароля. Но при этом видно как выскакивает и тут же скрывается консольное окно программы BSB. Остановить службу можно командой BSB -s, а чтобы его снова запустить достаточно просто выполнить файл BSB.EXE без параметров.

   При любом из способов запуска программы BSB (как служба или как консольное приложение) всю работу и ошибки в работе программы после запуска можно увидеть только в файле журнала bsb.log


Автоматическое ограничение скорости скачивания больших файлов

   Основная идея состоит в том, что если запрошенный пользователем файл загрузился менее, чем за LimitTime секунд, то на него не накладывается никаких скоростных ограничений. Если это значение составляет 15-30 секунд, то большинство текстовых страничек и мелких картинок успевает загрузиться обычным образом. Но большие файлы по 100 и более килобайт, скорее всего, не успеют этого сделать, и по таким соединениям по истечении периода LimitTime BSB начинает выдавать клиенту только DefaultSpeedLimit или другое, указанное в секции [IP], количество байт в секунду. В результате поток данных по такому соединению уменьшается и канал в интернет освобождается для других потоков данных.

   Но когда к BSB подключены меньше, чем ConnectionsCount компьютеров одновременно, то указанные выше ограничения на передачу данных клиенту не применяются и по соединению передается TotalSpeed байт в секунду. Также можно задать через параметр SpeedLimitHours один или несколько интервалов времени, в которых ограничения по скорости будут выполняться, а вне указанных интервалов никаких ограничений по скорости не применяется, как будто BSB не используется (но при этом остается работать ограничение по недельному трафику и числу одновременных соединений). Есть возможность для некоторых IP-адресов вообще отключить постоянное ограничение скорости и установить балансирующий лимит - это полезно, например, для RAS-подключений, когда и так уже есть ограничитель - телефонная линия, дающая в обычном случае от 2500  до 5000 байт/с. При балансирующем ограничении текущий лимит скорости зависит от числа подключенных к BSB компьютеров в данный момент времени. Значение TotalSpeed делится на это число и полученное ограничение для скорости используется в течение следующих нескольких  секунд, после чего снова вычисляется новый лимит скорости. Минимальное значение для лимита скорости равно 100 байт в секунду, меньше этого значения скорость для IP-адреса не ограничивается.


Ограничение на недельный объём считываемых данных

Так как BSB имеет полную информацию с точностью до байта о количестве передаваемой клиенту от сервера информации, то он записывает её в файл bsb.ibt в двоичном виде каждую минуту и дублирует её в текстовый файл, указанный в параметре IPSizeLog.

   Возможность ограничения объёма введена для тех случаев, когда каждый скачанный мегабайт стоит энную сумму в рублях. Поэтому можно разрешить пользователям скачивать, скажем, 15-20 мегабайт в неделю и, тем самым, уменьшить общий входящий трафик процентов на 20-60, сэкономив при этом, некоторую сумму денег. В программе BSB неделя заканчивается в полночь между субботой и воскресеньем.

   Если же нет проблемы с финансированием вашего интернета, то в параметре DefaultSizeLimit или в секции [IP] можно указать 0 для отмены ограничения по объему или указать достаточно большое число, что бы аппетиты пользователей были всё же в разумных пределах.

   А чтобы пользователь мог следить, сколько он уже накачал и сколько у него осталось от лимита, в дополнение к BSB создана клиентская программа "BSB Client Informer", которую надо запускать на компьютере пользователя, а параметр AdminPort, когда имеет значение отличное от нуля, задает порт по которому программа BSB ответит на запросы клиента, либо по HTTP запросу вида, например: http://our_proxy_server:3131/, либо на запросы программы "BSB Client Informer"


Ограничение на число одновременных подключений

   Данная возможность косвенно позволяет также уменьшить загруженность канала, но особенна полезна, когда сам провайдер ограничивает число возможных подключений от вас. Для её активизации необходимо установить глобальный параметр MaxConnections или, указать в секции [IP] ограничение для конкретного IP-адреса. Например, один процесс браузера IE 5.x создает не более 4-х соединений для скачивания документов, графики и прочего, т.о. установив ограничение в 4 соединения, можно сильно усложнить процесс гуляния по интернету любителям делать это одновременно из десятка окошек и нескольких запущенных процессов IE. А для достойных можно всегда снять всякое ограничение на число соединений :-)

   Особо надо отметить, что те соединения, которые устанавливает "BSB Client Informer" для запроса статистики не учитываются при ограничении, т.к. не создают дополнительную загрузку входящего трафика.


Журналы программы BSB

   BSB всю историю своей внутренней работы записывает в журнал bsb.log, который при достижении размера 8 мегабайта переименовывается в bsb.log.old.

   Все HTTP-запросы компьютеров регистрируются в файлах журнала "Номер порта.log", где номер порта соответствует значению ListenPort. В принципе, используя информацию из этого журнала, можно точно узнать, когда и откуда такой-то компьютер скачал такой-то файл. Запросы о статистике с компьютеров пользователей протоколируются в файле журнала "Другой номер порта.log", где другой номер порта соответствует значению AdminPort. Оба этих журнала переименовываются каждую неделю в *.*.lastweek, и создаются новые файлы журналов.

   При работе службой в Windows 98/ME программа создает файл ss9x.log, где записываются некоторые моменты работы функций ответственных за работу BSB в качестве службы.


Дополнительная информация

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

   При остановке службы "BSBService" под Windows NT4/2000 системы выдает сообщение об ошибке, оно разное на этих системах, но при этом программа BSB нормально завершается и освобождает память и порты, после чего без проблем её можно снова стартануть.

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







Вверх