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