Исследование возможности получения гарантированного качества обслуживания (QoS) в общедоступных сетях Интернет

А.А.Гончаров, Семенов.Ю.А.


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

Для решения этих проблем существует технологии IntServ и Diffserv. IntServ реализуется в рамках протокола RSVP и не предполагает формирования нескольких субпотоков с разными уровнями услуг. Данное исследование посвящено Diffserv. Предполагается, что все настройки алгоритмов работают в пределах одного Diffserv домена. (Diffserv домен - это набор прилегающих узлов, сконфигурированных с одинаковой PHB (Per Hop Behavior) политикой).

Была поставлена задача нахождения оптимальных параметров WRED и WFQ, которые в случае перегрузки обеспечивали бы пользовательскому потоку гарантированную полосу и задержку.

Исследования проводились для тестового канала ПРАН-ИАЭ в широком диапазоне загрузок и параметров настройки. Результаты измерений сравнивались с данными компьютерного моделирования. Для этого использовалась программа NE-2. В данном докладе представлены результаты моделирования.

При исследовании формировались три стационарных потока пакетов (см. рис.1), которые имели DSCP метки. На основе данных о прохождении этих потоков через DiffServ домен (задержки, потери, дисперсия задержек) выбираются оптимальные значения для настройки конфигурации маршрутизатора, при которых в случае перегрузки поток пользователя получит предсказуемую полосу и задержку.

В качестве транспортного протокола мы использовали UDP. В качестве параметров, характеризующих поток, использовались:

  1. Вероятность потери пакетов
  2. Время доставки пакета (RTT/2).
  3. Длины виртуальных очередей для потоков с разным DSCP

Параметры настройки WRED: нижний и верхний пороги отбрасывания, вероятность отбрасывания кадра и коэффициент усреднения.

Потоки помечены DSCP = 10, = 20 и = 30.



Рис. 1.


Точкой под номером 1 обозначен интерфейс, через который потоки втекают в маршрутизатор CORE. Цифрой 2 обозначен выходящий в канал АТМ интерфейс, в котором происходит разбор отправляемых в канал АТМ пакетов по маркерам DSCP.

Из сервера запускается 3 потока пакетов со скоростью 920Кбит/с каждый (что создает общий поток в 2,76 Мбит/с). Пакеты имеют длину 1400 байт, время моделирования 30 секунд. Виртуальный канал АТМ имеет пропускную способность 2 Мбит/с (VBR-NRT)

Суммарный поток превышает пропускную способность канала. Чтобы изучить, как осуществляется конкуренция между разными потоками в канале, мы загружали канал так, чтобы нехватка полосы была меньше 30% пропускной способности. С каждой меткой DSCP связанна определенная очередь. DSCP 10 соответствует очередь 1, DSCP 12 - 2, DSCP 14 - 3. Максимальные длины очередей равны 40 пакетов.

При моделировании использовался алгоритм CBWFQ (class based weighted fair queuing), который позволяет выделить каждой очереди долю полосы выходного интерфейса маршрутизатора.

Для очереди 1 предоставлялось 41%, для очереди 2 - 34%, а для очереди 3 - 25% полосы пропускания канала. При постановке в очередь работал алгоритм WRED.


 T1T2cq_w
Очередь 135401.00.002
Очередь 230401.00.002
Очередь 320401.00.002

Т1 - нижний порог отбрасывания пакетов
Т2 - верхний порог отбрасывания пакетов

MDP - максимальная вероятность отброса = (1.0 / c) (c - параметр для задания максимальной вероятности отброса с 1)

q_w - параметр усреднения при вычислении средневзвешенного значения длины очереди.

В маршрутизаторе существует две причины отброса пакетов:


ldrops- пакеты отбрасываются из-за превышения потоком квоты, т.е. отброс происходит из-за переполнения буфера очереди
edrops- пакеты, отброшенные WRED (при постановке в очередь).

В современных маршрутизаторах чаще применяется алгоритм RIO, который использует тот же механизм что и RED, но для его конфигурации служат два набора параметров, один для пакетов, принадлежащих профилю, другой - для не принадлежащих профилю. При поступлении нового пакета маршрутизатор проверяет, соответствует пакет профилю или нет. Если пакет соответствует профилю, маршрутизатор вычисляет avg_in (средневзвешенная длина очереди для входящих пакетов), если пакет непрофильный, то маршрутизатор вычисляет avg_total, средневзвешенную сумму длин очередей профильного и непрофильного потоков. Вероятность отбрасывания профильного пакета зависит от avg_in, а вероятность отбрасывания непрофильного пакета зависит от avg_total.

На рис. 1 показаны временные зависимости полосы пропускания выделенной под каждый поток.

Алгоритмы, которые распоряжаются судьбой пакетов при изъятии из очереди, называются диспетчерами (schedulers). В сумме равновесные уровни пропускной способности (рис. 2) дают 2Мбит/с.

На рис. 3. Мы видим временные зависимости задержки распространения пакета для каждого из потоков. Для потоков DSCP=12 и 14 наблюдается выброс в области 7-17сек. Этот выброс связан с буферизацией пакетов в очереди и работой алгоритма RED RIO-C и Tail Drop.

На диаграмме (рис. 3) представлена временная зависимость времени доставки (RTT/2). Наиболее приоритетный поток имеет DSCP=10, следовательно, эти пакеты проводят в очереди меньше всего времени. Потокам с DSCP=12 и 14 не хватает полосы для передачи и они вынуждены дольше пребывать в очереди.


Рис. 2. Временные зависимости пропускной способности для субпотоков с разными значениями DSCP 10, 12 и 14 (Best Effort)



Рис. 3. Временная зависимость RTT/2 для DSCP 10, 12, 14


Увеличение задержки для DSCP=12 и 14 графика - происходит из-за алгоритма вычисления среднего взвешенного значения длины очереди.

Размер буфера - ограничен 40 пакетами, а WRED начинает отбрасывать пакеты, когда средневзвешенная длина очереди превысит заданный порог.

Для графика (DSCP=14) в период от 0 до 3 секунд буфер начинает заполняться, задержка растёт линейно, далее текущее значение буфера становится равным максимально допустимому значению (средневзвешенная длина очереди ещё не успела достигнуть порога отбрасывания) и приходящие пакеты начинают отбрасываться при попытке поставить их в очередь (Tail Drops). Этап Tail Drops длится с 3 до 13 секунд.

На этом этапе мы наблюдаем выброс, причиной которого является алгоритм CBWFQ (см. выше.) Потоки получают разную полосу, и это сильно влияет на время пребывания в очереди.

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

На рис. 4 показаны изменения длин очередей от времени. При первом взгляде на рисунок сразу возникает вопрос: Почему достигнув максимального порога от 0 до 10 секунд, текущая длина очереди начинает убывать и осциллировать около нового порога, отличного от величины максимальной глубины очереди?

Для ответа на этот вопрос недостаточно приведённых выше характеристик. Очень важный параметр WRED - средневзвешенная длина очереди.


Рис. 4. Зависимость мгновенной длины очереди от времени


Рассмотрим эволюцию длины очереди DSCP=14. Для объяснения поведения очереди рассмотрим изменение длины средневзвешенной очереди от времени для потока c DSCP=14.

Горизонтальные линии обозначают пороги при настройке алгоритма WRED.


 TH_MINTH_MAX
DSCP=103540
DSCP=123040
DSCP=142040

В момент 8 секунд от начала эксперимента средневзвешенная длина очереди c DSCP=14 достигла первого порога - 20 пакетов, в момент времени 14 секунд длина средневзвешенной очереди вышла на плато. По вычисленному значению средневзвешенной очереди определяется вероятность отброса пакета. Следовательно, вероятность отброса пакета тоже вышла на плато, и такова, что поддерживает текущую длину очереди ниже максимального порога. В этот же момент времени - 13 секунд наблюдается наибольшая задержка см. рис. 2 для потока c DSCP=14. На плато длина средневзвешенной очереди остаётся между минимальным и максимальным порогами.



Рис. 5. Зависимость средневзвешенной длины очереди для каждого из потоков вычисленная алгоритмом WRED



Рис. 6. Зависимость потерь пакетов от времени


Выбор параметров диспетчера и WRED сильно сказываются на поведении потерь и задержек. На рис. 6 приведена временная зависимость общих потерь, которые складываются из edrops и ldrops.

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

Ссылки

1. www.isi.edu/nsnam/ns - Программа для моделирования поведения сетей.