hostprofi.ru
Подобрать хостинг
Термин·буква Q

QoS

краткое определение

QoS (Quality of Service) — набор механизмов управления сетевым трафиком, позволяющих приоритизировать одни типы трафика над другими для обеспечения гарантированной полосы, минимальной задержки и низкого jitter.

QoS (Quality of Service) — набор механизмов управления сетевым трафиком, который позволяет гарантировать пропускную способность, ограничивать задержку и снижать потери для приоритетных потоков. Без QoS сеть работает по принципу best-effort: все пакеты равны и обрабатываются в порядке поступления. QoS расставляет приоритеты — голос важнее торрента, база данных важнее архивного бэкапа.

Как работает QoS

QoS функционирует через три механизма: классификацию, маркировку и обработку очередей. Классификация определяет тип трафика по заголовкам пакетов: IP-адрес, порт, DSCP-метку или DPI (глубокий анализ пакетов). Маркировка присваивает пакету класс приоритета: в IPv4 это поле DSCP (6 бит в ToS-октете), в Ethernet — 802.1p (3 бита в заголовке VLAN). Обработка очередей определяет порядок отправки: приоритетные пакеты выходят из очереди первыми.

Алгоритмы очередей: FIFO (first-in, first-out) — нет приоритетов; PQ (Priority Queuing) — высокоприоритетный трафик всегда первый (риск голодания низкоприоритетного); WFQ (Weighted Fair Queuing) — каждой очереди выделяется доля bandwidth пропорционально весу; CBWFQ + LLQ — стандарт Cisco для VoIP: голос в выделенной очереди с гарантированной задержкой.

На уровне ядра Linux QoS реализован через механизм tc (traffic control). Дисциплины очередей: htb (Hierarchical Token Bucket) — делит bandwidth между классами с гарантиями и потолками; fq_codel — борется с bufferbloat; cake — современная альтернатива с автонастройкой.

История

Концепция QoS возникла в конце 1980-х с появлением мультимедийного трафика в сетях. RFC 1349 (1992) добавил поле TOS в IPv4 для разметки типа сервиса. В 1998 году IETF стандартизировал DiffServ (RFC 2474) с 64 классами DSCP, заменив устаревший IntServ (RSVP). В 2000-х операторы связи внедрили QoS для разделения голоса (VoIP) и данных в мультисервисных сетях. С переходом на 10GbE и выше в дата-центрах QoS применяется для изоляции трафика хранилищ (iSCSI, FCoE) от пользовательского трафика.

QoS в хостинге

Хостеры применяют QoS на уровне коммутаторов и маршрутизаторов для управления трафиком клиентов. На VDS-серверах QoS реализуется гипервизором: KVM и VMware позволяют ограничить скорость сетевого интерфейса виртуальной машины (burst/guaranteed bandwidth). На выделенных серверах клиент сам настраивает tc или использует iptables-модуль MARK совместно с tc для маркировки трафика по приложениям.

На что обращать внимание

QoS не увеличивает общую пропускную способность — он перераспределяет существующую. Если канал перегружен на 200%, QoS поможет голосу, но не спасёт от деградации в целом. Эффективен только тогда, когда узкое место (bottleneck) находится в месте, где QoS настроен. Проверить конфигурацию tc на Linux: tc qdisc show dev eth0 и tc class show dev eth0.

Примеры настройки QoS на Linux

Ограничение скорости сетевого интерфейса до 100 Мбит/с через HTB:

tc qdisc add dev eth0 root handle 1: htb default 10
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 100mbit

Приоритизация DNS-трафика (UDP/53) над остальным:

tc filter add dev eth0 parent 1: protocol ip prio 1 u32   match ip dport 53 0xffff flowid 1:1

Борьба с bufferbloat через fq_codel (рекомендуется для серверов с доступом к интернету): tc qdisc replace dev eth0 root fq_codel. Эта дисциплина автоматически управляет очередями и снижает задержки при высокой нагрузке без явной настройки классов. Для большинства VDS-серверов достаточно fq_codel без сложных HTB-иерархий.

Другие термины