На главную
На главную страницу

Lan2net Traffic Shaper - Динамическое управление загрузкой канала в различных режимах работы.

Примеры настройки Lan2net Traffic Shaper

В Lan2net Traffic Shaper реализовано уникальное для Windows систем динамическое управление загрузкой канала, построенное на принципах дифференцированного обслуживания (differentiated services). Подобный механизм применяется в решениях на базе Linux. Принцип дифференцированного обслуживания состоит в применении различного качества обслуживания (quality of services) для удовлетворения различных потребностей пользователей канала. При дифференцированном обслуживании сетевой трафик разделяется на классы, и к каждому классу применяется индивидуальное нормирование параметров трафика. Это позволяет наиболее гибко управлять загрузкой сетевого канала. Для различных групп протоколов, IP адресов и т.п. можно устанавливать приоритеты, задавать максимальную и минимальную ширину канала. В результате, это позволяет добиться того, что наиболее важные сервисы или пользователи получат максимальную ширину канала и скорость их работы с Интернет не упадет, когда трафик с более низким приоритетом будет занимать канал.

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

В общем виде, качество обслуживания характеризуется несколькими, зачастую взаимосвязанными параметрами. Наиболее очевидный ключевой параметр здесь, это - загрузка канала, то есть, с какой скоростью данные передаются по каналу. Для управления загрузкой канала применяются различные схемы (queueing disciplines) или, более простыми словами, регуляторы (throttles).

Регуляторы делятся на два типа: c разделением трафика на классы (classful) и без разделения (classless). Регуляторы без разделения трафика на классы ограничивают скорость передачи всего трафика проходящего через регулятор. Регуляторы с разделением трафика на классы разделяют проходящий через них трафик на классы, и ограничивают полосу пропускания для каждого класса индивидуально.

Рассмотрим несколько примеров.

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

Другим случаем, требующим регулирования полосы пропускания, может быть домашняя сеть. Как правило, здесь достаточно много пользователей, каждый их которых платит равную долю за использования общего канала. Однако, распределение загрузки не всегда бывает справедливым: несколько пользователей скачивающих большие объемы информации могут занять всю полосу пропускания канала и блокировать доступ в Интернет для других пользователей. В таком случае возможно использование регулятора с разделением на классы. Каждый класс соответствует одному зарегистрированному пользователю сети, а регулятор следит, чтобы через каждый класс проходила равная доля трафика.

Более сложная ситуация может выглядеть следующим образом. Общий канал доступа в Интернет используется крупной организацией с несколькими подразделениями и даже несколькими конторами-субарендаторами. Реальная потребность различных подразделений в использовании общего канала, может быть различной. Однако, зачастую несознательные сотрудники из второстепенных подразделений могут занять большую часть канала, что сильно затруднит доступ в Интернет сотрудников подразделений, для которых использование Интернет - часть их профессиональной деятельности. Для этого случая можно применить регулятор с иерархическим разделением трафика на классы. При этом каждому классу можно назначить как максимальную, так и гарантированную полосу пропускания. Гарантированная полоса пропускания обеспечит доступ в Интернет с заданной скоростью, когда канал занят. Максимальная полоса пропускания обеспечит скоростной доступ при свободном канале. Каждому классу может соответствовать как конкретный пользователь, так и целое подразделение, состоящее из пользователей. Таким образом, загрузка канала распределяется динамически по иерархии между подразделениями и сотрудниками. Программный продукт Lan2net Traffic Shaper может быть использован во всех вышеописанных ситуациях и в их комбинациях.

Типы регуляторов реализованных в Lan2net Traffic Shaper представлены в нижеследующей таблице:

Регулятор Разделение трафика на классы Описание
TBF (Token Bucket Filter) Без разделения Ограничивает полосу пропускания всего проходящего трафика до заданного значения
DRR (Deficit Round Robin) С одноуровневым разделением Равномерно распределяет загрузку канала между всем классами.
HTB (Hierarchical Token Bucket) C иерархическим разделением Динамически распределяет загрузку канала по иерархии классов. Позволяет задать гарантированную и максимальную скорости передачи данных для каждого класса.


TBF. Token Bucket Filter.


Принцип работы регулятора TBF можно описать следующей моделью: представим себе узкую дверь, через которую проходят толпы людей. Чтобы избежать давки через дверь могут проходить только люди, у которых есть жетоны (tokens). Перед дверью стоит корзина (bucket), в которую жетоны поступают с одинаковой скоростью R Объем корзины ограничен и позволяет разместить только B жетонов. Каждый человек, перед тем как пройти через дверь, берет жетон из корзины. Если жетонов в корзине нет, человек встает в очередь и ждет появления жетонов. Если жетоны есть, то человек берет один и проходит через дверь.

Очевидно, что в такой модели возможны три ситуации:

  • Люди идут реже, чем жетоны поступают в корзину.
  • Люди идут с той же скоростью, с которой жетоны поступают в корзину.
  • Люди идут чаще, чем жетоны поступают в корзину.

В первом случае в корзине всегда будет находиться некоторое количество жетонов b <= B, и каждый новый человек может взять один жетон и без задержки пройти через дверь. Второй случай аналогичен первому, за исключением того, что всегда корзина пуста, а жетон в ней появляется в тот момент, когда подходит следующий человек. В третьем случае корзина также пуста, и люди стоят в очереди, чтобы дождаться появления жетона в корзине.

Рассмотрим случай, когда люди идут не равномерно, но большими толпами, то есть, в некоторый момент людей нет, и корзина полна: в ней B жетонов. Через некоторое время появляется большая группа людей, бегущих c высокой скоростью r >> R. Первые B человек из этой группы достанут все жетоны из корзины, после чего она станет пустой, и оставшиеся люди вынуждены будут вставать в очередь и ждать появления жетонов корзине. Таким образом, размер корзины B характеризует всплески или выбросы скорости (bursts) в переходных ситуациях.

Возвращаясь к реализации регулятора TBF в Lan2net, можно резюмировать, что данный регулятор описывается двумя параметрами: Скорость передачи данных, задаваемая в килобайтах в секунду и размер выброса в байтах в секунду.



DRR. Deficit Round Robin.

Регулятор DRR использует одноуровневое разделение трафика на классы. Каждый класс характеризуется квантом информации прошедшим через него. Класс называется активным, когда на него поступает трафик. Все активные классы находятся в кольцевом списке или карусели (round-robin). В момент активизации каждому класса присваивается значение (deficit) равное кванту ( quantum) Q. При прохождении трафика через класс от этого значения отнимается количество прошедших данных. При достижении нулевой или отрицательной величины, к значению deficit вновь прибавляется квант, а регулятор начинает работать со следующим активным классом в списке. Когда трафик перестает поступать в активный класс, его значение deficit обнуляется, и класс удаляется из списка активных классов.

Таким образом, каждому классу обеспечивается доля в полосе пропускания канала равная Q/Qmin, где Qmin - минимальный размер кванта среди всех классов регулятора. Если значение кванта для всех классов одинаково, то распределение трафика между всеми активными классами будет также одинаково. Следует также заметить, что не следует задавать значение кванта меньше значения MTU (Maximum Transmit Unit) сетевого адаптера. Для адаптеров Ethernet стандартное значение MTU равно 1500.

HTB. Hierarchical Token Bucket.

Идея регулятора HTB и его реализация под Linux принадлежит Мартину Девере (Martin Devera aka devik). Реализация регулятора HTB в Lan2net выполнена с его разрешения. Регулятор HTB обладает иерархической структурой распределения полосы пропускания. Пример подобной структуры показан на рисунке ниже.

Как видно, канал распределяется сначала между подразделениями, а потом между сотрудниками. Число уровней в иерархии теоретически неограниченно. Текущая реализация HTB в Lan2net позволяет создавать до 4 уровней в иерархии, что достаточно для подавляющего большинства применений.

Весь трафик, проходящий через канал, классифицируется и попадает в классы-листья дерева, описывающего иерархическую структуру регулятора. Внутренние классы дерева ответственны за распределение "излишков" полосы пропускания. Например, как видно из рисунка, класс "Рядовые сотрудники" имеет право использовать всю полосу пропускания канала при свободном канале, однако, если каналом пользуется только один сотрудник Иванов, то он может получить до 200Кб/с. Но если другие рядовые сотрудники также потребляют трафик, и их суммарное потребление достигает полосы, выделенной их родительскому классу, доля каждого сотрудника снизится до 10Кб/c.

В свою очередь, корневой класс, представляющий собой весь канал, распределяет трафик между классами-потомками, в соответствии с их настройками.

Таким образом, каждый класс описывается двумя параметрами: "Максимальная Скорость" (ceil rate) и "Гарантированная Скорость" (rate). Максимальная скорость ограничивает величину полосы пропускания, которую нижерасположенный класс может "занять" у класса-предка. Это необходимо, например, в случае субаренды канала, когда субарендатор платит только за часть полосы канала, и нет смысла выделять ему больше даже при свободном канале.

Также для каждого класса можно задать приоритет (от 0 -высший, до 7 - низший). Приоритет определяет, кому класс-предок распределит излишки полосы пропускания в первую очередь.

Кроме вышеуказанных параметров, класс обладает параметрами "Выбросы" и "Максимальные выбросы" их смысл и назначение такое же, как у регулятора TBF. Параметр "Выбросы" используется, когда трафик, проходящий через класс, не превышает гарантированной полосы пропускания. Если же классу выделен излишек полосы пропускания классом-предком, то используется параметр "Максимальные выбросы". Отдельное внимание следует обратить на параметр "Квант". Его смысл такой же, как и у одноименного параметра в классах регулятора DRR, однако в HTB этот параметр зависит от другого параметра "Гарантированная Скорость". В общем виде, значение кванта должно быть пропорционально скорости, но при этом размер кванта не должен быть меньше величины MTU адаптера, и не должен быть слишком большим (для практических применений < 20000). Таким образом, для регулятора HTB введен общий для всех классов параметр "Коэффициент Скорость/Квант". Если параметр "Квант" класса установлен в ноль, то используется расчетное значение кванта, вычисляемое по следующей формуле: "Квант" = "Гарантированная Скорость" * 1024 / "Коэффициент Скорость/Квант". Ненулевое значение кванта установленное в классе, используется непосредственно, без применения расчетной формулы.

Сколько нас?

Более 1 000 000 компьютеров по всей России находятся под защитой Lan2net NAT Firewall.

Присоединяйся »

Рекомендации

"Корпорация Microsoft рекомендует своим клиентам обращаться к партнерам со статусом Microsoft Small Business Specialist, которые знают специфику и потребности небольших компьютерных сетей."

Lan2net NAT Firewall - Microsoft Small Business Specialist
Скачать   |    Купить   |    Поддержка   |    О компании   |    Обратная связь