Что такое шейпер трафик

Зачем нужно ограничение интернет-трафика?

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Для этого применяется ограничитель скорости интернета, она же программа ограничения трафика.

Что такое «шейпер» и как он помогает бизнесу

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

Шейперы ограничивают скорость по пользователям и их группам, управляют приоритетом сетевых соединений, давая нужную пропускную полосу канала важным службам и обеспечивают гибкую настройку скорости. Например, в группе выделенная полоса будет динамически распределяться между активными пользователями. Однако при этом каждому сотруднику можно назначить индивидуальные ограничения.

Программа для ограничения скорости интернета регулирует и количество пакетов, получаемых в секунду, и одновременно открытых соединений (сессий). Еще с ее помощью можно запретить многопоточную закачку через прокси-сервер, чтобы пользователи не увлекались скачиванием «тяжелого» внешнего или внутреннего контента. А еще такое ограничение помогает остановить вирусную атаку.

При этом система правил позволяет выставить точные приоритеты: например, высокие для трафика IP-телефонии или пониже для мультимедиа-файлов, чтобы не мешать работе важных сетевых служб. А учитывать трафик можно по множеству показателей: входящему, исходящему, сумме входящего и исходящего и максимальному значению от входящего и исходящего. Также доступны тарификация трафика, работа пользователя/клиента в кредит, изменение тарифов задним числом, формирование отчетов, групповых счетов и многое другое. Текущий статус клиента со всеми его параметрами тарификации отображается в реальном времени.

Шейпер в решении «Смарт-Софт»

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Источник

Трафик Шейпер (Traffic Shaper) – Очереди и формирование трафика в pfSense

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Задача:

Настроить приоритезацию, ограничение трафика в локальной сети с маршрутизатором pfSense

И так, речь пойдёт о ALTQ – это альтернативная платформа для организации очередей в системах BSD и интегрированная в пакетный фильтр PF. ALTQ ставит пакеты в очереди, тем самым управляя пропускной способностью и при помощи планировщиков определяет, какие пакеты будут задержаны, какие отброшены, а какие сразу переданы. В PfSense основанной на системе FreeBSD, есть три планировщика:

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

PRIQ (Priority Queueing) – у очереди не бывает дочерних очередей. Каждая очередь имеет свой уникальный приоритет, в пределах от 0 до 15. Пакеты с высшим номером имеют высший приоритет и обслуживаются быстрее чем пакеты соответствующие низкому приоритету.

HFSC (Hierarchical Fair Service Curve) – родительской очередью определяется суммарная пропускная способность в битах для всех дочерних очередей интерфейса. Указывается общая ширина канала, предоставляемая провайдером и не зависящая от скорости сетевого интерфейса. HFSC позволяет создавать очереди с гарантированными минимальными и максимальными лимитами полосы пропускания. Приоритеты можно установить от 0 до 7.

CBQ (Class Based Queueing) – присоединённые к интерфейсу очереди, создают дерево таким образом, что у каждой очереди может быть дальнейшие дочерние очереди со своими приоритетами и пропускной способностью. Приоритеты, главным образом, управляются временем отправки пакетов. За счёт этого регулируется пропускная способность. Приоритеты можно установить от 0 до 7.

Настройка Traffic Shaper производится в меню Firewall > Traffic Shaper. При открытии видим несколько вкладок:

Настраиваем Traffic Shaper на примере Multiple Lan/Wan (traffic_shaper_wizard_multi_all.xml):

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Указываем количество WAN и LAN интерфейсов. В нашем случае по одному.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

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

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Указываем какими видами очередей мы будем использоваться на интерфейсах (Оставим по-умолчанию PRIQ), а также укажем нашу скорость интернета

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

В данном примере мы не будем использовать телефонию, поэтому VoIP оставляем выключенным

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Тут мы можем указать алиас фаервола или ip адрес компьютера или устройства, который мы хотим понизить в приоритете. например у вас есть FTP- сервер доступный из интернета. Чтобы он при активности не блокировал работу локальной сети, можно сделать соответствующую настройку. Это может быть полезно, но у нас нет необходимости в данный момент. Можете пропустить это окно нажав кнопку Next

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Peer to Peer (P2P) Networking позволяет понизить приоритет и урезать весь трафик P2P, или любой из популярных P2P сетей. Если мы активируем “p2pCatchAll”, тогда весь классифицированный трафик подадет в очередь p2p. Мы продолжим нажав Next.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Network Games позволяет формировать трафик для сетевых игр. Можно выбрать определённею игру или игровую платформу из списка популярных. Нажмите Next для продолжения

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Raise or lower other Applications, позволяет формировать другие виды трафика. Настроим приоритет трафика для MSDRP (Удалённый рабочий стол) и VNC в значение высокого приоритета (Higher priority). Нажмём далее для продолжения

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Нажимаем Finish для применения новых настроек.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Проделанные настройки можно увидеть во вкладке “By Interface” или “By Queue”

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Проверить работу можно командой

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Или посмотреть в веб-интерфейсе: Status > Queues

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Если настраивали ограничения во вкладке “Limiter” Посмотреть можно командой

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

или через главное меню: “Diagnostics > Limiter Info”

Источник

Ограничение скорости передачи трафика. Policer или shaper, что использовать в сети?

Автор
Сергей Калашников, CCIE

Технический директор

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Когда речь заходит об ограничении пропускной способности на сетевом оборудовании, в первую очередь в голову приходят две технологи: policer и shaper. Policer ограничивает скорость за счёт отбрасывания «лишних» пакетов, которые приводят к превышению заданной скорости. Shaper пытается сгладить скорость до нужного значения путём буферизации пакетов. Данную статью я решил написать после прочтения заметки в блоге Ивана Пепельняка (Ivan Pepelnjak). В ней в очередной раз поднимался вопрос: что лучше – policer или shaper. И как часто бывает с такими вопросами, ответ на него: всё зависит от ситуации, так как у каждой из технологий есть свои плюсы и минусы. Я решил разобраться с этим чуточку подробнее, путём проведения нехитрых экспериментов. Полученные результаты подкатом.

И так, начнём с общей картинки разницы между policer и shaper.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Как видно, policer срезает все пики, shaper же делает сглаживание нашего трафика. Достаточно неплохое сравнение между policer и shaper можно найти здесь.

Обе технологии в своей основе используют механизм токенов (token). В этом механизме присутвует виртуальное ограниченное по размеру ведро (token bucket), в которое с некой регулярностью поступают токены. Токен, как проездной, расходуется для передачи пакетов. Если токенов в ведре нет, то пакет отбрасывается (могут выполняться и другие действия). Таким образом, мы получаем постоянную скорость передачи трафика, так как токены поступают в ведро в соответствии с заданной скоростью.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

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

Механизм токенов позволяет обеспечить гибкость в настройке ограничения скорости. Размер ведра влияет на то, как мы будем усреднять нашу скорость. Если ведро большое (т.е. токенов там может скопиться много), мы позволим трафику сильнее «выпрыгивать» за отведенные ограничения в определённые моменты времени (эквивалент усреднения на большем промежутке времени). Если размер ведра маленький, то трафик будет более равномерный, крайне редко превышая заданный порог (эквивалент усреднения на маленьком промежутке времени).

В случае policer’а наполнение ведра происходит каждый раз, когда приходит новый пакет. Количество токенов, которые загружаются в ведро, зависит от заданной скорости policer’а и времени, прошедшего с момента поступления последнего пакета. Если токенов в ведре нет, policer может отбросить пакеты или, например, перемаркировать их (назначить новые значения DSCP или IPP). В случае shaper’а наполнение ведра происходит через равные промежутки времени независимо от прихода пакетов. Если токенов не хватает, пакеты попадают в специальную очередь, где ждут появления токенов. За счёт этого имеем сглаживание. Но если пакетов приходит слишком много, очередь shaper’а в конечном счёте переполняется и пакеты начинают отбрасываться. Стоит отметить, что приведённое описание является упрощённым, так как и policer и shaper имеют вариации (детальный разбор данных технологий займёт объём отдельной статьи).

Эксперимент

А как это выглядит на практике? Для этого соберём тестовый стенд и проведём следующий эксперимент. Наш стенд будет включать устройство, которое поддерживает технологии policer и shaper (в моём случае – это Cisco ISR 4000; подойдёт устройство любого вендора аппаратное или программное, которое поддерживает данные технологии), генератор трафика iPerf и анализатор трафика Wireshark.

Сначала посмотрим на работу policer. Настроим ограничение скорости равным 20 Мбит/с.

Используем автоматически выставляемое значение размера ведра токенов (token bucket). Для нашей скорости – это 625 000 байт.

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

Средняя скорость составила 17.1 Мбит/с. Каждая сессия получила разную пропускную способность. Обусловлено это тем, что настроенный в нашем случае policer не различает потоки и отбрасывает любые пакеты, которые превышают заданное значение скорости.

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

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Чёрная линия показывают суммарный трафик. Разноцветные линии – трафик каждого потока TCP. Прежде чем делать какие-то выводы и углубляться в вопрос, давайте посмотрим, что у нас получится, если policer заменить на shaper.

Настроим shaper на ограничение скорости 20 Мбит/с.

При настройке используем автоматическое выставляемое значение размера ведра токенов BC и BE равное 8000. Но меняем размер очереди с 83 (по умолчанию в версии IOS XE 15.6(1)S2) на 200. Сделано это сознательно, чтобы получить более чёткую картину, характерную для shaper’а. На этом вопросе мы остановимся более подробно в подкате «Влияет ли глубина очереди на нашу сессию?».

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

Средняя скорость составила 19.3 Мбит/с. При этом каждый поток TCP получил примерно одинаковую пропускную способность.

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

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Чёрная линия показывают суммарный трафик. Разноцветные линии – трафик каждого потока TCP.

Сделаем первые промежуточные выводы:

Посмотрим более детально на поведение TCP сессии в случае работы policer и shaper. Благо, в Wireshark достаточно инструментов, чтобы сделать такой анализ.

Начнём c графиков, на которых отображаются пакеты с привязкой ко времени их передачи. Первый график – policer’а, второй – shaper’а.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Из графиков видно, что пакеты в случае shaper передаются более равномерно по времени. При этом в случае policer видны скачкообразные разгоны сессии и периоды пауз.

Анализ TCP сессии при работе policer

Посмотрим поближе на сессию TCP. Будем рассматривать случай policer’а.

Протокол TCP в своей работе опирается на достаточно большой набор алгоритмов. Среди них для нас наиболее интересными являются алгоритмы, отвечающие за управление перегрузками (congestion control). Именно они отвечают за скорость передачи данных в рамках сессии. ПК, на котором запускался iPerf, работает под управлением Windows 10. В Windows 10 в качестве такого алгоритма используется Compound TCP (CTCP). CTCP в своей работе позаимствовал достаточно многое из алгоритма TCP Reno. Поэтому при анализе TCP сессии достаточно удобно посматривать на картинку с состояниями сессии при работе алгоритма TCP Reno.

На следующей картинке представлен начальный сегмент передачи данных.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Чтобы посмотреть параметры TCP, можно воспользоваться PowerShell.

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

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Далее выполняем запрос «Get-NetTCPSetting Internet» и ищем значение величины InitialCongestionWindow(MSS).

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Значение awnd можно найти в пакетах ACK, пришедших от получателя:

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

В режиме TCP slow-start размер окна (cwnd) увеличивается каждый раз при получении ACK. При этом оно не может превысить значение awnd. За счёт такого поведения, мы имеем практически экспоненциальный рост количества передаваемых пакетов. Наша TCP сессия разгоняется достаточно агрессивно.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Policer никак не препятствует разгону сессии. Токенов в ведре много (при инициализации policer’а ведро заполнено токенами полностью). Для скорости 20 Мбит/с размер ведра по умолчанию выставляется равным 625000 байт. Таким образом, сессия разгоняется в момент времени практически до 18 Мбит/с (а мы помним, что у нас таких сессий четыре). Размер окна cwnd достигает максимального значения и становится равным awnd, а значит, cwnd = ssthersh.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

После получения трёх Dup ACK наша TCP сессия переходит в фазу восстановления после потери (loss recovery, включающую алгоритмы Fast Retransmit/Fast Recovery). Отправитель устанавливает новое значение ssthresh = cwnd/2 (32K) и делает окно cwnd = ssthresh+3*MSS.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Как только было отправлено количество пакетов, укладывающихся в окно cwnd, система останавливается. Для продолжения передачи данных ей нужны новые ACK (не Dup ACK). Но ACK не приходят. Все повторные пакеты отбрасываются policer’ом, так в ведре закончились токены, а времени, чтобы их восполнить, прошло слишком мало.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Так как в течение некоторого времени система ничего не передавала, в нашем ведре успели накопиться токены. Поэтому в конечном итоге пакет доходит до получателя. А значит, мы получим новое ACK. С этого момента система начинает передать потерянные ранее пакеты в режиме slow-start. Происходит разгон сессии. Как только размер окна cwnd превышает значение ssthresh, сессия переходит в режим congestion avoidance.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

TCP сессия при работе policer выглядит как лестница (идёт фаза передачи, за которой следует пауза).

Анализ TCP сессии при работе shaper

Теперь давайте посмотрим поближе на сегмент передачи данных для случая shaper. Для наглядности возьмём аналогичный масштаб, как и для графика policer на Рис.6.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Из графика мы видим всё ту же лесенку. Но размер ступенек стал существенно меньше. Однако если приглядеться к графику на Рис. 10, мы не увидим небольших «волн» на конце каждой ступеньки, как это было на Рис. 9. Такие «волны» были следствием потери пакетов и попыток их передачи заново.

Рассмотрим начальный сегмент передачи данных для случая shaper.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Через некоторое время окно cwnd достигает значения awnd. Но к этому моменту у нас накапливается достаточно ощутимая задержка из-за наличия очереди. В конечном итоге при достижении определённого значения RTT наступает равновесное состояние, когда скорость сессии больше не меняется и достигает максимального значения для данного RTT. В моём примере среднее RTT равно 107 мс, awnd=64512 байт, следовательно, максимальная скорость сессии будет соответствовать awnd/RTT= 4.82 Мбит/с. Примерно такое значение нам и выдал iPerf при измерениях.

Но откуда берутся ярко выраженные паузы в передаче? Давайте посмотрим на график передачи пакетов через устройство с shaper в случае, если у нас всего одна TCP сессия (Рис.12). Напомню, что в нашем эксперименте передача данных происходит в рамках четырёх TCP сессий.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

На этом графике очень хорошо видно, что нет никаких пауз. Из этого можно сделать вывод, что паузы на Рис.10 и 11 обусловлены тем, что у нас одновременно передаётся четыре потока, а очередь в shaper одна (тип очереди FIFO).

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

На Рис.13 представлено расположение пакетов разных сессий в очереди FIFO. Так как пакеты передаются пачками, они будут располагаться в очереди таким же образом. В связи с этим задержка между поступлением пакетов на приёмной стороне будет двух типов: T1 и T2 (где T2 существенно превосходит T1). Общее значение RTT для всех пакетов будет одинаковым, но пакеты будут приходить пачками, разнесёнными по времени на значение T2. Вот и получаются паузы, так как в момент времени T2 никакие ACK к отправителю не приходят, при этом окно сессии остаётся неизменным (имеет максимальное значение равное awnd).

Логично предположить, что, если заменить одну общую очередь FIFO на несколько для каждой сессии, никаких ярко выраженных пауз не будет. Для такой задачи нам подойдёт, например, очередь типа Weighted Fair Queuing (WFQ). В ней для каждой сессии создаётся своя очередь пакетов.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

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

А вот и наш график распределения пакетов по времени передачи ровно в том же масштабе, что и на Рис. 11. Никаких пауз нет.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Стоит отметить, что очередь типа WFQ позволит нам получить не только более равномерное распределение пропускной способности, но и предотвратить «забивание» одного типа трафика другим. Мы всё время говорили про TCP, но в сети также присутствует и UDP трафик. UDP не имеет механизмов подстройки скорости передачи (flow control, congestion control). Из-за этого UDP трафик может с лёгкостью забить нашу общую очередь FIFO в shaper’е, что драматически повлияет на передачу TCP. Напомню, что, когда очередь FIFO полностью заполнена пакетами, по умолчанию начинает работать механизм tail-drop, при котором отбрасываются все вновь пришедшие пакеты. Если у нас настроена очередь WFQ, каждая сессия пережидает момент буферизации в своей очереди, а значит, сессии TCP будут отделены от сессий UDP.

Самый главный вывод, который можно сделать после анализов графиков передачи пакетов при работе shaper’а – у нас нет потерянных пакетов. Из-за увеличения RTT скорость сессии адаптируется к скорости shaper’а.

Конечно! Изначально (если кто-то об этом ещё помнит) мы изменили глубину очереди с 83 (значение по умолчанию) на 200 пакетов. Сделали мы это для того, чтобы очереди хватило для получения достаточного значения RTT, при котором суммарная скорость сессий становиться примерно равна 20 Мбит/с. А значит, пакеты «не вываливаются» из очереди shaper’а.

При глубине в 83 пакета очередь переполняется быстрее, нежели достигается нужное значение RTT. Пакеты отбрасываются. Особенно ярко это проявляется на начальном этапе, когда у нас работает механизм TCP slow-start (сессия разгоняется максимально агрессивно). Стоит отметить, что количество отброшенных пакетов несравнимо меньше, чем в случае с policer, так как увеличение RTT приводит к тому, что скорость сессии растёт более плавно. Как мы помним, в алгоритме CTCP размер окна в том числе зависит от значения RTT.

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Графики утилизации пропускной способности и задержки при работе policer и shaper

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

График утилизации пропускной способности:

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

В случае policer мы видим скачкообразный график: сессия разгоняется, потом наступают потери, и её скорость падает. После чего всё повторяется снова. В случае shaper наша сессия получает примерно одинаковую пропускную способность на протяжении всей передачи. Скорость сессии регулируется за счёт увеличения значения RTT. На обоих графиках вначале можно наблюдать взрывной рост. Он обусловлен тем, что наши вёдра изначально полностью заполнены токенами и TCP-сессия, ничем не сдерживаемая, разгоняется до относительно больших значений (в случае shaper это значение в 2 раза меньше).

График задержки RTT для policer и shaper (по-хорошему, это первое о чём мы вспоминаем, когда говорим про shaper):

Что такое шейпер трафик. Смотреть фото Что такое шейпер трафик. Смотреть картинку Что такое шейпер трафик. Картинка про Что такое шейпер трафик. Фото Что такое шейпер трафик

В случае policer (первый график) задержка RTT для большинства пакетов минимальна, порядка 5 мс. На графике также присутствуют существенные скачки (до 340 мс). Это как раз моменты, когда пакеты отбрасывались и передавались заново. Тут стоит отметить, как Wireshark считает RTT для TCP трафика. RTT – это время между отправкой оригинального пакета и получением на него ACK. В связи с этим, если оригинальный пакет был потерян и система передавала пакет повторно, значение RTT растёт, так как точкой отсчёта является в любом случае момент отправки оригинального пакета.

В случае shaper задержка RTT для большинства пакетов составила 107 мс, так как они все задерживаются в очереди. Есть пики до 190 мс.

Выводы

Итак, какие итоговые выводы можно сделать. Кто-то может заметить, что это и так понятно. Но наша цель была копнуть чуточку глубже. Напомню, что в эксперименте анализировалось поведение TCP-сессий.

При работе shaper’а потерь пакетов практически нет (конечно, это зависит от ситуации и глубины очереди). При работе policer’а мы имеем существенные потери пакетов – 12.7%.

Если policer настроен ближе к получателю, наша сеть фактически занимается прокачкой бесполезного трафика, который будет в итоге отброшен policer’ом. Например, в разрезе глобальной сети интернет это может является проблемой, так как трафик режется зачастую ближе к получателю.

В случае shaper’а у нас появляется задержка (в нашем эксперименте – это дополнительные 102 мс). Если трафик примерно одинаков, без существенных всплесков, очередь shaper’а находится в относительно стабильном состоянии и больших вариаций в задержке (jitter) не будет. Если трафик будет иметь взрывной характер, мы можем получить повышенное значение jitter.

Вообще наличие очереди может достаточно негативно сказываться на работе приложений – так называемый эффект излишней сетевой буферизации (Bufferbloat). Поэтому с глубиной очереди надо быть аккуратными.

Можно отметить ещё один факт, хоть и не относящийся непосредственно к задаче ограничения скорости. Shaper позволяет нам настраивать различные типы очередей (FIFO, WFQ и пр.), обеспечивая тем самым разнообразные уровни приоритезации трафика при его отправке через устройство. Это очень удобно в случаях, если фактическая скорость передачи трафика отличается от канальной (например, так часто бывает с выходом в интернет или WAN каналами).

В этом году при поддержке Google было проведено исследование, в котором анализировался негативный эффект работы policer’а в сети интернет. Было определено, что от 2% до 7% потерь видео трафика по всему Миру вызвано срабатыванием policer’а. Потери пакетов при непосредственной работе policer’а составили порядка 21%, что в 6 раз больше, чем для трафика, который не подвержен срабатыванию данной технологии. Качество видео трафика, который подвергся обработке policer’ом, хуже, чем в случае, если policer не срабатывал.

Для борьбы с негативным эффектом работы policer’а предлагаются следующие меры в зависимости от точки их применения.

Однозначных рекомендаций по поводу конфигурации shaper в документе не даётся. Shaper может обеспечивать положительный эффект как при большом, так и при маленьком значении размера ведра (даже если BC = 8 000 байт). Также нет однозначной рекомендации по поводу глубины очереди. Маленькая глубина приводит к лишним потерям, большая может негативно сказаться на задержках в сети. Во всех случаях есть свои плюсы и минусы.

Таким образом, нет однозначного ответа на вопрос, что лучше использовать: shaper или policer. Каждая технология имеет свои плюсы и минусы. Для кого-то дополнительная задержка и нагрузка на оборудование не так критична, как для другого. А значит выбор делается в сторону shaper. Кому-то важно минимизировать сетевую буферизацию для борьбы с джиттером – значит наша технология policer. В ряде случаев вообще можно использовать одновременно обе эти технологии. Поэтому выбор технологии зависит от каждой конкретной ситуации в сети.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *