Процесс динамической маршрутизации разноприоритетного mpls-трафика

Процесс динамической маршрутизации разноприоритетного MPLS-ТРАФИКА

Ключевые слова: динамическая маршрутизация, MPLS-трафик.

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

Саламех Немер,

Tiger8386@mail.ru

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

Рассматриваемый в работе алгоритм динамической состоит из двух шагов. Па первом шаге для каждой пары входящего и исходящего маршрутизаторов вычисляется массив значений величины, оценивающей звено с точки зрения количества потенциальных путей, то есть путей, которые могут через него проходить (PPV, Path Potential Value). На втором шаге алгоритма для поступившего запроса к -класса для каждого звена вычисляется таблица весов, элементы которой формируются из PPV и остаточной пропускной способности звена и используются впоследствии для вычисления оптимальных по весу путей.

Построение первого шага основано на следующих рассуждениях: для каждой пары входящего и исходящего маршрутизаторов существует множество путей, по которым данные могли бы быть маршрутизированы. Возможная «проходимость» звена по сравнению с остальным множеством звеньев оценивается соответствующей величиной PPV.

В сети для каждой пары вершин (.v, d) е К каждому ребру / е Е ставится в соответствие некоторая целочисленная величина pf, с начальным значением равным нулю. Таким образом, каждой паре (s,cl) соответствует множество путей Рл/ = {pf}f^ • Если через ребро / может быть построен какой-либо маршрут для данной пары вершин (s,d), мы уменьшаем величину pf на единицу, а если через звено / может быть построен какой-либо путь для другой пары узлов (ipi/j), мы увеличиваем величину р*‘‘ на единицу. Можно получить следующую формулу для

р", I = 1,Е, к = \,К:

где 1( ) функция-индикатор принадлежности ребра / множеству ребер всех маршрутов ¿-класса, удовлетворяющих ограничению (и):

., [1, если / е и

1(/еЬ')= ’ >

[О, в противном случае

На втором шаге алгоритма отбрасываются ребра с остаточной пропускной способностью меньше требуемой ширины полосы пропускания для поступившего к -потока. Объединяя р* и остаточную пропускную способность ребра с\1) получаем вес ребра для вычисления минимального по весу маршрута г^п для к -потока:

V* = и/7* • (1 — Ь) + пс'(1) • b,

где пр\ и пс'(1) - нормированные от 0 до 100 величины рк. и с'(1) соответственно, а параметр Ь, называемый долей В\УР (доля пропускной способности), принимает действительные значения от 0.0 до 1.0 и регулирует пропорции, в которых величины />* и с'(1) ВХОДЯТ В итоговую весовую функцию IV* .

Балансировка нагрузки высокоприоритетного трафика в сети уменьшает его влияние на низкоприоритетный трафик. Так как увеличение интенсивности поступления высокоприоритетного трафика на звено может привести к большому времени ожидания в очереди на передачу низкоприоритетного трафика, то возникает необходимость его сбалансированного распределения для обеспечения Оо5-трафика по сети.

Нагрузка на ребро определяется как отношение величины полного потока через ребро к его пропускной способности. Однако в данной работе рассмотрена модифицированная версия этой функции [ 1 ] для каждого ребра определена кусочно-линейная стоимостная функция балансировки, зависящая от нагрузки на ребро. Задача состоит в минимизации суммы стоимостей балансировки ребер, принадлежащих множеству маршрутов для каждого класса потока. Идея, лежащая в основе этой функции, заключается в том, чтобы «штрафовать» маршрутизацию потока через ребро по мере увеличения нагрузки на него.

Огличие мегода выравнивания нагрузки, рассматриваемого в данной работе, состоит в том, что не допускается перегрузка ребер, и функция балансировки имеет другие точки перелома. В сущности, точная форма функции не имеет решающего значения, однако, важно, чтобы функция являлась кусочно-линейной, возрастающей и вогнутой [1].

На рис. 1 представлена стоимостная функция балансировки для ребра с единичной пропускной способностью.

Рис. 1. Пример функции стоимости балансировки

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

/("»)= ЕІХ'/* УотеЕ,

где

ак‘ =

Нагрузка на ребро /и равна Л(т) =

с

зультату, тогда как функция балансировки устраняет этот недостаток. Проиллюстрирует подобного рода ситуацию на примере сети, граф которой представлен на рис. 2.

с(/,) = 10

</,) = Ю

I, если /-путь потока к-класса проходит по ребру т

0, в противном случае /1 - доля к -потока, маршрутизированного по / -маршруту

из соответствующего множества маршрутов.

Напомним, что полный поток, проходящий через ребро т, должен удовлетворять ограничению [(т)<с(т), УотеЕ, где с(т) - пропускная способность ребра т .

/

^Л) = ю

с(/,) = 10

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

Стоимостная функция ф(-) зависит от способа распределения потоков по маршрутам соответствующих классов. гк

Пусть (р* = ¿1^. - доля ¿-потока, маршрутизированного по

/-пути. Тогда распределение ¿-потока по маршрутам множества К* можно записать в виде вектора ф' = (<р* ,<р\ ), стоимость балансировки которого рав-

. . Л°1 .

на ф(<рк ) = фк.

Пусть векторное пространство

О* = V ://</\/‘<тш{с(/)| - пространство воз-

1&,

можных распределений к -потока по маршрутам, тогда ф(0.к) = \ф(<рк): ф1 еС2* | его образ под действием функции ф(-). Определим теперь пространство совместного распределения потоков О как подпространство произведения пространств распределений отдельных потоков О1 х...хП*, на котором выполняется условие (2.1): О = {(<р' ,...,<рК ):<р‘ еП',/ = 1 ,К,/(1)< с(/)}. Соответственно, ф(£Ъ) = \ф(ф',...,фк): (ф\...,ф*') 6 Г2} - образ пространства О под действием стоимостной функции. Для простоты обозначим стоимость совместного распределения К потоков фх к := ф(ф\...,ф^).

Задача выравнивания нагрузки состоит в нахождении совместного распределения с минимальной стоимостью балансировки, то есть такого ф! ,, е ф(0.), что

Вторая цель оптимизации модели достигается минимизацией суммы стоимостей балансировки всех ребер:

тт^^

теЕ

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

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

Пусть величины потоков обоих классов раины 10 единиц/с, а пропускная способность всех ребер равна 10 единиц/с. Из рисунка видно, что первым должен быть маршрутизирован (.у,,*/,)-поток через ребро 1,1. поскольку оно является

единственным доступным маршрутом для (.у,,*/,)-потока.

Таким образом, максимальный уровень нагрузки на ребро для данного графа фиксирован и достигает своего максимально возможного значения, равного 1: Л = Л(13) = 1.

При решении задачи минимизации максимального значения нагрузки оставшаяся часть графа вообще не будет рассмотрена, и среди возможных решений может быть маршрутизация всего (^|,^/|)-потока через путь (/,,/,). Решение задачи минимизации суммы заданных стоимостных функций предлагает более сбалансированное распределение (л-,, с/,) -

потока между путями (/,,/,) и (/,,/5), и нагрузка на их ребра /,,/,,/4,/5 будет равна 0,5. Следовательно, удастся избежать высокой нагрузки на некоторые ребра графа сети. Подобные ситуации могут часто возникать в сегях, где некоторые классы трафика имеют мало альтернативных доступных путей.

В табл. 1 приведены суммарные значения функции балансировки для различных способов распределения потока между двумя путями (/,,/4) И (/,,/,) .

Таблица 1

/Ґ' ГҐ' Стоимость балансировки ^5|’с1' * -потока

10 0 774

9 і 176

8 2 58

7 3 30

6 4 22

5 5 20

Точная форма функции балансировки

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

соотносится с ее чувствительностью к несбалансированно распределенной нагрузке.

с</,) = Ю

Таблица 2

с(/2) = Ю

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

Пусть величина (s,d) -потока равна 10, что с физической точки зрения соответствует интенсивность поступления запросов от узла S к узлу d равна 10 единиц/сек. Для любой задачи маршрутизации может быть найдена оптимальная нагрузка на ребра графа соответствующей сети. В данном случае оптимальным является равное распределение потока между двумя путями, и оптимальная нагрузка равна 0,5. Чтобы показать влияние точной формы функции поиск оптимального решения задачи распределения потоков, сравним две разные функции: ф", определяемая по формуле (5), и ф1', определяемая по формуле (7). На рис. 3 показано, что точки перелома функции ф“ соответствуют следующим значениям нагрузки на ребро: 0,5, 0,6, 0,7, 0,8, 0,9. Функция ф1’ имеет 5 точек перелома, соответствующих следующим значениям нагрузки: 0,3, 06, 0,7, 0,8, 0,9. Производные функций в соответствующих областях одинаковы.

ф(т) £ /(/и) V/иеЕ

ф(т)~£.2/(т)-—с(т) V/ие Е,

ф

91

ф(т)> 15 f(m)---с(т) V/иеЕ,

10

ф(т) > 60/(т)-^'-с(/и) VmeE,

ф(т) tï 300/(т)-Щ^-с(т) VmeE.

Отношение к оптимальной стоимости балансировки, значения которого для обеих функций вычислены в табл. 2, является «штрафом», величина которого изменяется в зависимости от удаленности распределения от оптимального решения. Как только решение отклоняется от оптимального, «штраф» увеличивается.

Распределение нагрузки

10/10:0/10

9/10; 1/10

8/10: 2/10

7/10; 3/10

6 К); -1 1(1

5/10; 5/10

Стои-

мость

ф

для г“'

387

88

29

15

10

Отношение к оптимальному

А/

38,7

8,8

2,9

1,5

1,1

1,0

Стои-

мость

389

90

31

17

14

14

Отношение к оптимальному

(<с

27,8

6.4

2.2

1.2

1,0

1,0

Из таблицы видно, что «штрафы» функции ф" более эффективны для несбалансированных распределений. Более того, в случае использования функции ф1) существует несколько решений с минимальным значением стоимости балансировки, одно из которых не соответствуют оптимальному распределению нагрузки. На рис. 3 показано, что оптимальному значению нагрузки на ребро соответствует первая точка перелома функции.

0,3 0.4 0.5 0.6

Нагрузка

Рис. 3. Оптимальное значение нагрузки 0,5 соответствует первой точке перелома функции ф“

Литература

1. M. G. C. Resende and C. C. Ribeiro. A GRASP with path-relinking for private virtual circuit routing. Networks, 41:104-114, 2003.

2. New Dynamic QoS Routing Algorithm for Optical Networks Based on MPLS With Delay And Bandwidth as Constraints. 2012 International Conference on Optical Engineering (1COE).

3. A New Low-Complexity QoS Routing Algorithm for MPLS Traffic Engineering.Proceedings of the 2009 IEEE 9th Malaysia International Conference on Communications 15-17 December 2009 Kuala Lumpur Malaysia.