Определение простыми словами
QoS (Quality of Service) — это управление приоритетами сетевого трафика. Без QoS пакеты идут в порядке поступления, и тяжёлая загрузка торрентов мешает видеозвонку. С QoS трафик классифицируется по приложениям, портам или DSCP-меткам и распределяется по очередям с разными приоритетами. Голос и видеоконференции получают зелёный свет, бэкапы — то, что осталось. Особенно критично для каналов с ограниченным throughput и низкой latency.
На уровне маршрутизатора QoS реализуется через дисциплины очередей (HTB, CAKE, FQ_CoDel в Linux), policers и shapers. У провайдера часто работает MPLS с TE и DSCP-маркировкой. На уровне приложения QoS-метки выставляют в IP-заголовке (поле TOS/DSCP), и сетевое оборудование уже их учитывает.
Сравнение
| Подход | Уровень | Гарантии | Сложность |
|---|---|---|---|
| Best Effort | L3 без QoS | Нет | Минимум |
| DiffServ (DSCP) | L3 | Относительные | Средняя |
| IntServ (RSVP) | L3 | Жёсткие, на поток | Высокая |
| Traffic Shaping (HTB/CAKE) | L2-L3 на интерфейсе | Через лимиты | Средняя |
Кейсы использования
- Приоритет VoIP-телефонии и видеоконференций над загрузкой обновлений в офисе.
- Резервирование полосы для backup-трафика в нерабочие часы через ограничение в дневное время.
- Шейпинг исходящего трафика на VPS, чтобы не выйти за лимит провайдера и не получить throttling.
- Защита от bufferbloat на домашнем роутере через CAKE — снижает игровой ping в разы.
- Негативный сценарий: неправильно настроенный QoS режет легитимный трафик. Если шейпер стоит ниже фактического канала, он зря тормозит соединения. Перед настройкой обязательно замерьте реальный bandwidth.
Технические детали
Минимальный шейпинг исходящего канала на Linux через tc и CAKE:
apt install iproute2
tc qdisc replace dev eth0 root cake bandwidth 100mbit besteffort
tc -s qdisc show dev eth0
tc qdisc replace dev eth0 root handle 1: htb default 30
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 30mbit ceil 100mbit prio 1
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 70mbit ceil 100mbit prio 5
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 5060 0xffff flowid 1:10
Первая команда заменяет дисциплину на CAKE — современный универсальный планировщик. Дальше показан классический HTB с двумя классами: высокий приоритет для SIP (порт 5060) и низкий для остального трафика. Проверка статистики через tc -s qdisc.
🔥 Где это применяется
Частые вопросы
Зачем нужен QoS дома?
Чтобы видеозвонок и онлайн-игры не лагали при загрузке файлов или работе торрентов. Современный CAKE-шейпер на роутере решает эту задачу одной командой.
Что такое DSCP?
Differentiated Services Code Point — 6 бит в IP-заголовке, которыми приложение или роутер метит приоритет пакета. Сетевое оборудование по этой метке распределяет пакеты по очередям.
Помогает ли QoS против перегруза канала?
Помогает только перераспределить полосу между типами трафика. Если суммарная нагрузка стабильно превышает канал, QoS лишь сделает падения предсказуемыми, но не увеличит общий throughput.