Иерархический QoS на PCEF: как управлять приоритетами сервисов

7 октября 2026
Мобильные сети
5 из 5
Иерархический QoS на PCEF: как управлять приоритетами сервисов
Абонент качает торрент и параллельно звонит через мессенджер, но голос собеседника пропадает, а затем звонок обрывается. Открывает YouTube — видео то и дело замирает на подгрузке. Абонент, конечно, решает, что у оператора плохая связь, хотя радиоканал и покрытие здесь ни при чем — всю доступную полосу тарифа съел его же торрент.

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

Дело не в сбоях оборудования и не в настройках конкретной сети. Стандарт 3GPP (3rd Generation Partnership Project) описывает механизмы ограничения полосы абонента и для отдельных сервисов, но не определяет, какой сервис получит полосу первым, когда ее не хватает на всех. В этой статье разберемся, где в стандарте пробел и как его закрывают с помощью PCEF VAS Experts.

Потолок есть, правил нет

Чтобы понять, откуда берется этот пробел, придется погрузиться в строки спецификации 3GPP TS 23.203 «Архитектура управления политиками и тарификацией».

Архитектура QoS в 3GPP построена вокруг носителей — bearers в LTE и QoS Flows в 5G. Носитель — логический канал между абонентским устройством и пакетным шлюзом со своим набором параметров качества.

Dedicated Bearer

Если потоку данных нужны определенные параметры обслуживания (гарантированная скорость, допустимая задержка и доля потерь пакетов) или определенный приоритет, под него создают отдельный носитель (Dedicated Bearer) с собственным QoS-профилем (QCI/5QI, ARP).

Приоритет по стандарту можно задать и через ARP (Allocation and Retention Priority), но это приоритет носителя, а не отдельного сервиса. С помощью SDF (service definition function) сервисы распределяются по носителям для которых определены QCI и ARP. При нехватке радиоресурсов носитель с низким ARP не будет создан, а уже созданный может быть удален целиком. Получается, что приоритет есть у носителя, но влияет он только на создание или удаление всего носителя со всеми сервисами, которые в него попадут, и гибко распределять полосу между сервисами не позволяет.

Default Bearer

Весь трафик сервисов, для которых выделенный канал не создан (веб, мессенджеры, YouTube, торренты, фоновые обновления), идет через базовый канал/носитель по умолчанию (Default Bearer). Это всегда non-GBR-носитель (Non-Guaranteed Bit Rate), и обычно ему назначают низкоприоритетный класс QCI 9. Трафик этого класса обрабатывается по мере возможности, а успешность его доставки не гарантируется. Для всего non-GBR-трафика стандарт предусматривает общий параметр APN-AMBR.

APN-AMBR — агрегатный потолок скорости для всего non-GBR-трафика абонента в пределах APN.

В соответствии со спецификацией 3GPP, задача PCEF (Policy and Charging Enforcement Function) — контролировать, чтобы суммарная скорость всех non-GBR-потоков данных сервисов (SDF) внутри точки доступа к сети (APN) не превышала этот потолок. Как распределять полосу между конкурирующими потоками, когда их суммарный спрос выше потолка, стандарт не описывает. Поэтому в интерфейсах, по которым сервер политик (PCRF) передает правила на PCEF (например, Gx по протоколу Diameter), нет атрибутов (AVP), через которые можно было бы передать такое распределение.

PCRF (Policy and Charging Rules Function) — узел, который принимает решения о политиках QoS и тарификации и передает их на PCEF в виде правил.

Представим, что тариф абонента составляет 50 Мбит/с, а торрент или обновление игры могут занять до 100 Мбит/с, так что канал забивается полностью. Пакеты мессенджера попадают на тот же полисер, что и торрент. Правил балансировки нет, поэтому полисер режет трафик, не различая сервисы. И тогда почти всю полосу получает тот, кто генерирует больше трафика, в нашем случае это торрент.

Стандарт 3GPP жестко регламентирует интерфейсы между узлами, но логику планирования (scheduling) и конкуренции трафика внутри одного APN намеренно оставляет на усмотрение производителей оборудования. В итоге в стандарте нет механизма распределения полосы по приоритетам между сервисами.

Иерархический QoS на PCEF от VAS Experts

В VAS Experts эту задачу решают через иерархический QoS (HQoS) на PCEF с локальными профилями. Полосу абонента при этом не расширяют, а распределяют между сервисами по приоритетам. Приоритетные направления трафика, например, голос и веб, получают ее первыми, а P2P и фоновые загрузки используют остаток.

Два уровня полисинга

Верхний уровень иерархии — корневой класс HTB (root), то есть общая полоса абонента. Ее задают в профиле полисинга (тарифном плане). Сюда подставляют значение APN-AMBR (или скорость тарифа домашнего интернета), например 50 Мбит/с. Суммарно выйти за этот потолок абонент не сможет.

На втором уровне (leaf classes) находятся восемь классов, от class0 до class7. По умолчанию class0 имеет наивысший приоритет, class7 — наименьший. Сигнатурный DPI-движок распознает протокол или направление трафика (YouTube, BitTorrent, Telegram) и относит поток к нужному классу. Распределение по классам задает глобальная разметка по протоколам и направлениям или индивидуальная разметка по протоколам для конкретного абонента. Сами классы связывают с рейтинг-группами через таблицу соответствия.

Уровни полисинга
Рисунок 1 — Уровни полисинга

Как полоса делится между классами

Доступны два механизма полисинга на выбор администратора.

Основной механизм — HTB (Hierarchical Token Bucket). Он реализует иерархический QoS. Когда от PCRF приходит новое значение APN-AMBR, система динамически переносит его в корневой класс и распределяет эту полосу по классам. Для каждого из восьми классов задают гарантированную скорость (rate) и максимальную (ceil).

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

Пример распределения полосы по классам для тарифа 50 Мбит/с:
  # Входящий трафик (к абоненту), тариф 50 Мбит/с
   htb_inbound_root=rate 50mbit
   # class0 — звонки: гарантия 5 Мбит/с
   htb_inbound_class0=rate 5mbit ceil 50mbit
   # class1 — видео: гарантия 20 Мбит/с
   htb_inbound_class1=rate 20mbit ceil 50mbit
   htb_inbound_class2=rate 8bit ceil 50mbit
   htb_inbound_class3=rate 8bit ceil 50mbit
   htb_inbound_class4=rate 8bit ceil 50mbit
   htb_inbound_class5=rate 8bit ceil 50mbit
   htb_inbound_class6=rate 8bit ceil 50mbit
   # class7 — торренты: гарантия 1 Мбит/с, но может занять весь канал, когда он свободен
   htb_inbound_class7=rate 1mbit ceil 50mbit

Второй — TBF (Token Bucket Filter), полисер без иерархии. Он ограничивает каждый класс независимо: классу задают фиксированный потолок rate и выше него класс не поднимется, даже если остальная полоса простаивает. Классы без заданного ограничения не ограничиваются. Общего потолка у TBF нет.

Что дает: предсказуемое жесткое ограничение или блокировку конкретного класса трафика.

Пример жесткого ограничения торрентов до 3 Мбит/с:

  tbf_inbound_class7=rate 3mbit
  tbf_class7=rate 3mbit
В первую очередь полоса отдается сервисам, которые определяют пользовательский опыт: непрерывным трансляциям, видеозвонкам без обрывов и плавному видео. Именно этот опыт формирует лояльность к оператору. Окончательный набор приоритетных направлений оператор выбирает под свою бизнес-модель.

Что это дает абонентам и операторам

Абонент теперь может спокойно говорить по мессенджеру и качать большой файл, потому что торрент идет в class7 с низшим приоритетом и забирает все 50 Мбит/с, пока канал не нужен другим сервисам. Как только абонент начинает звонок или открывает YouTube, этот трафик попадает в class0 или class1, и планировщик HTB сразу забирает полосу у торрента в пользу приоритетного сервиса. Звонок больше не рвется, видео идет без остановок, а торрент продолжает качаться, просто медленнее.

Тарифная скорость при этом не изменилась. Изменилось только ее распределение между сервисами.

При этом оператор выжимает максимум качества из тех ресурсов, что у него уже есть. Даже если при перегрузке ядро урезает APN-AMBR до 7–10 Мбит/с, приоритеты внутри лимита сохраняются. Урезанная полоса достается прежде всего видео и звонкам, поэтому видео идет без ребуферизации, а звонки в мессенджере MAX остаются в Full HD.

Меньше ручной работы для оператора

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

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

Если в вашей сети абоненты жалуются на рвущиеся звонки и тормозящее видео при исправном радиоканале, а при перегрузке приходится зажимать полосу всем без разбора, стоит посмотреть, как на вашем трафике отработает HQoS на СКАТ PCEF. Специалисты VAS Experts помогут разложить сервисы по классам приоритета под вашу бизнес-модель и тарифные планы — напишите нам, и обсудим, с чего начать.