Чем определяется QoS?

Чем определяется QoS?

𝔯𝔱_𝔣𝔞𝔫

Главная Назад

И вот мы дошли до темы QoS.

Знаете почему только сейчас, и почему это будет закрывающая статья всего курса? Потому что QoS необычайно сложен. Сложнее всего, что было прежде в цикле.

Это не какой-то магический архиватор, который ловко сожмёт трафик на лету и пропихнёт ваш гигабит в стомегабитный аплинк. QoS - это о том как пожертвовать чем-то ненужным, впихивая невпихуемое в рамки дозволенного.

QoS настолько опутан аурой шаманизма и недоступности, что все молодые (и не только) инженеры стараются тщательно игнорировать его существование. Считая, что достаточно закидать проблемы деньгами, и бесконечно расширяя линки. Правда пока они не осознают, что при таком подходе их неизбежно ждёт провал. Или бизнес начнёт задавать неудобные вопросы, или возникнет масса проблем, почти не связанных с шириной канала, зато прямо зависящих от эффективности его использования. Ага, VoIP активно машет ручкой из-за кулис. А мультикастовый трафик ехидно поглаживает вас по спинке.

Поэтому давайте просто осознаем, что QoS это обязательно. Познать его придётся так или иначе. И почему бы не начать сейчас, в спокойной обстановке.

До того как читатель нырнёт в эту нору, я заложу в него три установки:

— Не все проблемы можно решить расширением полосы.

— QoS не расширяет полосу.

— QoS про управление ограниченными ресурсами.


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

Из этого короткого предложения можно вывести все метрики качества сети:


Потери.

Эта метрика говорит о том, сколько из отправленных источником пакетов дошло до адресата.

Причиной потерь могут быть: проблема в интерфейсе/кабеле, перегрузка сети, битовые ошибки, блокирующие правила ACL.

Что делать в случае потерь решает приложение. Оно может проигнорировать их, как в случае с телефонным разговором, где запоздавший пакет уже не нужен. Или перезапросить его отправку — так делает TCP, чтобы гарантировать точную доставку исходных данных.


Задержки.

Это время, которое необходимо данным, чтобы добраться от источника до получателя.

Совокупная задержка складывается из следующих компонентов:

  • Задержка сериализации (Serialization Delay) — время, за которое узел разложит пакет в биты и поместит в линк к следующему узлу. Она определяется скоростью интерфейса. Так, например, передача пакета размером 1500 байт через интерфейс 100Мб/с займёт 0,0001 с, а на 56 кб/с — 0,2 с.
  • Задержка передачи сигнала в среде (Propagation Delay) — результат ограниченной скорости света. Физика не позволяет добраться из Нью-Йорка до Томска по поверхности планеты быстрее чем за 30 мс (фактически порядка 70 мс).
  • Задержки, вносимые QoS — это томление пакетов в очередях (Queuing Delay) и последствия шейпинга (Shaping Delay). Об этом мы сегодня будем говорить много и нудно в главах Управление перегрузками и Ограничение скорости.
  • Задержка обработки пакетов (Processing Delay) — время на принятие решения, что делать с пакетом: lookup, ACL, NAT, DPI, — и доставку его от входного интерфейса до выходного. Но с того дня, когда Juniper в своём M40 разделил Control и Data Plane, задержку обработки перестали брать во внимание, т.е. ей можно пренебречь.

Задержки не так страшны приложениям, где не требуется спешка: обмен файлами, сёрфинг, VoD, интернет-радиостанции и т.д. И напротив, они критичны для интерактивных: 200мс уже неприятны на слух при телефонном разговоре.

Связанный с задержкой термин, но не являющийся синонимом — RTT (Round Trip Time) — это путь туда-обратно. При пинге и трассировке вы видите именно RTT, а не одностороннюю задержку, хотя величины и имеют корреляцию.


Джиттер.

Разница в задержках между доставкой последовательных пакетов называется джиттером.

Как и задержка, джиттер для многих приложений не имеет значения. И даже, казалось бы, какая разница — пакет доставлен, чего же боле?

Однако для интерактивных сервисов он важен. Возьмём в качестве примера ту же телефонию. По сути она является оцифровкой аналоговых сигналов с разбиением на отдельные чанки (порции) данных. На выходе получается достаточно равномерный поток пакетов. На принимающей стороне есть небольшой буфер фиксированного размера, в который укладываются последовательно поступающие пакеты. Для восстановления аналогового сигнала необходимо определённое их количество. В условиях плавающих задержек следующий чанк данных может не прийти вовремя. Что равносильно потере, и сигнал не удаcтся восстановить.

Наибольший вклад в вариативность задержки вносит как раз QoS. Об этом тоже много и нудно в тех же главах Управление перегрузками и Ограничение скорости. Потери, Задержки и Джиттер - основные характеристики качества сети, но есть две другие, которые тоже играют не последнюю роль.


Неупорядоченная доставка.

Ряд приложений, таких как телефония, NAS, CES экстремально чувствительны к неупорядоченной доставке пакетов. Т.е. когда они приходят к получателю не в том порядке, в котором были отправлены. Это может приводить к потере связности, ошибкам, повреждению файловой системы.

И хотя неупорядоченная доставка не является формально характеристикой QoS, но определённо относится к качеству сети.

Даже в случае TCP, толерантного к этому виду проблем, происходят дублирующиеся ACK'и и ретрансмиты.


Полоса пропускания.

Её не выделяют как метрику качества сети, поскольку фактически её недостаток выливается в три указанные выше. Однако в наших реалиях: когда некоторым приложениям она должна быть гарантирована, или, наоборот, по договору должна быть ограничена, а, например, MPLS TE её резервирует на всём протяжении LSP, - упомянуть её, хотя бы как слабую метрику, стоит.



Главная Назад

Report Page