Алгоритмы конвейерного интервального анализа трафика

Инфокоммуникационные технологии и системы

УДК 621.391 DOI: 10.14529/ctcr190105

АЛГОРИТМЫ КОНВЕЙЕРНОГО ИНТЕРВАЛЬНОГО АНАЛИЗА ТРАФИКА

В.И. Моисеев1'2, Б.Я. Лихтциндер2

1 Пермский государственный национальный исследовательский университет, г. Пермь, Россия,

2 Поволжский государственный университет телекоммуникаций и информатики, г. Самара, Россия

Рассматривается модель участка доступа мультисервисной сети оператора связи от магистральной линии до порта абонента. Рассматривается трафик мультисервисной сети на данном участке. Сформулированы проблемы, возникающие при анализе свойств очередей IP-TV видеотрафика стандарта H.264 в реальном времени. Приводится описание интервального метода анализа трафика и предлагается ряд алгоритмов, расширяющих и дополняющих этот метод. Интервальный метод дополняется возможностью анализа реальных потоков трафика заявок произвольной длины. Рассматривается вопрос выбора единицы квантизации длины заявки. За единицу времени обработки заявки в интервальном методе принимается время обработки исходящим каналом 1 КБ данных. Подтверждена справедливость формул интервального метода для расчета дифференциальной интенсивности событий и дифференциального коэффициента загрузки. Рассматривается работа интервального метода с поддержкой пакетов произвольной длины в режиме конвейера реального времени с непрерывно поступающими заявками. Предлагается алгоритм конвейеризации в виде «скользящего окна». Вводится понятие скользящего окна на пространстве временных меток заявок. Рассматривается возможность независимой эволюции границ окна. Алгоритм предусматривает расчет количества заявок на интервалах обслуживания и определение размеров очередей при заданных коэффициентах загрузки. Предложен способ получения указанных величин в аналогичном скользящем окне в зависимости от интервалов обслуживания. В результате приводится алгоритм обратного асинхронного расчета очереди для параллельной обработки скользящего окна с разными значениями коэффициента загрузки. Демонстрируются результаты реализации данных алгоритмов в рамках с работы системы конвейерного интервального анализа трафика на тестовом стенде.

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

Введение

Для изучения поведения очередей в реальном времени на данный момент не существует универсальных решений. При возникновении неисправностей операторам связи приходится довольствоваться лишь косвенными признаками и сигналами о фактах переполнения пакетного буфера уже по факту [1, 2]. При анализе потока трафика в коммутаторе последний рассматривают как систему массового обслуживания (СМО). Поток трафика принято аппроксимировать пуассо-новским потоком и для расчета очередей использовать известную формулу Хинчина - Поллячека. Но, как показывают исследования, потоки в сетях доступа, а тем более видеотрафик, не демонстрируют свойств пуассоновских потоков [3-5].

Для исследования потоков общего вида был предложен интервальный метод анализа трафика [6], в рамках которого получена обобщенная формула Хинчина - Поллячека, применимая к трафику сетей доступа. Цель данной работы - предложить алгоритмы для конвейерной работы данного интервального метода. В начале работы представлен алгоритм работы в режиме сколь-

зящего окна с пакетами произвольной длины. Далее рассмотрен алгоритм обратного асинхронного расчета очереди для параллельной обработки скользящего окна с переменной длиной интервала обслуживания. В заключение мы демонстрируем результат работы реализации данных алгоритмов в рамках системы конвейерного интервального анализа с построением графиков эволюции очередей на реальном потоке H.264 видеотрафика.

1. Интервальный метод с учетом переменной длины пакетов

В работах [3, 6] разработан метод интервального анализа. Согласно этому методу среднюю длину очереди можно определить, исходя из наблюдаемого количества поступающих заявок, приходящихся на одну обслуживаемую заявку. Рассмотрим поток трафика одной из услуг муль-тисервисной сети. Заданный поток прибывает в коммутатор со стороны опорной сети и отправляется коммутатором с абонентского порта доступа. Работу коммутационной матрицы представим как одноприборную СМО с очередью и дисциплиной обслуживания FIFO. Время обслуживания заявки примем равным сериализационной задержке при пересылке пакета с исходящего порта [7, 8]. Интервальный метод предполагает время обслуживания заявки фиксированным и равным т. Реальный поток видеотрафика, как и любой поток трафика общего вида, может содержать пакеты различной длины. Рассмотрим алгоритм перехода от пакетов произвольной длины к ряду заявок с фиксированным временем обслуживания.

Введем в рассмотрение длину обрабатываемого пакета или Ethernet-фрейма. Возможны несколько вариантов выбора единицы длины. При выборе в качестве единицы измерения трафика 1 бит или 1 байт возникает риск ухудшить производительность системы анализа в реальном времени [9]. Во-первых, Ethernet-фреймы всегда содержат не менее 64 байт информации [10]. Во-вторых, производить на каждый принятый пакет по нескольку сотен вычислений рекуррентных функций будет очень накладно с точки зрения производительности системы анализа. При выборе размера, равного максимальному размеру пакета на данном носителе (MTU) за единицу измерения, мы рискуем потерей точности, так как значительная часть пакетов видеотрафика имеет меньшие размеры. На наш взгляд, целесообразным выглядит вариант принять за единицу размера 1 Кбайт. Таким образом, мы незначительно теряем в производительности относительно учета пакетов без размера, но значительно выигрываем в точности расчета. В дальнейших рассуждениях условимся считать единицей измерения длины 1 Кбайт трафика. Назовем этот размер длиной базового пакета и обозначим 5 [Кбайт] (5 = 1 Кбайт).

В реальной телекоммуникационной системе, например Ethernet-коммутаторе или участке сети доступа, существует конечная битовая скорость приема данных с входящего интерфейса физического уровня и конечная скорость отправки данных на физический уровень исходящего интерфейса (рис. 1).

Рис. 1. Пример топологии включения системы анализа трафика

За событие обработки одной заявки в такой СМО примем отправку с исходящего порта данных в количестве длины базового пакета 5. Обозначим через т [с] интервал времени обработки 5 Кбайт трафика. Интервал времени обработки на практике определяется, как

т =

где Свых - скорость передачи 1 Кбайт данных в секунду с исходящего порта коммутатора. Если

обозначить битовую скорость исходящего канала B

то ^RUY

>1024

[Кбайт/с]. Аналогично

введем Свх - скорость приема 1 Кбайт данных в секунду на входящий порт коммутатора и соответствующую битовую скорость канала Bвх, бит/с. Свх = —— [Кбайт/с]. Таким образом, интер-

8-1024

вал обработки т одного Килобайта данных на данном конкретном канале представляет собой фиксированную величину. Промежуток времени между моментами поступления двух соседних заявок А может быть произвольным, но не менее вт;п, так как входящий канал имеет ограниченную емкость. Минимальный промежуток между соседними заявками для данного входного канала выражается через скорость этого канала и тоже является величиной фиксированной:

Q . =_!.

Поток поступающих заявок или событий во времени будем считать стационарным и ординарным. Ординарность в нашем случае означает, что за элементарный промежуток времени в систему приходит не более одного события, что справедливо для каналов Ethernet с последовательной передачей кадров. Отметим, что при рассмотрении каналов с параллельной передачей символов для удовлетворения требования ординарности потребуется вводить несколько иные допущения. Требование стационарности в потоке реального трафика выполняется, если будет учтена сезонность в уровнях загрузки каналов доступа операторской сети и время наблюдения будет достаточно большим. Выберем достаточно большой промежуток времени T относительно произвольно выбранного момента начала наблюдений t0 = 0. Среднюю интенсивность поступления заявок X на рассматриваемом интервале T зададим, как

^_ к гзаявокт

_ Т [ с Г

где K, как и прежде [6], есть число заявок, пришедших за указанный интервал времени. Но в данном случае под заявкой мы понимаем поступление данных в количестве s Кбайт. Каждый входящий пакет данных произвольного размера l мы будем рассматривать как целое число заявок объема s, следующих непосредственно одна за другой с интервалом $т;п (рис. 2).

Разделим весь интервал T на N(t) интервалов длительностью т. В каждый из интервалов может попасть одна или несколько заявок, а может не попасть ни одной заявки. Каждая заявка имеет длину s, что эквивалентно, согласно формуле (1), временному промежутку $т;п. На рис. 2 представлен пример интерпретации потока пакетов (верхний график) в поток заявок (нижний график).

Рис. 2. Процесс формирования потока заявок из потока входящих пакетов

Пусть за весь интервал наблюдения системой зарегистрировано КП пакетов трафика в моменты времени ^ с длинами пакетов 1^), где у = 1,Кщ. Суммарная длина пакетов, пришедших за 7-й интервал времени т:

£¡00 = 2^-),

где суммирование производится по всем ], удовлетворяющим условию ¿х < < 0 + 1)т.

Количество заявок объема 5 =1 Кбайт на 7-м интервале т, порожденных всей совокупностью попавших в заданный интервал пакетов с размерами обозначим за т) и выразим через функцию округления до ближайшего целого в большую сторону:

^оо =

Порожденные пакетом ^ штук заявок распределены по оси времени равномерно, начиная с момента времени ¿х, через интервалы времени $т;п. В представленном на рис. 2 примере первым пакетом порождено кг = 3 заявки. Для остальных пакетов соответственно: к2 = 1; к3 = 2; кА = 1.

Покажем, что полученные таким образом заявки всегда укладываются в тот интервал времени т, на котором были получены исходные пакеты трафика. Рассчитаем максимальное число заявок, которые могут поступить в систему за интервал т на данном потоке пакетов с входящей канальной скоростью Свх. Максимально возможный объем пакетных данных за время т на такой канальной скорости будет равен: Ьтах(т) = £вхт. Отсюда, с учетом (1), максимальное число заявок объема 5

^тах

^тах

Выберем элементарный интервал времени Дt таким образом, что г = — =

Максимальное число заявок на интервале образуется, если на всех элементарных интервалах Дt произойдет по одному событию Дт; = 1. Просуммировав, получим

ттах(т) = =

Мы видим, что ^тах(т) = ттах(т). Значит с точностью до погрешности округления все заявки, порожденные пакетами произвольной длины при пиковой нагрузке входящего канала за время т, полностью укладываются в этот интервал времени. Учитывая, что канальные скорости технологий Ethernet, как правило, кратны друг другу, можем предположить, что погрешность будет пренебрежимо мала.

Заявка, застающая обслуживающий прибор свободным, сразу попадает в обслуживание и не создает очереди. Такая заявка обслуживается полностью в течение того интервала т, в который она попала в систему, вне зависимости от конкретного времени прибытия внутри заданного интервала. Если заявка застает прибор занятым, она становится в очередь, увеличивая значение уже имеющейся очереди qt (т) на единицу. Общее число заявок, поступивших за i-й интервал времени т, мы обозначаем т;(т). Время обслуживания очередной заявки всегда заканчивается на границе интервала обслуживания, в следующем интервале очередь будет меньше на одну заявку. Выпишем рекуррентную формулу для расчета длины такой очереди на интервале с номером i:

iiOO = 4i- 1

g _ , если qi-i(T) = т^(т) = 0;

(т) = {°

1, в противном случае.

Отсчет начинается с I = 1, при этом мы считаем, что в исходный момент времени очередь отсутствовала и д0 = 0. При переходе к расчету скользящего окна очередь в начальный момент времени будет задаваться с учетом очереди в последнем интервале предыдущего окна.

Пакеты трафика будут поступать на анализирующую систему непрерывным потоком переменной интенсивности. Для анализа и пересчета данных системе требуется работать в цикле, оперируя рядом рекуррентных формул. В операционных системах общего назначения отсутст-

вуют инструменты для вызова программных прерываний с достаточной точностью по времени [11]. С другой стороны, сетевым адаптером обычно выставляются метки времени на каждый полученный пакет трафика [12]. Поэтому анализ потока мы будем производить по меткам точного времени, выставляемым на пакетах сетевым адаптером.

Пусть на анализирующую систему поступает поток случайных величин, представляющих собой метки точного времени прихода пакетов {^}, и соответствующие размеры пакетов ¡(^) (см. рис. 2). Пусть алгоритм конвейерной обработки имеет возможность запускаться циклически. Очевидно, что система должна успевать обработать все накопленные данные, начиная с прошлого момента обработки. Обозначим период времени, требуемый для анализа порции данных ТА. Поступающие данные Ц требуется хранить в буфере такого объема, чтобы он не переполнился за время анализа предыдущей порции данных. Максимально возможное число поступающих пакетов КП за время ТА ограничено скоростью входящего канала Свх [бит/с] и максимально допустимым размером пакета ¡тах [бит]:

Максимально допустимый размер пакета lmax является также характеристикой входного канала и должен задаваться заранее либо детектироваться по настройкам сетевого адаптера (MTU). Поскольку за время анализа первой части буфера во вторую часть буфера системы поступит такой же либо меньший объем данных, размер итогового буфера для хранения данной информации будет равен удвоенному значению КП. Обозначим необходимое количество ячеек буфера для хранения меток времени через B, тогда

В _

'max

Такой же объем буфера понадобится для хранения размеров пакетов. При отсутствии входящих пакетов в интервале окна TA в буфер не поступит новой информации.

Назовем часть буфера размера W скользящим окном. Система должна успевать проанализировать количество пакетов, равное КП, за время TA. Согласно алгоритму, система всегда выбирает и фиксирует для анализа наиболее актуальную часть буфера B со вновь пришедшими пакетами. Соответственно максимальное количество данных для анализа будет равно КП, минимальное - 0. Таким образом, скользящее окно будет сдвигаться каждый раз на актуальную часть буфера.

Обозначим через WA и WB значения индексов i первого и последнего элемента скользящего окна для переменной {ti}.

Общий размер окна тогда равен

W _WB-WA + 1, если WA < WB.

Левая и правая части окна сдвигаются независимо до начала процедуры анализа и в зависимости от текущего момента времени t вычисляются по следующему алгоритму.

В произвольный момент времени t значение текущего индекса i фиксируется как правая граница скользящего окна WB. Само значение t фиксируется как метка времени окончания съема текущего окна - Tf. Обозначим метку времени по индексу WB за tWB. Отметим, что в общем случае значения tWB и Tf будут отличаться, так как время фиксируется в произвольный момент. Метка времени принимается к анализу, только если она попадает во временное окно, т. е. ti>t — TA. Поскольку метка времени увеличивается монотонно, очевидно, что

tWB _ max(fo: ti>t-TA)').

Если временное условие не выполняется, то значение WB остается неопределенным.

Последовательно просматривая все значения {ti} от правой границы WB до начала отсчета, находим индекс левой границы WA, такой, что

tWA _ min({tf: ti > t-TA}),

где i _ WB ... WB, а индексом WB' обозначена правая граница окна на предыдущей итерации алгоритма. Данное ограничение вводится, чтобы избежать повторного пересчета интервального алгоритма по уже отработанным заявкам.

В том случае, если условие £( > £ — ТА не выполняется ни для одной временной метки (т. е. если пакетов за текущий интервал анализа не поступило), значения ША и Шв остаются неопределенными и окно имеет нулевую длину.

Проиллюстрируем алгоритм скользящего окна на примере диаграммы (рис. 3). Пусть максимально допустимое время анализа временного окна ТА = 0,5 с. Пусть в момент времени 7 = 4,500 с в буфере находится пять временных меток с номерами \ от 1 до 5 соответственно (рис. 3а). Тогда согласно вышеописанному алгоритму границы временного окна будут находиться по индексам ША = 3, Шв = 5 и общая длина буфера составит три ячейки. Далее, в момент времени 7 = 4,750 с, для меток на диаграмме (рис. 3б) окно составит тоже три ячейки. И, наконец, на момент 7 = 5,500 с (рис. 3в) в данном примере в буфер меток не поступало, обе границы окна не определены и окно «схлапывается».

а)

ТА = 0,500 t. I = 4,500 /

6)

/ = 4,750

3,145 3,501 4,077 4,200 4,300

1 2 3 4 5

wA w к

3,145 3,501 4,077 4,200 4,300 4,402 4,501 4,677

1 2 3 4 5 6 7 8

W< W WR

й) t= 5,500

3,145

3,501

4,077

4,200

4,300

4,402

4,501

4,677

4,700

1

8

WA =':

Рис. 3. Независимое перемещение границ скользящего окна

Временное окно будет постоянно флуктуировать по длине в зависимости от того, сколько пакетов поступит в буфер на предыдущем анализируемом интервале. Помимо представленного на диаграмме буфера с временными метками параллельно синхронно заполняется буфер с длинами соответствующих пакетов. Чтобы обеспечить непрерывность вывода результата (рассчитанного графика очереди и других параметров), скользящее окно всегда сдвигается на необработанную часть буфера. При этом значение очереди в новой итерации алгоритма будет отсчиты-ваться не от нуля, а от значения очереди в последней ячейке предыдущего окна.

2. Алгоритм обратного асинхронного расчета очереди для параллельной обработки

скользящего окна с разными коэффициентами загрузки

Одним из требований к системе конвейерного анализа является поддержка параллельного или одновременного расчета и отображения параметров очередей для нескольких значений коэффициента загрузки. Диапазон изменения коэффициента загрузки и шаг между значениями (гранулярность) задаются в системе конвейерного анализа.

Рассмотрим на следующем примере переход от буферов временных меток и размеров пакетов к ряду временных меток поступления заявок фиксированной длины. Пусть для данной итерации алгоритма скользящего окна длины пакетов в КБ соответствуют (рис. 4).

Рис. 4. Метки времени и длины пакетов в пределах скользящего окна

Пусть время обработки 1 КБ данных на выходном канале составляет 0,2 с. Количество заявок на интервалах т с номерами ] будет рассчитываться по формуле (2), и соответствующий массив чисел заявок т^ изображен на рис. 5 (интервалы пронумерованы независимо).

Рис. 5. Числа заявок на интервалах обслуживания: j - порядковый номер интервала обслуживания, mj - число заявок на данном интервале

Как видно из формулы (2), для нахождения чисел заявок mj требуется перебрать в цикле все возможные значения/. Таким образом, время выполнения алгоритма будет пропорционально количеству интервалов обслуживания в текущем временном окне. В реальных системах трафик поступает не непрерывно, а с промежутками и имеет пачечный характер. Для оптимизации времени работы системы предлагается усовершенствовать алгоритм для работы только с фактически поступившими заявками, игнорируя интервалы простоя. Это свойство может быть получено при обратном асинхронном расчете очереди. В качестве входных данных в алгоритме обратного асинхронного расчета очереди используется массив значений ti в поддиапазоне значений / от ЖА до Жв (скользящее окно). Результат работы алгоритма - заполненные массивы значений количеств заявок т}- и очередей qj во все интервалы обслуживания/.

Вводим новый индекс а, обозначающий позицию текущей заявки внутри скользящего окна и начинающийся от 0. Таким образом, ta - время поступления заявки с номером а внутри окна. Время поступления начальной заявки берется за начало отсчета. Увеличиваем индекс а на единицу и рассчитываем время, прошедшее с момента поступления начальной заявки Д£ = £а — £0 (рис. 6).

м

->1

а 0

а 2

3,501 4,077 4,200 4,300 4,402 4,501 4,677

1001 1002 1003 1004 1005 1006 1007

а 0 1 2 3 4 5

"'А

IV

-I

Рис. 6. Анализ скользящего окна

Определим порядковый номер интервала обслуживания, в котором находится текущая заявка: ]а

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

Сравниваем текущий номер интервала уа(т) с номером для предыдущей заявки, т. е. номером интервала из предыдущей итерации алгоритма уа-1(т). Если текущий номер совпадает с предыдущим, делаем вывод, что текущая заявка обслуживается на данном интервале, следовательно, элементарное приращение количества заявок будет равно 1. Увеличиваем значения количества заявок и длины очереди на данном интервале обслуживания согласно формулам (3). На этом учет текущей заявки ta заканчивается. Таким образом:

Ат]а(1а,т) = 1; если уа(т) = уа-1(т);

Ща(т) = уа(х)=уа_1(х)Ат/а(£а,т).

Если при вычислении (5) мы получаем уа(х) ^ уа-1(т), это означает, что текущая заявка ta будет обслужена на интервале с номером, отличным от предыдущего. Поскольку все метки времени из скользящего окна мы просматриваем строго последовательно, мы делаем вывод, что в интервалы обслуживания от уа-1(х) до уа(х) заявок не поступало. Нам предстоит «задним» числом рассчитать значения для пропущенных интервалов. Количество «пустых» интервалов:

2(т) =УаСО -Уа-1(Т).

По определению, за эти интервалы заявок не поступало, следовательно

т]^ = 0, где у = у(х)а_! + 1,у'(х)а - 1.

Здесь мы полагаем, что уа-1(т) интервал уже учтен полностью, а в текущем интервале Дт/а(£а,х) = 1, поскольку это первая заявка текущего интервала. Аналогично для длины очереди: анализируются пропущенные пустые интервалы обслуживания и пересчитываются очереди на них по формулам (3):

^СО = д,-_1(х) - 1, при д,-_1(х) > 0, где у = у(х)а_! + 1,у'(х)а.

Рекуррентная формула в данном случае работает до индекса а, после чего к последнему значению очереди добавляется текущая заявка.

Когда все заявки скользящего окна обслужены, приравниваются к нулю количество заявок и очереди за все оставшиеся интервалы обслуживания, начиная с текущего ] вплоть до времени Т^

т](т) = 0, д]^ = 0, для V/: уа(х) < у <

Отличительной особенностью данного алгоритма является возможность рассчитывать очереди параллельно для нескольких значений величины интервала обслуживания. Это позволит системе конвейерного анализа строить графики всех рассчитываемых величин в зависимости от коэффициента загрузки для любого момента времени.

Пусть задана сетка из Т + 1 значений интервала обслуживания от некоторого начального значения хт;п до максимального хтах:

Т = Т + Ттах~^т1п „ =

тх Ттт ' Л т ,Л и, 1

Будем интерпретировать любую заявку, как принадлежащую одновременно Т различным потокам с различными временами обслуживания тх (рис. 7).

7 поток заявок

^ t

-t> t

-> t

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

Тогда алгоритм можно переписать с учетом прохода по всей сетке значений тх следующим образом.

Для всех а, таких, что £а 6 ЬШв] (для всего скользящего окна временных меток), вычисляем позицию текущей заявки на сетке интервалов обслуживания:

7ах(тх) I .

тх

Учитываем все заявки, принадлежащие текущему интервалу обслуживания:

"А; еСЛИ ]ах(тх) = ]а-1,х(ххУ;

Ат]ах(1а'Тх) ^ если ]ах(Тх) Ф ]а-1,х(ТхУ;

С Ч)-1(тх) + т)ах(тх) -1, пРи Ч)-1(тх) > 0; Ч](тх) = \т1ах(т^) - 1,при Ч]-1(тх) = 0,т]ах(тх) > 0; ( 0, при Ц]-1(ТХ) = т]ах(тх) = 0.

Учитываем эволюцию очереди в период отсутствия заявок:

Щ(тх) = 0, где j = j(rx)a_1 + 1,j(rx)a - 1;

Ч](Тх) = Ч]-1(Тх) - 1, при Ц]-1(тх) > 0, где } = }(тх)а-1 + 1,у(тх)а.

Для всех оставшихся т]ах(тх), т. е. для оставшихся интервалов обслуживания на скользящем

окне:

Щ(тх) = 0, qj(Tx) = 0, для Vy: ja(Tx) < j <

Tf-TA

Схематически работа алгоритма и порядок заполнения скользящего окна очередей для диапазона тх представлены на рис. 8. Ячейки массивов mj(xx) заполняются в порядке, указанном стрелками. В периоды отсутствия заявок ячейки mj(xx) заполняются по алгоритму обратного расчета. Ячейки, соответствующие разным длинам интервала обслуживания, заполняются параллельно, вне зависимости от наличия или отсутствия заявок.

1 2 3 4 5 6 7

t

m

— > - > J у 7 rr ±

d- ±>—

* i * —»— —> — —»— —»

—> - -> — ->

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

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

3. Результаты работы алгоритмов в рамках системы конвейерной обработки видеотрафика

На рис. 9 приведен пример результатов параллельного расчета очередей системой конвейерного анализа с учетом длин пакетов для трех значений коэффициента загрузки (р = 0,1; 0,7 и 0,9).

Hp = о,70)

28 г-- т-;.............

24 Г VI Н q

0 15,000 30,000 45,000 60,000 75,000 90,000

j

Рис. 9. Результаты расчетов количества заявок на интервалах обслуживания т и очередей q

в зависимости от номера интервала j

Графики расчетов для всех р выводились на экран один раз в секунду. Наблюдение произведено для трафика IP-TV DVB вещания по технологии MPEG-2 TS мультикаст [13]. Трафик представлял собой тестовый видеофрагмент, закодированный кодеком H.264 с функциональным профилем «high» и уровнем ограничений 4.1 [14, 15]. Вещание производилось утилитой ffmpeg 3.0.1 с сервера под управлением OC Ubuntu 14.04. Система конвейерного анализа трафика реализована на языке C++ в среде Qt 5.5 и была запущена на ПК с конфигурацией: Intel X5670, 4 ядра по 2.933 ГГц, 4ГБ ОЗУ. Минимальный размер скользящего окна в целях демонстрации в данном эксперименте был ограничен 50 тыс. временных меток пакетов. Таким образом, скользящие окна на каждой итерации перекрывали часть предыдущих данных.

Были произведены замеры суммарного времени работы конвейерных алгоритмов для случая расчета очередей по одному коэффициенту загрузки и случая с 10 значениями коэффициента загрузки одновременно (рис. 10 и 11 соответственно) в зависимости от интенсивности поступления пакетов трафика.

Рис. 10. Зависимость суммарного времени работы конвейерных алгоритмов для фиксированного коэффициента загрузки

450 400 §>50 з 300

I £,200

5 150 £

а 100 Й

50 0

—

-  X

5- —i м.

-♦-100тыс 50 тыс -А-25 тыс -Х-5 тыс

2000 4000 6000 S000 10000 12000 14000 Интенсивность поступления IP-пикетов

16000

Рис. 11. Зависимость суммарного времени работы конвейерных алгоритмов с параллельным расчетом для 10 коэффициентов загрузки

На обоих графиках представлены результаты замеров времени выполнения всех расчетов, включая время вывода графиков очередей на экран для 4 значений максимального размера скользящего окна временных меток (5, 25, 50 и 100 тыс.). Как видно из графиков, время расчета очередей для 10 коэффициентов загрузки всего в 2 раза превышает время расчета для одного коэффициента. Также наблюдается весьма слабая зависимость времени от интенсивности трафика, что ожидаемо для ограничения минимальной длины окна. Зависимость времени выполнения от фактической длины скользящего окна на разных типах трафика мультисервисных сетей требует дальнейшего изучения.

Литература

1. Arista LANZ Overview. - https:// people.ucsc.edu/~warner/Bufs/Arista_LANZ_Overview_ TechBulletin 0213.pdf (дата обращения: 26.10.2018).

2. Building an Open Source Data Center Monitoring Tool Using Broadcom BroadView™ Instrumentation Software. - https:// people.ucsc.edu/~warner/Bufs/BroadView-TB201-RDS.pdf (дата обращения: 26.10.2018).

3. Лихтциндер, Б.Я. Интервальный метод анализа трафика мультисервисных сетей доступа /Б.Я. Лихтциндер. - Самара: ПГУТИ, 2015. - 121 с.

4. Paxson, V. Why we don't know how to simulate the Internet / V. Paxson, S. Floyd. -http://www. cs. ucsb. edu/~almeroth/classes/F02.276/papers/paxson-97.pdf (дата обращения: 26.10.2018).

5. Paxson, V. Wide area traffic: the failure of poisson modeling / V. Paxson, S. Floyd //IEEE/ACM Trans. Netw. - 1995. - 3 (3). - P. 226-244. DOI: 10.1109/90.392383

6. Лихтциндер, Б.Я. Интервальный метода анализа очередей в системах массового обслуживания с пачечными потоками заявок / Б.Я. Лихтциндер // T-Comm: Телекоммуникации и транспорт. - 2017. - Т. II, № 3. - С. 17-23.

7. End-to-End QoS Network Design: Quality of Service for Rich-Media & Cloud Networks / T. Szigeti, C. Hattingh, R. Barton, K. Briley. - 2nd Edition. - Cisco Press, 2012. - 1040 p.

8. Bradner, S. RFC-2544. Benchmarking Methodology for Network Interconnect Devices / S. Bradner, J. McQuaid. -https://www.ietf.org/rfc/rfc2544.txt (дата обращения: 26.10.2018).

9. Intel Ethernet Switch Family Memory Efficiency Non-blocking Fabric Architecture. -https://people.ucsc. edu/~warner/Bufs/intel-memory-efficiency-paper.pdf (дата обращения: 26.10.2018).

10. Understanding Data Center Traffic Characteristics / T. Benson, A. Anand, A. Akella, and M. Zhang // ACMSIGCOMM Computer Communication Review. - 2010. - 40 (1). - P. 92-99.

11. Timekeeping in VMware Virtual Machines. - https://www.vmware.com/files/pdf/techpaper/ Timekeeping-In-VirtualMachines.pdf (дата обращения: 26.10.2018). DOI: 10.1145/1672308.1672325

12. PCAP-TSTAMP - packet time stamps in libpcap. - https://www.tcpdump.org/manpages/pcap-tstamp.7.txt (дата обращения: 26.10.2018).

13. Transport of MPEG-2 TS Based DVB Services over IP Based Networks ETSI TS 102 034 V2.1.1. - European Broadcasting Union, France, 2016. - 331 p.

14. Advanced video coding for generic audiovisual services, Recommendation ITU-T H.264. - International Telecommunication Union, Geneve, Switzerland, 2016 - 807p.

15. Jae-Beom Lee, Hari Kalva The VC-1 and H.264 Video Compression Standards^for Broadband Video Services // Springer Science+Business Media, LLC. - New York, USA, 2008. - 515 p. DOI: 10.1007/978-0-387- 71043-3

Моисеев Виктор Игоревич, ведущий программист отдела информационно-вычислительных сетей Университетского центра «Интернет», старший преподаватель кафедры радиоэлектроники и защиты информации, Пермский государственный национальный исследовательский университет, г. Пермь; аспирант кафедры мультисервисных сетей и информационной безопасности, Поволжский государственный университет телекоммуникаций и информатики, г. Самара; vim@psu.ru.

Лихтциндер Борис Яковлевич, д-р техн. наук, профессор, профессор кафедры мультисер-висных сетей и информационной безопасности, Поволжский государственный университет телекоммуникаций и информатики, г. Самара; lixt@psati.ru.

Поступила в редакцию 24 ноября 2018 г.

DOI: 10.14529/ctcr190105

ALGORITHMS FOR PIPELINE INTERVAL ANALYSIS OF TRAFFIC

V.I. Moiseev1'2, vim@psu.ru,

B.Ya. Lihtsinder2, lixt@psati.ru

1 Perm State University, Perm, Russian Federation,

2 Povolzhskiy State University of Telecommunications and Informatics, Samara, Russian Federation

The problem of real-time queue analysis of production IP traffic is stated. The method of interval analysis is described in context of real-time constraints. Drawbacks of such method are stated and solutions proposed. First, we propose an algorithm to enhance interval analysis support for variable length analysis which is crucial for real IP-TV traffic. We consider different units to measure packet to customer in the queue mapping. We estimate the 1KB worth of packet data to be a viable fit to calculate accurate queue sizes. Then we propose pipeline extension for interval analisys as a sliding window. We introduce sliding window on timestamp scale and describe evolution models

of left and right window edge separately. The algorithm proposed to map timestamps to number of customer in the queue. All proposed techniques then combined into algorithm of reverse queue calculation with parallel calculation of several service intervals simultaneously. We demonstrate and measure a performance of reference implementation of said algorithms in the lab under H.264 IP-TV traffic of various rates.

Keywords: multiservice communication networks, access network, queue service, IP television, H.264, service quality, package buffer, algorithms of stream processing.

1. Arista LANZ Overview. Available at: https://people.ucsc.edu/~warner/Bufs/Arista_LANZ_ Overview_TechBulletin_0213.pdf (accessed 26.10.2018).

2. Building an Open Source Data Center Monitoring Tool Using Broadcom BroadView™ Instrumentation Software. Available at: https:/people.ucsc.edu/~warner/Bufs/BroadView-TB201-RDS.pdf

3. Lihtczinder B.Ya. Intervalniy metod analiza trafika multiservisnykh setey dostupa [Interval Analysis Method of Access Networks] [. Samara, PSUTI Publ., 2015. 121 p.

4. Paxson V., Floyd S. Why We Don't Know How to Simulate the Internet. Available at: http://www.cs.ucsb.edu/~almeroth/classes/F02. 276/ papers /paxson-97.pdf (accessed 26.10.2018).

5. Paxson V. and Floyd S. Wide Area Traffic: the Failure of Poisson Modeling. IEEE/ACM Trans. Netw, 1995, 3 (3), pp. 226-244. DOI: 10.1109/90.392383

6. Lihtczinder B.Ya. [Interval Queue Analysis Method for Queuing Systems with Batch Arrivals]. T-Comm: Telecommunications and Transport, 2017, vol. II, no. 3, pp. 17-23.

7. Szigeti T., Hattingh C., Barton R., Briley K. End-to-End QoSNetwork Design: Quality of Service for Rich-Media & Cloud Networks. Cisco Press, 2012. 1040 p.

8. Bradner S., McQuaid J. RFC-2544. Benchmarking Methodology for Network Interconnect Devices. Available at: https://www.ietf.org/rfc/rfc2544.txt (accessed 26.10.2018).

9. Intel Ethernet Switch Family Memory Efficiency Non-blocking Fabric Architecture. Available at: https://people.ucsc.edu/~warner/Bufs/intel-memory-efficiency-paper.pdf (accessed 26.10.2018).

10. Benson T., Anand A., Akella A., Zhang M. Understanding Data Center Traffic Characteristics. ACM SIGCOMMComputer Communication Review, 2010, 40 (1), pp. 92-99. DOI: 10.1145/1672308.1672325

11. Timekeeping in VMware Virtual Machines. Available at: https://www.vmware.com/files/pdf/ techpaper/Timekeeping-In-VirtualMachines.pdf (accessed 26.10.2018).

12. PCAP-TSTAMP - Packet Time Stamps in Libpcap. Available at: https://www.tcpdump.org/ manpages/pcap-tstamp.7.txt (accessed 26.10.2018).

13. Transport of MPEG-2 TS Based DVB Services over IP Based Networks ETSI TS 102 034 V2.1.1. European Broadcasting Union, France, 2016. 331 p.

14. Advanced Video Coding^ for Generic Audiovisual Services, Recommendation ITU-T H.264. International Telecommunication Union, Geneve, Switzerland, 2016. 807 p.

15. Jae-Beom Lee, Hari Kalva The VC-1 and H.264 Video Compression Standards for Broadband Video Services. Springer Science+Business Media, LLC, New York, USA, 2008. 515 p. DOI: 10.1007/978-0-387-71043-3

References

Received 24 November 2018

ОБРАЗЕЦ ЦИТИРОВАНИЯ

FOR CITATION

Моисеев, В.И. Алгоритмы конвейерного интервального анализа трафика / В.И. Моисеев, Б.Я. Лихтциндер // Вестник ЮУрГУ. Серия «Компьютерные технологии, управление, радиоэлектроника». - 2019. -Т. 19, № 1. - С. 57-69. DOI: 10.14529Мсг190105

Moiseev V.I., Lihtsinder B.Ya. Algorithms for Pipeline Interval Analysis of Traffic. Bulletin of the South Ural State University. Ser. Computer Technologies, Automatic Control, Radio Electronics, 2019, vol. 19, no. 1, pp. 57-69. (in Russ.) DOI: 10.14529/ctcr190105