Содержание к диссертации
Введение
ГЛАВА 1. Средства перераспределения потоков данных в компьютерных сетях 8
1.1. Классификация алгоритмов и средств управления маршрутизацией потоков данных (обзор) 10
1.2. Многопротокольная коммутация меток 16
1.3. Методы перераспределения потоков данных с помощью технологии MPLS-TE 25
ГЛАВА 2. Задача о равномерной загрузке каналов связи сети передачи данных 32
2.1. Постановка задачи о равномерной загрузке каналов связи 32
2.2. Обзор методов решения задач удовлетворения ограничений с конечными областями значения переменных 35
2.3. Программирование в ограничениях как метод решения задачи о равномерной загрузке каналов связи СПД 44
2.4. Булевы модели генерации туннельных маршрутов 48
ГЛАВА 3. Система управления равномерной загрузкой каналов связи в магистральной сети передачи данных .. 55
3.1. Описание системы управления 55
3.2. Структура и функциональные возможности программного обеспечения сервера маршрутизации 58
3.3. Балансировка загрузки каналов связи для магистральной СПД ВСЖД 76
Заключение 88
Список литературы 90
- Классификация алгоритмов и средств управления маршрутизацией потоков данных (обзор)
- Обзор методов решения задач удовлетворения ограничений с конечными областями значения переменных
- Булевы модели генерации туннельных маршрутов
- Структура и функциональные возможности программного обеспечения сервера маршрутизации
Введение к работе
Актуальность темы. Сети передачи данных (СПД), использующие протокол Internet Protocol (IP), широко распространены по всему миру. В последнее время в сетях передачи данных, использующих протокол IP, внедряются услуги, как характерные для традиционных сетей с коммутацией каналов, такие как телефония, так и новые услуги, такие как видеотелефония, телевидение по запросу, виртуальные частные сети. При этом пользователи требуют от сетей передачи данных на основе протокола IP, такого же качества предоставляемых услуг и надежности сети, к которому они привыкли в традиционных сетях TDM(Time-Division Multiplexing, Мультиплексирование с разделением времени) и PSTN(Public Switched Telephone Network, Публичная коммутируемая телефонная сеть). При этом остро стоит вопрос об эффективности использовании ресурсов СПД, надежности и быстрого восстановления работы сети после сбоя. Не смотря на резкое увеличение скоростей на магистральных каналах связи, пропускная способность локальных сетей растет еще быстрее. В октябре 2006 года подразделением IEEE SA(IEEE Standard Association) организации IEEE(Institute of Electrical and Electronics Engineers) принят стандарт Ethernet с пропускной способностью 10 Гигабит/сек(10ОВазе-Т) по медной паре на расстоянии 100 и более метров. Раньше для таких величин пропускной способности использовали дорогое оптоволокно, и внедрение медной пары вместо оптоволокна резко удешевит внедрение и сопровождение локальных сетей с такими скоростями передачи данных, что сделает внедрение локальных сетей с такой пропускной способностью массовой, и повлечет за собой широкое внедрение широкополосных сервисов и резкое возрастание объемов данных передаваемых через глобальные сети между локальными сетями. Причина неэффективного использования ресурсов глобальных (магистральных) сетей передачи данных заключается в существующих алгоритмах протоколов маршрутизации. Из-за недостатков традиционных
протоколов маршрутизации потоки данных направляются только по маршруту с минимальной метрикой, игнорируя другие маршруты. Разумеется, если маршруты для передачи данных будут выбираться с учетом доступных ресурсов сети, это положительно скажется на качестве обслуживания и позволит при неизменных ресурсах сети повысить качество обслуживания или увеличить количество услуг, для которых необходимо гарантированное качество сервиса.
Один из способов решения вышеприведенных проблем заключается во внедрении в СПД, использующих протокол IP, методов перераспределения потоков данных. Задача методов перераспределения заключается в достижении наиболее эффективного использования ресурсов СПД при обеспечении требуемого качества предоставляемых сервисов, быстрого восстановления после сбоев. Как правило, работа методов перераспределения требует использования протоколов маршрутизации с учетом ограничений (Constraint-Based Routing Protocol), иначе называемых протоколы маршрутизации с учетом уровня качества (QoS-Based Routing Protocol).
В глобальных СПД базовые средства перераспределения потоков данных в настоящее время реализованы в рамках технологии MPLS-TE (Multiprotocol Switching Label Traffic Engineering). При использовании технологии MPLS-TE маршрутизаторы сами могут самостоятельно рассчитывать пути, но без учета всей информации о состоянии СПД, особенно о загруженности каналов связи. В этих условиях предпочтительным является использование внешней управляющей программы, обеспечивающей сбор статистики об интенсивности входных потоков и принятие (на основе этой информации) необходимых управляющих решений по перераспределению потоков данных с учетом пропускных способностей каналов связи.
Тематика диссертационного исследования находится в русле приоритетных направлений развития науки в Российской Федерации
"Информационно-телекоммуникационные системы", утвержденных Президентом Российской Федерации 21 мая 2006 г. (№ Пр-843).
Объект исследования. Глобальные СПД с технологией перераспределения потоков данных MPLS-TE.
Цель работы заключается в разработке методов, алгоритмов и средств управления перераспределением входных потоков данных для повышения эффективности равномерной загрузки каналов связи в магистральных СПД с учетом ограничений на их пропускную способность.
Для достижения поставленной цели необходимо решить следующие задачи:
Провести анализ имеющихся подходов и программных средств, используемых для решения задачи управления перераспределением и балансировкой потоков данных в магистральных СПД.
Формализовать задачу перераспределения потоков данных с целью равномерной загрузки каналов связи в виде специализированной задачи удовлетворения ограничений(в том числе и булевых).
Разработать методы, алгоритмы и программы решения специализированной задачи удовлетворения ограничений.
Разработать архитектуру, алгоритмическое, информационное и программное обеспечение системы управления равномерной загрузкой каналов связи в магистральной СПД.
Оценить эффективность разработанных методов и средств на примере производственной задачи перераспределения потоков данных и балансировки загруженности каналов связи для магистральной СПД Восточно-Сибирской железной дороги (ВСЖД).
Методы исследования. При решении перечисленных задач использовались методы системного анализа, теории управления, обработки информации, теории компьютерных сетей передачи данных, комбинаторные методы дискретной математики и искусственного интеллекта.
Научная новизна работы заключается в следующем:
Разработаны основанные на решении задачи удовлетворения ограничений (в том числе и булевых) метод, алгоритм и программа перераспределения потоков данных с целью балансировки загрузки каналов связи магистральной СПД для случая статической фиксированной (однопутевой) маршрутизации.
Предложена, разработана и реализована архитектура, алгоритмическое, информационное и программное обеспечение централизованной системы управления потоками данных в глобальных СПД с применением технологии MPLS-TE.
Практическая значимость полученных результатов. Применение разработанных в диссертации методов и программных средств позволяет повысить эффективность использования ресурсов магистральных СПД с технологией MPLS-TE.
Достоверность результатов диссертации подтверждается корректным обоснованием постановок задач, точной формулировкой критериев, исследованием и сравнительным анализом существующих подходов к решению поставленной задачи, применением точных методов решения и практическим использованием разработанного программного обеспечения.
Реализация. Исследования по теме диссертации выполнялись в рамках плановых тем кафедры "Управление техническими системами" Иркутского государственного университета путей сообщения. Результаты исследования используются информационно-вычислительном центре ВСЖД филиала ОАО "РЖД" для совершенствования алгоритмов управления магистральной СПД, а также в Иркутском государственном университете путей сообщения при выполнении дипломных работ по кафедре "Управление техническими системами".
Апробация. Основные результаты работы докладывались и обсуждались на следующих конференциях:
II Всероссийская конференция "Инфокоммуникационные и вычислительные технологии и системы" (Иркутск, 2006).
VI Международная научно-практическая конференция "Моделирование. Теория, методы и средства." (Новочеркасск, 2006).
44-ая Всероссийская научно-практическая конференция "Современные технологии-железнодорожному транспорту и промышленности" (Хабаровск, 2006).
конференция "Ляпуновские чтения & Презентации информационных технологий" (Иркутск, 2006).
V Сибирская научная школа-семинар с международным участием "Компьютерная безопасность и криптография" - SIBECRYPTO'06 (Шушенское, 2006).
Публикации. По теме диссертации опубликовано 6 работ в виде статей в журналах, трудах международных и российских конференций и сборнике научных трудов ИрГУПС, в том числе одна статья в издании, рекомендованном ВАК для опубликования научных положений диссертационных работ. В работах, опубликованных в соавторстве, автору принадлежат научные и практические результаты, заявленные в диссертации. При этом булевы модели и средства генерации туннельных маршрутов разработаны совместно с Г.А. Опариным, А.П. Новопашиным, В.Г. Богдановой и являются неделимыми.
Структура и объем работы. Диссертационная работа состоит из введения, трех глав, заключения и списка литературы из 91 наименования. Общий объем диссертации - 98 страницах машинописного текста, полный объем диссертационной работы 131 страница. Работа включает 30 рисунков, 2 таблицы и 8 приложений.
Приложения содержат дополнительные материалы, включающие схемы СПД ВСЖД, описание структуры файлов, результаты вычислительных экспериментов.
Классификация алгоритмов и средств управления маршрутизацией потоков данных (обзор)
Как отмечается в [7] основная классификация алгоритмов основана на том, чувствительны ли выбираемые маршруты к изменению входных параметров трафика и параметров линий. В статических алгоритмах выбор пути основан на старой информации о состоянии сети, а в динамических алгоритмах этот выбор основан на текущей информации. Статические алгоритмы, как правило, базируются на моделях потокового типа, (которые в свою очередь, в основном используют математический аппарат нелинейного программирования и градиентные методы поиска оптимальных решений), а динамические - на методах кратчайшего пути. Основное отличие между этими подходами состоит в том, что первый позволяет вычислять маршруты сразу для нескольких соединений одновременно, а второй - только для одного соединения. Исходя из этого, алгоритмы потокового типа потенциально являются более точными по сравнению с алгоритмами кратчайшего пути. Однако, меняя стоимости линий в процессе использования алгоритма кратчайшего пути исходя из состояния сети (в первую очередь - загруженности линий) можно существенно улучшить качество работы алгоритма. Более того, доказано [8], что в предельном случае эти два типа алгоритмов характеризуются одинаковой эффективностью.
В практическом плане основной вопрос в реализации алгоритмов маршрутизации заключается в том, будут ли маршруты вычисляться по требованию (On-Demand) или же они будут заранее вычисляемые (Рге-Computed). При использовании подхода "по требованию" вычисление маршрута производится в момент запроса на установление соединения, что приводит к неизбежной задержке установки соединения на время вычисления маршрута. Напротив, при использовании подхода "заранее вычисляемые маршруты", время установки соединения будет меньше, но погрешность при этом в исходных данных может привести к некорректному определению маршрута. Эти два подхода можно использовать совместно -так, в PNNI [9-12] первоначально маршрут выбирается из множества заранее рассчитанных маршрутов, при невозможности же использования этих маршрутов в свете удовлетворения параметров заявки на соединение производится поиск, исходя из требований заявки. Отметим, что стратегия "заранее вычисляемые" принадлежит к классу квази-статических алгоритмов, так как маршрут для текущей заявки учитывает только старую информацию. В свою очередь, алгоритмы "по требованию" в ряде случаев также вынуждены использовать частично устаревшую информацию о состоянии сети.
Алгоритмы "заранее вычисляемые" могут быть разделены на реализующие непосредственно выбор маршрута в источнике (Source Routing), выбирающие маршрут до начала установки соединения, и поэтапную маршрутизацию (Hop-by-Нор), выбирающие маршрут непосредственно в процессе установки. Соответственно, протокол маршрутизации PNNI относится к алгоритмам Source Routing, а протоколы маршрутизации RIP, EIGRP, OSPF к алгоритмам Нор-Ьу-Нор.
Еще одна классификация алгоритмов разделяет их на временно-зависимые и временно-независимые. Алгоритмы первого типа должны учитывать моменты появления различных заявок на установку и разъединение соединений [13], алгоритмы второго типа значения этих времен не учитывают.
Один из способов классификации состоит в разделении всех алгоритмов на централизованные (на основе сетевого менеджмента) и распределенные (на основе сетевого сигналлинга). В централизованных алгоритмах выбор всех маршрутов осуществляется в центральном узле сети, а в распределенных - в отдельных узлах (как правило, в источниках сообщений) и при этом узлы сети должны обмениваться информацией о текущих значениях параметров связанных с ними линий.
Сети с коммутацией пакетов (в частности на базе стека протоколов TCP/IP) используют протоколы маршрутизации для обеспечения полносвязной топологии соединений внутри сети. Для распространения информации обо всех сегментах сети используются протоколы маршрутизации с учетом состояния канала, такие как OSPF, IS-IS. Каждый маршрутизатор получает полную картину состояния всех каналов связи и маршрутизаторов сети. Затем маршрутизатор использует полученную информацию для вычисления кратчайшего пути ко всем сегментам сети для заданной сети с использованием алгоритма поиска кратчайшего пути. Далее маршрутизатор строит таблицу маршрутизации, связывая адрес с каналом точки следующего транзитного перехода[14].
При поступлении пакета на маршрутизатор, производится поиск в таблице маршрутизации на основе адреса назначения, и пакет отправляется в канал связи. Для каждого адреса назначения протокол маршрутизации выбирает единственный маршрут, не учитывая текущую ситуацию с использованием ресурсов сети передачи данных. Все пакеты направляются маршрутизатором по кратчайшему пути (по маршруту с минимальной метрикой) даже при наличии других маршрутов с метрикой большей, чем метрика наилучшего маршрута. В итоге, каналы, которые не являются частью кратчайших маршрутов, оказываются недогруженными при работающих с большой нагрузкой каналах, входящих в кратчайшие маршруты. Складывается парадоксальная ситуация, при наличии не используемых ресурсов сети, сеть требует модернизации, так как не справляется нагрузкой. Ярко иллюстрирует эту ситуацию пример на рис. 1[15].
Обзор методов решения задач удовлетворения ограничений с конечными областями значения переменных
Сущность любой комбинаторской задачи [41] можно сформулировать следующим образом: найти на множестве V элемент v, удовлетворяющий совокупности условий К(у) в предположении, что пространство поиска D
содержит некоторое конечное число различных точек.
На формальном уровне дискретная CSP представляется виде тройки (У,ДС) [42], где:
У = \Уі У2 - Ур\ конечное множество переменных;
D=\DvD2,...,Dp\ - множество доменов; Каждый домен D, - это
конечное множество, содержащее возможные значения / -той переменной; С = С1,С2,...,СМ1— конечное множество ограничений. Ограничение С, состоит из двух частей: подмножества переменных
3 = \УІІ УІ2 — УІ } на котором оно определено, и отношения rel;, заданного на
Si:reliczD,xD:X...xDi . Если множество переменных ограничения содержит один элемент, ограничение называется унарным, два элемента -бинарным,...., к элементов- А:-арным.
CSP задачи используют два типа объектов - переменные с областями значений и ограничения. Это дает возможность представлять задачу в виде графа, называемого сетью ограничений (constraint network - CN). Схема CN (scheme) - это множество подмножеств переменных ее ограничений: scheme(CN) = {Sl,S2,....,Sm},SieX. Множеством всех решений
(выполняющих наборов) является отношение р, определенное на множестве всех переменных:
p = {(xl =ах,...,хп =an)\\/Si е scheme, IT pQrelf}, где IIs.p является проекцией отношения р на подмножество его переменных Решение CSP - это такое означивание каждой переменной, что для любого ограничения выполняется соответствующее отношение над значением связанных им переменных. Означивание переменной - есть присваивание ей некоторого значения из ее домена. Означивание записывается в виде пары (х,а), где а- значение из домена переменной х.
Набор значений записывается в виде списка таких пар, (( , ,),...,( -, )), но для упрощения используется запись вида (а15...,я(). Набор согласован, если все его значения удовлетворяют всем ограничениям на переменные, содержащиеся в наборе. Набор ((х,a, ,),...,( ,)) согласован с множеством переменных Xj,...,xJv, если существуют такие значения а ,...,а этих переменных, что набор (Ц, ),...,( ,а {хк }),...,{хк,а})) согласован. Согласованный набор, содержащий значения всех переменных, является полным решением. Согласованный набор, содержащий значения некоторых переменных, является частичным решением. Традиционно используют два вида сетей [42]:
- узлы сети - это индексы переменных с областями значений, дуги -ограничения. Сеть задана в виде ориентированного графа.
- сеть содержит два типа вершин: для переменных и отношений. Сеть задана в виде двудольного ориентированного графа.
Задача удовлетворения ограничений является бинарной, если все ее ограничения унарные или бинарные. Бинарные CSP играют особую роль, так как любая CSP может быть преобразована в эквивалентную ей бинарную CSP [57]. Существует специальные алгоритмы, применимые только к бинарным CSP. Но в силу вышесказанного такие алгоритмы могут быть использованы как общие.
Структура бинарной CSP может быть представлена посредством графа, вершины которого соответствуют переменным, причем две вершины соединены, если существует по крайней мере одно ограничение, в которое входят эти переменные. Это граф называется графом ограничений для бинарной CSP.
Концепция графа ограничения может быть также определена и для общей CSP. Ограничения представляются не ребрами, а множеством вершин, соответствующих переменным ограничения. Такое гипер-ребро может быть изображено замкнутой кривой, охватывающей вершины. Для общей CSP граф ограничений является, таким образом, гиперграфом.
Другое представление для CSP - прямой граф. Это неориентированный граф с вершинами, соответствующими переменным задачи. Две вершины соединены ребром, если существует по крайней мере одно ограничение, содержащее обе переменные, соответствующие этим вершинам. Для бинарной CSP граф ограничений совпадает с прямым графом.
Двойственный граф для CSP - это неориентированный помеченный граф с вершинами, соответствующими ограничениям задачи. Две вершины соединены, если два ограничения, соответствующие этим вершинам, разделяют, по крайней мере, одну переменную. Ребро помечено множеством переменных, разделяемых двумя ограничениями. Представление в виде двойственного графа ограничений преобразует любую небинарную CSP в специальный вид бинарной [57].
Структура CSP характеризуется в терминах топологических свойств ее прямого графа. Если граф связан, то и CSP связана. Задачи CSP с прямым графом, имеющим древовидную структуру, легко решаемы [43]. В работах [44,45] отмечается тот факт, что разрешимость задач CSP тесно связана с топологической структурой соответствующих им графов ограничений.
. Поиск с возвратом. Основанная идея алгоритмов поиска с возвратом заключается в расширении частичного решения (частично означенного выполняющего набора) до полного. На каждом шаге делается попытка добавить в частичное решение очередную переменную, перебирая все значения из ее домена. Назовем переменные, уже означенные, предшествующими, переменную, означиваемую в настоящий момент, текущей, а еще не означенные переменные последующими. Ситуация, когда все значения домена, присваиваемые переменой, нарушают ограничения, называется тупиком. В этом случае алгоритм должен сделать возврат. Если возврат осуществляется к самой последней предшествующей переменной, алгоритм является хронологическим возвратом. В противном случае это алгоритм интеллектуального возврата.
Булевы модели генерации туннельных маршрутов
Ясно, что строгое решение задачи равномерной загрузки СПД, как задачи удовлетворения ограничений, базируется на алгоритмах конструктивного перечисления (генерации, построения отображения Я) туннельных маршрутов для каждого входного потока. Основной недостаток алгоритмов конструктивного перечисления простых путей в графе заключается в невозможности их применения для сетей большой размерности, так как число генерируемых путей растет экспоненциально по мере роста числа узлов и линий связи в сети[40]. Как правило, длина туннельного маршрута ограничивается некоторой величиной для того, чтобы обеспечить требуемую среднюю задержку передачи пакетов в сети.
Поэтому далее имеет смысл рассмотреть алгоритмы перечисления всех простых путей, длины которых не превосходят некоторой заданной величины k(k n). Условия задачи генерации туннельных маршрутов запишем в виде системы булевых уравнений. Для их решения будем использовать эффективные решатели таких уравнений системы РЕБУС [71], которые в ряде случаев обгоняют специализированные алгоритмы поиска на графах.
Первичная сеть как вычислительная модель предметной области. Построение туннельных маршрутов в этом случае представим как планирование последовательности исполнения программных модулей, обеспечивающей вычисление требуемого набора целевых параметров В0 по заданному множеству параметров - исходных данных А0 [72]. Планирование выполняется на вычислительной модели KB = {F,Z,In,Oui}, где F = lFv...,Fm\ - множество модулей, работающих над полем общих данных Z = Z15...,ZJ, являющихся входными или выходными параметрами этих модулей; In(zFxZ, OutczFxZ - отношения, отражающие взаимосвязь модулей с данными соответственно по входу и выходу. Таким образом, с каждым модулем Ft связано два множества параметров Д.,Д. cZ, называемых соответственно входом и выходом. Вход Aj определяет данные, которые необходимо иметь, чтобы получить результат, представленный выходом Вг В дальнейшем для этого будем использовать запись (Д.;Д.). Без потери общности будем считать, что модули Fx и F2 из множества F моделируют условия постановки задачи планирования T = (AQ,B0), а именно: вычислительная модель KB содержит модули F,(;4)) и F2(Z?0;), где AQ,BQ aZ. Отсутствие атрибута до или после точки с запятой означает пустоту соответствующего множества. Модуль Fx назовем модулем начальных данных, а модуль F2 - целевым модулем. Предполагается, что вычислительная модель KB является избыточной в том смысле, что для решения задачи используется только часть модулей из F, и/или задача Г имеет несколько альтернативных планов решения. Отношения In или Out удобно задавать в виде двух булевых матриц А и В размерностью пхт, элементы которых сформированы следующим образом: а = \ (Ьу = \), если параметр Zj является входным (выходным) для модуля Ft. Далее через Д и В{ (i = \,...,m) обозначим строки этих матриц, а через Д и В\ (/ = 1,..., л) - столбцы. Строки и столбцы матриц А и В являются двоичным представлением подмножеств параметров и модулей соответственно; запись qeS(S - это двоичная строка Д, Д-, Д или В\) означает, что q принимает значения номеров единичных элементов в двоичной строке S.
Будем интерпретировать множество вершин и дуг ориентированного мультиграфа PS = (V,E) соответственно как множество параметров Z
(Z = V) и множество модулей F (F = E) вычислительной модели КВ. Матрицы А и В, задающие отношение In и Out, строятся элементарно по матрице инцидентности графа PS.
Специфика полученной модели KB состоит в том, что каждый модуль из F и постановки задачи Т (узел-источник - узел-адресат) имеют только по одному входному и выходному параметру. Кроме того, возникает дополнительное ограничение на план решения задачи Т, которое устанавливает запрет на повторное вычисление параметра в этом плане (путь в графе PS должен быть простым).
Определим план в виде матрицы X kxm булевых переменных Ху, где Ху = 1 означает, что модуль F- стоит на / -ом месте в плане X. Общая длина плана равна к; і -ая строка плана определяет модуль, исполняемый на / -ом шаге, а столбцы матрицы X соответствует множеству модулей F. Тогда для элементов матрицы X для построения туннельных маршрутов длиной равной к требуется установить следующие булевы ограничения:
Структура и функциональные возможности программного обеспечения сервера маршрутизации
. Это программный комплекс, который реализует следующие функции. ИИВП получает данные о состоянии СПД, анализируя данные, получаемые от каждого маршрутизатора. Программный модуль ИИВП данные о потоках, проходящих через маршрутизатор, получает с помощью протокола Netflow (другие возможности сбора информации о потоках данных рассмотрены в приложении 3). С помощью протокола Netflow можно выявить наиболее используемые каналы связи, наиболее часто используемые протоколы, аномальную активность в сети (например, в результате сетевой активности вируса), кто, кому, когда и какой объем данных передал. Среди бесплатных коллекторов отдельное место занимает flowc [75]. Flowc переносит полученные данные от маршрутизатора в базу данных MySQL. Причем, в отличие от коллектора NETAMS [76], в базу помещается вся полученная информация.
В качестве базы данных используется свободно распространяемая под лицензией GPL база данных MySQL компании MySQL АВ. MySQL это система управления реляционными базами данных, являющейся системой клиент-сервер, содержащий многопоточный SQL-сервер. Поддерживается несколько клиентских программ и библиотек, средств администрирования и большое количество программных интерфейсов (АР1)[77,78]. Кроме этого, в документации MySQL детально описывается, как сделать программу наиболее универсальной и добиться работоспособности программы с другим программным обеспечением.
Для обработки данных, собранных коллектором flowc, и формирования таблицы потоков у разработана программа первичной обработки данных, написанная на языке программирования Perl [79]. В процессе работы коллектор flowc собирает всю информацию с маршрутизаторов и записывает ее в базу данных netflow в таблицу flows. В процессе работы программа первичной обработки данных выбирает данные из таблицы flows за определенный промежуток времени, полученные с определенного маршрутизатора и агрегирует данные, подготавливая их для записи в отдельную для каждого маршрутизатора таблицу с именем router_N (где N -идентификатор маршрутизатора). Далее программа первичной обработки данных, основываясь на информации о входящем и исходящем интерфейсе для каждого потока, выясняет с какого именно маршрутизатора был получен этот поток данных и на какой маршрутизатор он был передан, используя информацию из таблицы interfaces. Производится окончательное суммирование потоков данных. Далее программа первичной обработки данных проходит по таблицам rt_N (где N - идентификатор маршрутизатора) в поиске пар точка входа потока данных в сеть - точка выхода потока данных и строит таблицу потоков у с расчетом средней интенсивности потока данных за требуемый период времени в бит/сек. При этом программа создает файл, содержащий информацию об узле-источнике, узле-адресате, интенсивности для каждого потока. При использовании версии протокола коммутации Netflow версий 8 или 9 можно получить значительный выигрыш в производительности за счет использования возможности суммирования на маршрутизаторах и передачи уже частично суммированных данных о потоках коллектору Netflow. В этом случае на маршрутизаторе создается отдельный кэш для хранения суммированных данных. Этот кэш заполняется согласно настройкам маршрутизатора. Каждая из схем агрегирования использует свой собственный кэш, не затрагивающий основной кэш Netflow. Так как необходимые данные будут частично обработаны на маршрутизаторах, это снизит использование ресурсов сети и ускорит обработку информации на сервере управления.
Так как программа первичной обработки данных обязана периодически обрабатывать поступающую в базу данных информацию с заданным временным периодом, необходимо или обеспечить ее запуск с заданным периодом, или постоянную работу в памяти компьютера в качестве программы-резидента или демона. Первым способом эту проблему можно решить, используя стандартную для юниксоподобных операционных систем программу - планировщик сгоп. Для остальных операционных систем можно использовать или встроенные возможности, или использовать дополнительное программное обеспечение, например ncron для Windows. Второй способ реализуем с помощью встроенных возможностей языка Perl по управлению процессами или с помощью дополнительной библиотеки Proc::Daemon[80], применение которой упрощает реализацию программы-резидента.
Управляющее устройство. Программа формирования ТМ, получив данные о потоках от программы первичной обработки данных, основываясь на данных о топологии сети передачи данных, узла-источника потока данных и узла-адресата, находит все допустимые пути для каждого потока с длиной маршрута не больше заданной величины. Структура файлов приведена в приложении 4.
Программа формирования ТМ получает данные о допустимых путях от программы генерации допустимых путей, а также информацию о пропускных способностях каналов связи. Программа формирования ТМ решает задачу поиска наиболее равномерного распределения потоков данных по каналам связи сети передачи данных. Программа формирования ТМ написана на языке программирования Pascal. Для компиляции используется компилятор Freepascal, разработанный под лицензией GNU группой энтузиастов. Сайт группы расположен по адресу [81] . Существует русское сообщество языка Freepascal, расположенное по адресу [82]. Freepascal является диалектом языка Pascal.
Freepascal — это 32-разрядный компилятор. Мощный, быстрый (компиляция выполняется за один проход), многоплатформенный. Компилятор Freepascal поддерживает и расширяет синтаксис промышленных стандартов языка Паскаль: Turbo Pascal 7.0 и Object Pascal. Для Turbo Pascal декларируется почти полная совместимость, а для Delphi - совместимость с большинством версий, включая Delphi 7. С каждой версией совместимость с Delphi увеличивается. Последняя версия 2.0.4. В комплекте поставляется программа-редактор Freepascal IDE версии 1.0.8. Freepascal IDE является полноценным редактором, ничем не уступающим редактору Borland Pascal. Freepascal IDE работает в текстовом режиме.