«РАЗРАБОТКА И ИССЛЕДОВАНИЕ МОДЕЛИ ФУНКЦИОНИРОВАНИЯ ГЛОБАЛЬНОЙ СЕТИ ДЛЯ АНАЛИЗА ДИНАМИКИ РАСПРОСТРАНЕНИЯ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ...»
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИМЕНИ М.В. ЛОМОНОСОВА,
ФАКУЛЬТЕТ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И КИБЕРНЕТИКИ
На правах рукописи
УДК 519.876.5
АНТОНЕНКО ВИТАЛИЙ АЛЕКСАНДРОВИЧ
РАЗРАБОТКА И ИССЛЕДОВАНИЕ МОДЕЛИ
ФУНКЦИОНИРОВАНИЯ ГЛОБАЛЬНОЙ СЕТИ ДЛЯ АНАЛИЗА
ДИНАМИКИ РАСПРОСТРАНЕНИЯ ВРЕДОНОСНОГО
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Специальность 05.13.11 — «Математическое обеспечение вычислительных машин, комплексов и компьютерных сетей.»Диссертация на соискание учёной степени кандидата физико-математических наук
Научный руководитель:
член-корр. РАН, профессор Смелянский Р.Л.
Москва – Содержание Введение.......................................... 1 Обзор предметной области. Обзор методов и средств моделирования компьютерной сети.................................. 1.1 Понятие глобальной компьютерной сети................... 1.1.1 Требования к моделированию функционирования ГКС...... 1.2 Моделирование компьютерной сети...................... 1.2.1 Выбор математического аппарата для моделирования ГКС.... 1.2.2 Средства реализации имитационной модели сети.......... 1.3 Выводы...................................... 2 Формальная модель глобальной компьютерной сети............... 2.1 Исходные предположения............................ 2.2 Описание формальной модели ГКС...................... 2.2.1 Описание................................. 2.2.2 Описание модели заражения домена................. 2.2.3 Описание сетевой активности..................... 2.2.4 Доказательство корректности формальной модели ГКС...... 2.3 Описание службы управления временем в модели ГКС.......... 3 Система имитационного моделирования Network Prototype Simulator..... 3.1 Требования СИМ NPS............................. 3.2 NPS кластер................................... 3.3 Описание архитектуры СИМ NPS....................... 3.4 Описание аппарата легковесной виртуализации ОС Linux......... 3.4.1 Методы управления модельным временем в СИМ.......... 3.4.2 Проблемы синхронизации модельного времени в распределенной СИМ.................................... 3.5 Особенности кластерной архитектуры СИМ NPS.............. 3.6 Графический интерфейс СИМ NPS...................... 3.7 Выводы...................................... 4 Экспериментальное исследование СИМ NPS.................... 4.1 Основы распространения ВПО......................... 4.2 Центр управления распространения ВПО.................. 4.2.1 Архитектура подсистемы моделирования распространения ВПО. 4.3 Экспериментальное исследование машстабируемости моделей, построенных в СИМ NPS............................ 4.3.1 Эксперимент 1.1: Моделирование распространения сетевого червя CodeRedv2................................ 4.3.2 Эксперимент 1.2: Моделирование распространения сетевого червя Sasser................................... 4.3.3 Выводы.................................. 4.4 Экспериментальное исследование системы управления модельным временем в NPS................................. 4.4.1 Эксперимент 2.1: Временная синхронизация между разными узлами NPS кластера.......................... 4.5 Выводы...................................... Заключение
Список рисунков...................................... Введение Под термином Глобальная Компьютерная Сеть (ГКС) будем понимать компьютерную сеть, состоящую не менее чем из 105 узлов. Узел сети характеризуется определенным набором параметров; подробное описание параметров представлено в разделе 2.2.1. Значения параметров узла сети определяют его состояние; совокупное состояние всех узлов определяет состояние сети. Узлы соединяются каналами и тем самым образуют структуру сети, называемую топологией.
В современных ГКС актуально уметь оперативно прогнозировать динамику изменения состояния сети, например:
прогнозировать динамику распространения вредоносного программного обеспечения (ВПО) и оценивать наносимый ущерб ГКС. Ущербом будем считать изменение параметров качества сервиса (задержек и процента потерь легитимного трафика) [1, 2];
прогнозировать и оценивать задержку при доставке контента от сервера хранения до получателя [3, 4];
прогнозировать скорость сходимости протоколов маршрутизации и оценивать накладные расходы (например, количество служебного трафика в ходе функционирования исследуемого протокола) [5].
Для моделирования больших сетей, сопоставимых с ГКС, обычно используют наиболее абстрактные подходы к моделированию процесса функционирования сети [6, 7]. Для таких подходов характерна невысокая точность моделирования процессов сетевого обмена между узлами сети, что существенно, например, при прогнозировании динамики распространения вредоносного программного обеспечения (ВПО).
Такой прогноз требует умения анализировать функционирование ГКС. Под функционированием ГКС понимается процесс обработки и передачи сетевого трафика между узлами сети. Основным методом исследования функционирования ГКС является имитационное моделирование. Процесс построения имитационной модели состоит из двух этапов:
1. построения математической модели объекта;
2. реализации математической модели на вычислительной системе (ВС).
Исходя из большой размерности и сложности структуры ГКС, эксперименты без использования моделирования затруднены по финансовым причинам, а также из-за невозможности физического воссоздания сети столь большого размера. Имитационная модель ГКС — это с одной стороны комбинация математической модели и ее реализация на ВС, с другой — результат компромисса между:
уровнем детальности описания;
сложностью описания функционирования;
точностью предсказания поведения;
сложностью идентификации и калибровки построенной модели.
моделирования и определяется исследователем при подготовке эксперимента моделирования. Подробность и точность имитационной модели зависит от выбора уровня абстракции объекта моделирования, а также от выбора математического аппарата, в терминах которого строится модель. В настоящее время исследователи для моделирования ГКС чаще всего используют вероятностный математический аппарат [8–10].
Использование вероятностного математического аппарата предполагает статистическое усреднение многих параметров функционирования ГКС, либо их представление в форме функции распределения соответствующего вида.
Статистическое усреднение используется для:
упрощения модели;
сокращения размерности модели;
уменьшения вычислительной сложности реализации модели.
Использование функций распределения позволяет лишь приблизительно описать динамику многих параметров. Как известно из литературы [11], многие параметры функционирования сети не могут быть описаны известными математическими распределениями. В качестве примера можно привести процесс изменения длины очередей в маршрутизаторах. Как результат, использование вероятностного математического аппарата приводит к уменьшению точности моделирования реальной сети, также появляется необходимость калибровки модели сети перед проведением эксперимента моделирования. Под точностью моделирования сети понимается соответствие моделируемых процессов обработки и передачи сетевого трафика между узлами в заданной топологии с процессами, происходящими в реальной сети.
В тоже время хорошо известно из практики, что наиболее точным математическим описанием функционирования сети является композиция автоматов (в математическом смысле этого слова), представляющих функционирование стека протоколов [12].
Однако его использование сопряжено с рядом трудностей, основной из которых является сложность и большая размерность итоговой модели сети.
Целью данной работы является разработка и реализация системы моделирования процесса функционирования ГКС с возможностью анализа динамики распространения ВПО.
Для достижения поставленной цели необходимо было решить следующие задачи:
1. составить обзор математических методов описания/построения моделей функционирования сети и средств реализации моделей сети. Оценить их с точки зрения следующих критериев:
(a) точность моделирования функционирования сети (точность);
(b) требовательность к вычислительным ресурсам для вычисления результатов моделирования (ресурсоемкость);
(c) зависимость количества узлов в моделируемой сети от количества вычислительных ресурсов, используемых в процессе моделирования (масштабируемость);
2. построить формальную модель ГКС, которая позволяет моделировать функционирование ГКС с возможностью анализа динамики распространения 3. исследовать применимость эпидемических моделей, известных из медицины и биологии, для описания процесса распространения ВПО;
4. разработать систему имитационного моделирования ГКС с возможностью точного моделирования процесса распространения ВПО, то есть моделирования всех стадий (выбор жертвы, сканирование, заражение и т.д.) жизненного цикла ВПО;
5. исследовать динамику распространения тестового набора ВПО в разработанной системе имитационного моделирования ГКС.
Научная новизна работы заключается в разработке подхода к построению имитационных моделей на основе техники легковесной виртуализации [13], которая позволяет:
масштабировать модель вплоть до размеров ГКС;
сократить затраты на калибровку и идентификацию модели;
избежать необходимости доказательства корректности конкретной модели сети, то есть доказательства факта воспроизведения процессов обработки и передачи сетевого трафика в заданной пользователем топологии сети.
Практическая ценность в создании системы имитационного моделирования на основе техники легковесной виртуализации заключается в упорядочении и упрощении процесса построения имитационной модели ГКС. Подобная система предназначена для:
исследователей в области компьютерных сетей при анализе различных сетевых обменов и их влияния на различные сетевые характеристики;
разработчиков сетевых приложений и протоколов для определения корректности работы приложения или, например, для исследования сходимости нового протокола маршрутизации;
сетевых архитекторов на различных стадиях проектирования и реализации сети.
Построение имитационной модели при помощи техники легковесной виртуализации называется в литературе Hi-Fi моделирование [14]. При использовании техники легковесной виртуализации модель сети строится из «виртуальных контейнеров», главной целью которых является воспроизведение функционирования основных компонентов сети: сетевых интерфейсов, сетевого стека, каналов связи. Hi-Fi моделирование позволяет точно воспроизводить процессы обработки и передачи сетевого трафика, так как функционирования сети задается настройками виртуального сетевого стека операционной системы машины, на которой осуществляется процесс моделирования, что фактически означает использование реального сетевого стека.
Впервые Hi-Fi моделирование было использовано в программно-конфигурируемых сетях (ПКС) [15] для описания процесса взаимодействия коммутаторов и ПКС контролера. ПКС контролер — вычислительная машина, определяющая правила для реализации политик маршрутизации в контролируемом сегменте сети. Детально ознакомиться с ПКС сетями можно в следующих работах [16], [17].
Основные положения, выносимые на защиту:
1. Построена математическая модель, позволяющая моделировать функционирование ГКС, при этом результат моделирования близок к функционированию реальной сети. В терминах этой модели описана задача прогнозирования динамики распространения ВПО и показано, что она разрешима.
2. На основе техники легковесной виртуализации предложен новый подход к моделированию функционирования ГКС, позволяющий строить модели сетей необходимого размера. Отличительной чертой подхода является высокая точность моделирования процесса функционирования ГКС по сравнению с существующими подходами.
3. Разработана и реализована уникальная распределенная система имитационного моделирования (СИМ) сети с использованием «виртуальных контейнеров», названная Network Prototype Simulator (NPS). Результаты моделирования в СИМ NPS продемонстрированы применительно к задачи исследования динамики распространения ВПО.
Апробация работы. Основные результаты работы докладывались на:
17h GENI ENGINEERING CONFERENCE (GEC17);
SIGCOMM 2013;
YET ANOTHER CONFERENCE 2013;
SOFTWARE ENGINEERING CONFERENCE IN RUSSIA 2013.
Публикации. Основные результаты по теме диссертации изложены в печатных изданиях [18, 19], два из которых изданы в журналах, рекомендованных ВАК [18, 19].Объем и структура работы. Диссертация состоит из введения, четырех глав и заключения. Полный объем диссертации составляет 108 страниц с 36 рисунками и таблицами. Список литературы содержит 115 наименований.
Глава Обзор предметной области. Обзор методов и средств моделирования компьютерной сети Целью данного обзора является рассмотрение средств реализации и основных математических аппаратов, используемых для построения моделей сетей с точки зрения точности моделирования функционирования сети, требовательности к вычислительным ресурсам, зависимости количества узлов в моделируемой сети от количества вычислительных ресурсов, используемых в процессе моделирования.
1.1 Понятие глобальной компьютерной сети Для описания упомянутых требований (точности, ресурсоемкости, масштабируемости) необходимо определить базовые понятия для такого объекта, как ГКС. ГКС — это сеть, состоящая не менее чем из 105 узлов. Узлом сети будем называть точку в сети, имеющую уникальный сетевой адрес. Примером узла может быть либо хост, либо сетевое устройство, которое объединяет хосты между собой, например, коммутатор или машрутизатор. Хост (компьютер с сетевым интерфейсом) — это потребитель сетевого сервиса ГКС, на котором задан уникальный сетевой адрес.
Предполагается, что ГКС обладает следующими свойствами:
размер сети не менее 105 хостов. Хостом является только вершина степени один в графе сети (см. рисунок 1.1);
сеть разделена на домены. Домен — это множество связанных между собой хостов. Будем считать, что множества хостов различных доменов не пересекаются.
Мобильные хосты не рассматриваются, то есть при переходе хоста из одного домена в другой первоначальные свойства домена не изменяются;
различные домены связаны между собой каналами типа «точка-точка» [20]. Под каналом будем понимать пару сетевых интерфейсов, которые связывают хосты с сетевыми устройствами или сетевые устройства между собой.
В основном в литературе для обозначения элемента структуры ГКС используется термин хост. Основываясь на предположении о том, что домен может состоять из единственного хоста, далее в тексте по умолчанию будет использоваться термин хост и только в отдельно оговариваемых случаях — домен.
обмениваются между собой данными. Между сетевыми приложениями возникают потоки данных, совокупность которых образует трафик сети. Отметим, что на хосте могут работать несколько сетевых приложений (см. рисунок 1.2).
Сетевая активность ГКС определяется потоками трафика, передаваемыми между хостами. Эти потоки мы будем разделять на два класса :
легитимный трафик — трафик, генерируемый сетевыми приложениями и служебными сетевыми протоколами (ICMP, DNS, DHCP и др.);
вредоносный трафик — трафик, генерируемый при передаче экземпляра вредоносного программного обеспечения (ВПО) и сетевой активности каждого экземпляра ВПО.
Современные ГКС обеспечивают инфраструктуру для работы сетевых приложений с высокими требованиями к сетевому сервису. Как хорошо известно из литературы, предоставляемый сетью сервис характеризуется понятием качества. Под качеством сервиса обычно понимается набор параметров сервиса, например [21]:
доступность предоставляемого сервиса (service availability) определяет надежность соединений пользователей с сервис-провайдером;
задержка (delay) характеризует интервал между приемом и передачей пакетов;
отклонение от средней задержки (jitter) описывает возможные отклонения от времени задержки при передаче пакетов;
производительность или пропускная способность (throughput) — скорость передачи пакетов в сети определяется для каждого потока трафика. Выделяют среднюю (average rate) и пиковую (peak rate) скорости. Можно встретить термин пропускная способность применительно к каналу; в этом случае имеется ввиду постоянная, заявленная скорость передачи трафика по каналу;
доля потерянных пакетов (packet loss rate) — процент пакетов, сброшенных во время передачи по сети. В общем случае потери могут быть связанны со множеством причин: отказ оборудования, неправильная конфигурация оборудования, загрузка каналов, ошибки передачи и т.д. В данной работе будут рассматриваться только потери, происходящие вследствие перегрузок сети (congestion).
1.1.1 Требования к моделированию функционирования ГКС На текущий момент существует ряд работ, посвященных построению моделей сети для исследования влияния различной сетевой активности на процессы функционирования сети [22,23] [24]. Точность и детальность моделирования зависят от выбора математического аппарата, на основе которого строится имитационная модель.
Моделирование функционирования ГКС выдвигает особые требования, которые необходимо учитывать при выборе математического аппарата:
Масштабируемость. ГКС по определению является сетью с большим числом узлов, модель должна позволять варьировать в широком диапазоне число узлов в сети без особых усилий для перестроения модели.
Ресурсоемкость. Требовательность к вычислительным ресурсам, необходимым для моделирования сети, заданного пользователем размера.
Точность. Обычно подходы, используемые для построения моделей ГКС, обладают низкой точностью. Это связанно с высокой ресурсоемкостью «точных»
моделей [25]. В тоже время для исследования конкретных сетевых протоколов или для моделирования определенного рода сетевой активности (например, распространения ВПО) требуется точно, вплоть до работы с полями заголовка сетевого пакета, моделировать сетевое взаимодействие. В противном случае модель исследования сетевого протокола (сетевой активности) перестает быть адекватной.
Исходя из анализа открытых источников, были проанализированы существующие математические аппараты и средства реализации моделей сети по критериям: точность, ресурсоемкость и масштабируемость. С подробностями данного анализа можно познакомиться далее в тексте обзора.
1.2 Моделирование компьютерной сети Модель – это объект или описание объекта системы для замещения (при определенных условиях, предложениях, гипотезах) одной системы (т.е. оригинала) другой системой для лучшего изучения оригинала или воспроизведения каких-либо его свойств [26, 27]. Модель должна строиться так, чтобы она наиболее полно воспроизводила те свойства объекта, которые необходимо изучить в соответствии с поставленной целью, либо которые оказывают определяющее влияние на изучаемые свойства [28].
Одним из основных подходов к моделированию является имитационное моделирование. Имитационная модель сети — это модель, которая описывает топологию, процессы передачи и обработки сетевого трафика, ресурсы сети.
Имитационное моделирование сети позволяет проводить исследования состояния сети, опираясь на базовые правила функционирования сети. При использовании подобного подхода необходимые свойства и функционал сети описываются в терминах выбранного математического аппарата, следовательно, не требуется затрат на специализированное сетевое оборудование.
Результатом имитационного моделирования сети является собранные в ходе наблюдения за протекающими событиями данные о наиболее важных характеристиках сети: временах реакции, коэффициентах использования каналов и узлов, вероятности потерь пакетов и т.п.
В процессе имитационного моделирования сети могут быть определены следующие параметры:
предельные пропускные способности различных сегментов сети;
зависимость потерь пакетов от загрузки отдельных хостов и каналов;
время отклика хостов сети;
влияние установки новых хостов на перераспределение сетевых потоков;
решение оптимизации топологии при возникновении узких мест в сети;
выбор внутреннего протокола маршрутизации и его параметров (например, метрики определения оптимального маршрута);
определение предельно допустимого числа пользователей того или иного ресурса оценка влияния вредоносного трафика на работу сети, например, при распространении сетевого червя.
Обычно для имитационного моделирования сети необходимо задать набор входных параметров исследуемой сети (например, задержки на каналах связи, пропускные способности каналов связи, характеристики сетевого оборудования, принятая в сети политика маршрутизации). Набор параметров зависит от целей моделирования, и, соответственно, от интересующих нас выходных параметров модели. При этом, чем точнее будет воспроизведено функционирование сети, тем больше вычислительных ресурсов потребуется для обсчета построенной модели. Кроме того, необходимо сделать некоторые предположения относительно распределения загрузки для конкретных хостов и других сетевых элементов, задержек в каналах, времени обработки запросов в различных точках сети.
Как было сказано во введении, процесс построения имитационной модели делится на два этапа:
1. выбор математического аппарата и построение математической модели сети;
2. решение математической модели через ее программную реализацию на вычислительной системе.
1.2.1 Выбор математического аппарата для моделирования ГКС В основе любой формальной модели лежит определенный математический аппарат, либо их комбинация [29]. Примером математического аппарата может быть:
теория вероятностей;
сети Петри;
теория графов;
теория автоматов.
Формальное представление модели описывает объект в терминах конкретного математического аппарата. При этом решение конкретной модели может быть представлено в одном из двух видов:
1. аналитическое решение, когда математическая модель имеет решение в аналитическом виде, то есть результат моделирования представляется в виде выражения в элементарных функциях. Эти функции определяют зависимость входных параметров модели от выходных. В литературе подобный подход можно встретить под названием аналитическое моделирование [30];
неаналитическом виде. Как правило, это решение носит приближенный характер.
Данный подход применяется в случаях, когда аналитическое решение неизвестно или способ его нахождения трудоёмок.
Теория вероятностей В настоящие время элементы теории вероятности (ТВ) используются для моделирования динамических характеристик сетевого трафика (например, интенсивность трафика, доля потерь, средняя задержка). Существуют работы, которые используют марковские процессы для моделирования конкретных протоколов, например, TCP [31]. Отличительной чертой таких моделей является их узконаправленность, что делает их применимыми только для специализированных задач.
При моделировании сетевого трафика, помимо использования марковских процессов, можно выделить еще два класса вероятностных моделей:
1. основанные на модулированных случайных процессах, например, модель Generaly Modulated Procces (GMP) [32];
2. учитывающие статистическое самоподобие сетевого трафика (фрактальные модели), например, модель на основе хаотических отображений Chaotic Map (CMAP) [33] В основе GMP лежит идея управления законом распределения при помощи вспомогательного стохастического процесса. Стохастический процесс — это процесс изменения во времени состояния или характеристик некоторой системы под влиянием различных случайных факторов, для которого определена вероятность того или иного его течения [34]. При этом источник трафика может находиться в одном из множества состояний, задающих параметры случайного процесса генерации нагрузки. Переход между состояниями обуславливается дополнительным моделирующим случайным процессом.
детерминированной модуляцией Generaly Modulated Deterministic Process (GMDP) [35] и процессы с марковской модуляцией Markov Modulated Procces (MMP) [36].
В GMDP моделях источник трафика может быть в одном из нескольких состояний.
Система остается в конкретном состоянии в течение определенного интервала времени, при этом источник трафика генерирует нагрузку заданную распределением случайной величины, которая зависит от времени. Время в данной модели задается дискретно.
В MMP моделях управляющий процесс является марковским процессом c непрерывным временем и конечным множеством состояний. Марковский процесс — это случайный процесс, эволюция которого после любого заданного момента времени не зависит от эволюции в предшествовавшие моменты времени при условии, что значение процесса в этот момент фиксировано [34]. То есть "будущее" и "прошлое" процесса не зависят друг от друга при известном "настоящем". В этом случае текущий закон распределения нагрузки полностью определяется текущим состоянием марковского процесса.
Также находят применение модели Markov Modulated Poisson Process (MMPP) [37], которая представляет собой разновидность процессов с марковской модуляцией, в которых источник трафика генерирует пуассоновскую нагрузку.
Вторым классом моделей, основанных на ТВ, являются модели, использующие статистическое самоподобие сетевого трафика. Очевидно, что данные модели используются только для моделирования сетевого трафика. Свойством, характеризующим самоподобие сетевого трафика, является масштабная инвариантность по времени, так что при изменении временной шкалы его структура остается неизменной [38].
Модели, использующие данное свойство, называются фрактальными. Примерами таких моделей являются Fractional Brown Motion (FBM) [39], и Fractional Gaussian Noise (FGN) [39].
FBM и FGN успешно использовались в гидрологических исследованиях, откуда их применение было перенесено в область моделирования сетевого трафика.
Общим недостатком моделей, базирующихся на ТВ, является их специфичность и отсутствие универсальности. Кроме того, применение их на практике приводит к большому объему исследовательской работы, требуемой для адаптации моделей к параметрам сетевой конфигурации. Из вышесказанного следует, что ТВ не удовлетворяет требованиям масштабируемости и точности к моделированию функционирования ГКС.
Теория массового обслуживания Теория массового обслуживания (ТМО) — раздел теории вероятностей, целью исследований которого является выбор структуры системы обслуживания потоков сообщений, поступающих в систему, оценка длительности ожидания и длины очередей сообщений [40]. Как было сказано выше, сеть представляется в виде совокупности узлов. Узлы обмениваются между собой данными; порции данных будем называть сообщениями. Сообщение, пришедшее на узел, ждет некоторое время до того, как оно будет обработано. При этом может образоваться очередь таких сообщений, ожидающих обработки. Полное время передачи складывается из трех составляющих:
1. время распространения;
2. время обслуживания;
3. время ожидания.
Обычно модели на основе ТМО строят для определения среднего значения общего времени передачи сообщения (заявки) [41]. Стоит отметить, что при больших загрузках основной по продолжительности составляющей является время ожидания обслуживания. Для описания процессе обработки трафика сетевым устройством (например, маршрутизатором или коммутатором) используется понятие очередей, формальное определение можно найти в [42]. Наиболее распространенными дисциплинами обслуживания очереди являются FIFO (First-In-First-Out), LIFO (LastIn-First-Out) и FIRO (First-In-Random-Out). Например, запись M/M/2 означает очередь, для которой времена прихода и обслуживания имеют экспоненциальное распределение. При этом имеется два узла, длина очереди и число клиентов могут быть сколь угодно большими, а дисциплина обслуживания является FIFO [43].
В настоящее время в сетях протоколы канального уровня используют основанные на разделении во времени методы доступа к среде. В этом случае, как и во всех случаях разделения ресурсов со случайным потоком запросов, возникают очереди. Для описания этого процесса тоже используются элементы ТМО. Например, механизм протокола Ethernet упрощенно описывается моделью типа M/M/1 одноканальной моделью с пуассоновским потоком заявок и показательным законом распределения времени обслуживания. Она хорошо описывает процесс обработки случайно поступающих заявок на обслуживание системами с одним обслуживающим прибором со случайным временем обслуживания и буфером для хранения поступающих заявок на время, пока обслуживающий прибор занят выполнением другой заявки.
Передающая среда Ethernet представлена в этой модели системой массового обслуживания, а пакеты соответствуют заявкам [30].
Используя элементы ТМО, зачастую удается получить решения достаточно широкого круга задач по исследованию рассматриваемой сети. В то же время он имеет ряд существенных недостатков, к числу которых относятся упрощения моделируемого объекта, которое ведет к потере точности моделирования [43]:
упрощения моделируемого объекта: представление трафика как простейших потоков заявок; предположение об распределении длительностей обслуживания высокая ресурсоемкость для сложных моделей, например, представления в модели процесса функционирования стека TCP/IP в виде системы очередей, предъявляет существенные требования к вычислительным ресурсам [44];
невозможность использования ТМО для описания специфицированной сетевой активности. Например, отправка определенного вида пакетов, либо генерация определенных сетевых запросов пользователем.
В итоге, ТМО не удовлетворяет требованиям точности и ресурсоемкости к моделированию функционирования ГКС.
Сети Петри Часто исследователи для построение моделей КС обращаются к формальным системам, основанным на использовании математического аппарата сетей Петри (СП).
Моделирование в СП осуществляется на событийном уровне. Определяются какие действия происходят в сети, какие состояния предшествовали этим действиям и какие состояния примет сеть после выполнения этих действий. Выполнение событийной модели в сетях Петри описывает поведение сети. Анализ результатов выполнения может сказать о том, в каких состояниях пребывала или не пребывала сеть, какие состояния в принципе не достижимы. Однако такой анализ не дает числовых характеристик, определяющих состояние КС [45].
Среди достоинств аппарата СП можно указать следующие:
позволяет моделировать асинхронность и параллелизм (в СП могут одновременно и независимо друг от друга сработать несколько переходов);
предоставляет возможность введения любой степени иерархической детализации описываемых сетевых компонент;
позволяет формальными средствами доказывать существование или отсутствие определенных состояний СП (речь о простых СП).
Однако формальная модель СП в силу своей универсальности имеет ряд недостатков, затрудняющих практическое применение для построения модели сети. К основным таким недостаткам можно отнести следующие:
высокая трудоемкость анализа сетей большой размерности;
описательная мощность СП недостаточна для содержательного моделирования.
Достаточно сложно в терминах меток описать поведение сложного сетевого приложения;
обычные СП не отражают временные характеристики моделируемой системы, то есть нет модельного времени;
невозможность проведения логических преобразований и, как следствие, невозможность управления продвижением фишек по сети. Данный недостаток существенно осложняет применения аппарата СП, например, для моделирования маршрутизации в сети.
Следовательно, СП не удовлетворяют требованиям точности к моделированию функционирования ГКС.
Теория графов Другим распространенным математическим аппаратом для анализа структурных свойств сетей является теория графов (ТГ) [46]. Данный математический аппарат является основным для исследования структурных вопросов в области моделирования компьютерных сетей, например, для нахождения кратчайшего пути между узлами сети. В случае, когда необходимо помимо топологии моделировать сетевого трафик, ТГ используется совместно с другими математическими аппаратами, например, ТМО.
ТГ позволяет точно описывать структуру сети, представляя сеть в виде графа, обычно ориентированного, где дуги графа соответствуют каналам связи, а вершины — узлам сети. Однако при моделировании сети на уровне хостов, ТГ не позволяет предложить масштабируемое решение для сетей больших размеров. В первую очередь это связанно с высокой ресурсоемкостью построения графа модели сети, сравнимой по размеру с ГКС.
Перспективным для моделирования ГКС является подход, когда уровень абстракции понятия узла можно менять. В определенных случаях узел может представлять отдельный хост, в других — набор хостов и сетевых устройств. За счет абстрагирования от структуры связей внутри таких наборов мы получаем возможность масштабирования модели сети.
В итоге ТГ с точки зрения моделирования структуры ГКС полностью удовлетворяет требованиям, но с точки зрения моделирования процессов обработки и передачи сетевого трафика между узлами:
не применима без использования дополнительных математических аппаратов;
представляет компромисс между уровнем абстракции понятия узла и точности моделирования процессов обработки и передачи сетевого трафика.
Теория автоматов Один из популярных математических аппаратов для исследования сетевых политик маршрутизации является теория автоматов (ТА). ТА предполагает представление каждой компоненты модели сети в виде автомата. ТА утверждает, что любой процесс может рассматриваться как последовательная смена состояний некоторого объекта во времени. Следовательно, процесс обмена между узлами сети представляет собой последовательности некоторых операций, осуществляемых в определенные моменты времени. Поэтому для их моделирования могут быть использованы методы теории автоматов [47].
Обычно исследователи используют конечные автоматы, например, для описания сетевых протоколов [48]. Это связанно с тем, что конечные автоматы предоставляют удобный способ описания логики функционирования, поэтому подходят для моделирования составляющих модели сети, реализующих обмен сетевым трафиком (хостов, маршрутизаторов, коммутаторов).
При использовании ТА для предсказания поведения системы необходим вычислительный эксперимент [42]. Модели на основе конечных автоматов являются удобными средствами описания протоколов [49], но попытки описания сложных составляющих сети, например, сетевого стека, приводят к большому числу переходов состояний, что затрудняет реализацию автоматной модели.
Стоит отметить, что представить всю сеть, особенно масштабов ГКС, в виде единого автомата является чрезвычайно ресурсоемкой задачей, а при определенных размерах сети и вовсе невыполнимой. Для моделирования больших сетей возможно использование нескольких автоматов, что позволяет построить масштабируемое решение.
ТА представляется удобным инструментом для описания процесса обработки трафика сетевыми устройствами, а также описания процесса функционирования сетевых приложений. Однако, несмотря на универсальность ТА, использование данного математического аппарата без комбинации с другими не представляется возможным для моделирования функционирования ГКС.
Следовательно, ТА не удовлетворяет требованиям масштабируемости и ресурсоемкости к моделированию функционирования ГКС.
Выводы Сравнительный анализ математических аппаратов с целью исследования возможности их использования для построения моделей ГКС, представлен в таблице 1.1.
(*) — зависит от необходимости моделирования сетевого трафика. В случае моделирования только структуры сети — это «чистый плюс».
Таблица 1.1: Сравнительный анализ математических аппаратов.
Математический аппарат Точность Ресурсоемкость Масштабируемость Итак, ни один из представленных подходов к построению математической модели функционирования сети не удовлетворяет требованиям к моделированию ГКС (см. рисунок 1.3). Необходимо предложить гибридный вариант, который будет удовлетворять требованиям: точности, масштабируемости и ресурсоемкости. Данный подход был предложен, и на его основе построена формальная модель ГКС, описанная в главе 2.
1.2.2 Средства реализации имитационной модели сети Процесс реализации имитационной модели сети заключается в разработке программы, которая шаг за шагом воспроизводит события, происходящие в моделируемой сети. Обычно говорят о двух способах реализации имитационной модели:
1. использование специализированных языков моделирования;
2. использование специализированной системы имитационного моделирования. В данном случае разработчик строит модели, используя систему имитационного моделирования (СИМ), базируясь на математический аппарат, заложенный в основу конкретной СИМ.
Требования к средствам реализации имитационной модели сети В настоящее время к средствам реализации имитационной модели предъявляется существенный ряд требований, как то:
описание исследуемой системы на различных уровнях детализации без ограничений на их количество;
точность Рисунок 1.3: Обзор математических аппаратов имитационного моделирования.
проектирование модели в графическом режиме на основе готовых блоков при минимальном объеме программирования;
удобное и полное представление работы программного обеспечения сети (работы сетевых приложений);
наглядное отображение процесса моделирования (использование методов анимации);
снижение затрат времени моделирования на сбор статистики (накопление данных по требованию);
распределенное моделирование сети на нескольких вычислителях;
точное описание процесса обработки PDU;
избегание процессов идентификации и калибровки модели сети.
В рамках данной работы добавляется требование: возможность моделирования сетей масштабов, сравнимых с ГКС.
Далее рассмотрим основных представителей средств реализации имитационных моделей с точки зрения предъявляемых требований.
Языки моделирования Язык программирования — это формализованный язык, предназначенный для описания алгоритма для выполнения на вычислительной машине. Универсальные алгоритмические языки обеспечивают возможность реализации на вычислительных средствах разнообразных моделей (моделей сети в частности), однако, недостатком их использования в решении задач имитационного моделирования является сложность реализации и количество времени, затрачиваемое на разработку и исследование имитационных моделей по причине их универсальности. Примерами универсальных языков являются: С, С++, Java, Delphi и др.
Существуют специальные языки имитационного моделирования, которые облегчают процесс создания программной модели по сравнению с использованием универсальных языков программирования. Примерами языков имитационного моделирования могут служить такие языки, как SIMULA [50], GPSS [51] Языки имитационного моделирования обладают определенным рядом преимуществ по сравнению с универсальными языками:
снижение трудоемкости реализации имитационных моделей;
четкая классификация компонентов имитационной модели;
обеспечение гибкости, необходимой для изменения реализации имитационной описание связей между компонентами имитационной модели;
возможность управления модельным временем;
способность накапливать выходные данные;
способность проводить статистический анализ накапливаемых данных;
способность распределять выходные данные по заранее заданным форматам;
возможность выявлять и регистрировать логические несоответствия и другие ситуации, связанные с ошибками.
Язык SIMULA предназначен для моделирования систем с дискретными событиями, т.е. систем, представляющих последовательность сменяемых друг друга мгновенных событий. Главную роль в языке играют параллельно функционирующие процессы, которые выступают в качестве компонентов моделируемой системы. Они имеют свою структуру данных и программу действий. В каждый момент времени активен только один процесс, который может вызывать и планировать новые процессы и события. Для этой цели в языке имеются планирующие и управляющие операторы.
Язык моделирования дискретных систем GPSS (General Purpose System Simulator) является одним из самых распространенных в мире языков имитационного моделирования. В основу языка GPSS положены результаты исследований разнообразных дискретных систем, показавшие, что любую систему можно описать с помощью необходимого набора абстрактных элементов или объектов. Формальными основными моделями, для имитации которых используется GPSS, являются системы массового обслуживания, конечные и вероятностные автоматы, сети Петри, агрегаты.
К недостаткам языков имитационного моделирования можно отнести:
использование только стандартных форм вывода результатов моделирования;
недостаточная распространенность языков моделирования, следовательно, затруднен перенос моделей на другие платформы;
необходимость дополнительного обучения языкам моделирования;
отсутствие гибкости и широких возможностей, присущих универсальным языкам программирования;
отсутствие специализации: набора моделей базовых объектов, характерных для области моделирования.
Стоит отметить, что на данный момент не существует специализированных языков имитационного моделирования или библиотек к общим языкам имитационного моделирования для моделирования ГКС. Исходя из недостатков данных языков, можно сделать вывод лишь о частичной применимости данного средства для моделирования ГКС, например, в качестве промежуточного представления модели ГКС на этапе построение модели. Подобный подход уберет необходимость исследователя работать с большим набором данных, однако оставит возможность использовать уже имеющиеся наработки и библиотеки, написанные для конкретного языка имитационного моделирования.
Системы имитационного моделирования Система имитационного моделирования (СИМ) - комплекс программных средств для создания имитационной модели и ее симуляции (имитации). При использовании СИМ упрощается процесс построения имитационной модели, так как в них обычно уже реализованы атомарные компоненты для построения модели КС: каналы, сетевые устройства, модели протоколов и приложений. СИМ строят модель сетей на основе:
исходных данных о ее топологии, алгоритмах и методах обработки трафика;
интенсивности потоков запросов между узлами сети;
пропускной способности и номинальной задержки каналов связи.
По способу взаимодействия с пользователем СИМ могут быть автономными и интерактивными. Автономные модели не требуют вмешательства исследователя после определения режима моделирования и задания исходных данных. Взаимодействие пользователя с такими моделями сводится только к вводу исходной информации и управлению началом и окончанием процесса моделирования. Интерактивные модели предусматривают диалог с пользователем в том или ином режиме в соответствии со сценарием моделирования, позволяющий пользователю приостанавливать моделирование, изменять значения параметров модели, корректировать перечень регистрируемых данных и т.д, примером могут служить различные симуляторы.
Применительно к сетям СИМ могут воспроизводить следующую функциональность сети:
процессы генерации сообщений сетевыми приложениями;
разбиение сообщений на пакеты и кадры определенных протоколов;
задержки, связанные с обработкой сообщений, пакетов внутри хостов и сетевых процесс обработки поступающих пакетов сетевыми устройствами.
Результатом работы СИМ являются собранные в ходе моделирования статистические данные об интересующих характеристиках КС:
задержка при передаче пакета;
утилизация ресурсов каналов и узлов КС;
доля потерянных пакетов и т.п.
По функциональности СИМ, используемые при исследовании КС, например, можно представить в виде двух классов:
Системы, моделирующие отдельные элементы (компоненты) КС. Например, Linuxbridge [52], OpenVSwitch [53], ClickRouter [54]. Эти системы моделируют функционирование распространенных типов маршрутизаторов, каналов связи, методов доступа, протоколов. Модели отдельных элементов сети создаются на основании различных данных: результатов тестовых испытаний реальных устройств, анализа принципов их работы, аналитических соотношений. В результате создается библиотека типовых элементов сети, которые можно настраивать с помощью заранее предусмотренных в моделях параметров.
Системы, моделирующие КС целиком. Например, системы NS-3 [55], NetEmulab На сегодняшний день известно достаточно много сетевых симуляторов, например:
OPNET [57], OMNET [58], OMNET++ [58], NS-2 [59], NS-3.
Одним из самых распространённых является СИМ NS-2, созданная в 80-х годах. NSявляется свободно распространяемым программным обеспечением, имеет достаточно большое и развитое сообщество, и как следствие — большое количество модулей, дополнений, готовых к использованию. NS-2 является объектно-ориентированным программным обеспечением, использующим два языка программирования: ее ядро реализовано на языке C++, а языком скриптов является Object oriented Tool Command Language (Otcl) [60], он используется в качестве интерпретатора. Такой подход является компромиссом между удобством использования и скоростью. В NS-2 в качестве системного языка используется C++, позволяющий обеспечить:
высокую производительность;
работу с сетевыми пакетами на низком уровне абстракции модели;
возможность модифицирования ядра NS-2 с целью поддержки новых функций и протоколов.
NS-2 (см. рисунок 1.4) содержит большой набор протоколов, таких как TCP, UDP, а так же позволяет реализовывать различные типы приложений. Среди них: ftp, telnet, http, которые используют TCP в качестве основного транспортного протокола. В NS- на уровне ядра реализованы многие известные протоколы. Среди наиболее актуальных на данный момент можно отметить следующие: MPLS, IPv6, OSPF, RSVP, протоколы беспроводной связи. Реализовано семейство дисциплин обслуживания очередей [61]:
RED, WFQ, CBQ, SFQ [62] и т.д. Также возможна реализация собственного протокола в рамках программы.
В отличии от NS-2, в NS-3 (см. рисунок 1.5) помимо С++ может использоваться Python. Оба языка в симуляторе равноправны и принимаются для описания моделей телекоммуникационных систем. Присутствует реализация различных типов Meshсетей на основе стека протоколов 802.11s. В NS-3 разработан модуль FlowMonitor, предоставляющий гибкие методы сбора самых различных показаний с моделируемых активных сетевых устройств и каналов связи. Симулятор не имеет собственного графического интерфейса, однако для средств визуализации моделей используются проекты NetAnimator [63] и PyViz [64].
OPNET — СИМ для проектирования и моделирования локальных и глобальных сетей, компьютерных систем, приложений и распределенных систем. Имеет возможность импорта и экспорта данных о топологии и сетевом трафике. OPNET (см. рисунок 1.6) способна моделировать иерархические, многопротокольные, локальные и глобальные сети, с учетом алгоритмов маршрутизации. Поддерживается возможность генерации сетевой топологии - кольца, звезды, случайной топологии сети.
Существенным моментом является то, что данная система является коммерческой.
Система OmNET++ является совокупностью программных библиотек, в которых хранятся функции для работы с имитационными моделями сетей. OmNET++ (см. рисунок 1.7) является объектно-ориентированным программным обеспечением, использующим язык программирования C++. Система OmNET++ является СИМ общего назначения (а не только КС). В данной системе реализован практически весь функционал, который был указан для предыдущих систем.
Система моделирования AnyLogic [65] — отечественная система имитационного моделирования, которая предназначена для разработки и исследования имитационных моделей. AnyLogic (см. рисунок 1.8) была разработана на основе идей в области теории параллельных взаимодействующих процессов и теории гибридных систем. AnyLogic основана на объектно-ориентированной концепции, представляющая модели как набор взаимодействующих, параллельно функционирующих активностей.
Графическая среда моделирования поддерживает проектирование, разработку, документирование модели, выполнение компьютерных экспериментов, оптимизацию параметров относительно некоторого критерия. При разработке модели на AnyLogic можно использовать концепции и средства из нескольких классических областей имитационного моделирования:
динамических систем;
дискретно-событийного моделирования;
системной динамики;
агентного моделирования.
В итоге можно сделать вывод, что существующие наиболее популярные СИМ для моделирования сети очень близки по возможностям между собой. Однако все они обладают рядом недостатков, которые не позволяют их использовать для моделирования ГКС (см. рисунок 1.9):
ограниченные возможности описания функционирования сетевых приложений в узлах сети;
скрытость алгоритмов функционирования ряда модулей и отсутствие исходных кодов инструментальных средств (верно для OPNET);
отсутствие в некоторых случаях возможности создания собственных блоков и ограничения на выбор уровней детализации создаваемый модулей;
выполнение на единственном вычислителе, отсутствие интерфейсов сорганизованной работы одновременно нескольких вычислителей, моделирующих разные части одной модели сети.
Качество результатов имитационного моделирования функционирования в значительной степени зависит от точности исходных данных о сети, переданных на вход СИМ сети. В вышеописанных СИМ [57, 58, 66, 67] моделируемая сеть описывается на уровне отдельных хостов и маршрутизаторов, что непригодно для моделирования ГКС по следующим причинам:
чрезмерная вычислительная сложность. Согласно исследованиям, проведенным в работе [68], максимальный размер сети, при котором возможно применение подобного подхода, составляет 104 узлов. Размер ГКС — 105 и более, вследствие чего существующие вычислительные системы не позволяют получить решение модели за приемлемое время;
сложность сбора данных для описания структуры сети и определения потоков трафика. Для того чтобы провести моделирование сети на уровне хостов, необходимо определить топологию сети, а также для каждого хоста указать его основные свойства, в частности набор установленных сетевых приложений, их сетевую активность и т.д. Настолько подробные сведения обо всех хостах в масштабах ГКС на практике получить очень сложно. Более того, описать корректно подобную сеть невозможно из-за трудоемкости и высокой вероятности Сравнительный анализ средств реализации имитационных моделей сетей с целью исследования возможности их использования для построения моделей ГКС представлен в таблице 1.2.
Таблица 1.2: Сравнительный анализ средств реализации имитационных моделей сетей.
Следовательно, необходима разработка собственной СИМ, удовлетворяющей требованиям описанным в 1.2.2. Данная СИМ должна быть свободна от указанных недостатков и по своим выразительным возможностям не должна существенно уступать рассмотренным СИМ.
точность Рисунок 1.9: Обзор средств реализации имитационной модели.
Hi-Fi системы имитационного моделирования Напомним что, моделирование процесса функционирования сети заключается в возможности воспроизводить:
топологию и ресурсы сети;
процессы обработки сетевого трафика:
процессы передачи сетевого трафика:
сетевой трафика:
– способы генерации трафика/нагрузки в сети;
– инициализацию сетевых приложений.
СИМ, моделирующие с высокой точностью процесс функционирование сети, называют high-fidelity системами (или Hi-Fi СИМ). Под высокой точностью обычно понимается точность реального оборудования, либо эмуляторов оборудования. HiFi СИМ являются удобным инструментом для исследования, так как модели построенные при помощи Hi-Fi СИМ либо существенно упрощают, либо вовсе не требуют доказательство корректности и адекватности построенной модели сети. Как известно, процесс доказательства корректности и адекватности построенной модели в некоторых случаях (например, при построении модели ГКС) может требовать больших трудозатрат, чем процесс построения модели [19].
Одной из основных особенностей ГКС является большой размер, следовательно, ресурсов одного вычислителя для имитационного моделирования ГКС недостаточно.
Несмотря на привлекательность Hi-Fi СИМ, существующие реализации применимы только для моделирования сетей малого размера. Очевидным вариантном решения данной проблемы является разработка распределенного варианта Hi-Fi СИМ с целью задействовать в процессе моделирования несколько вычислителей. Для любой распределенной системы является актуальным вопрос синхронизации времени между компонентами данной системы.
На данный момент единственной доступной реализацией Hi-Fi подхода является система Mininet. Система Mininet, разработанная в университете Стэнфорда [69], — система прототипирования компьютерной сети с открытым исходным кодом [70], основанная на техниках легковесной виртуализации в операционной системе машины, на которой выполняется процесс моделирования [71]. Данная система разрабатывалась для быстрого построения сегментов программно-конфигурируемых сетей (ПКС сетей). Целью построения данных сегментов является разработка и отладка сетевых приложений для ПКС контроллера, основного компонента ПКС сегмента [72–74], отвечающего за маршрутизацию пакетов. Использование метода легковесной виртуализации для моделирования впервые применено в системе Mininet.
Методы, используемые в данном подходе, позволяют детально моделировать процесс функционирования сети.
Главной особенностью системы Mininet является возможность создавать сегменты виртуальной сети в рамках одной локальной машины. Эмпирические исследования показали, что Mininet может строить сеть, топология которой состоит не более чем из 2000 узлов.
Система Mininet использует две основные техники виртуализации, реализованные в ОС Linux [75]:
Network namespaces. Network namespace — это логически отделенный от других стек сетевых протоколов в ОС Linux. Представляет собой контейнерную виртуализацию для сетевых интерфейсов. При помощи данной виртуализации эмулируется полностью сетевой стек: сетевые интерфейсы, таблица маршрутизации, сетевой экран и т.д.
Работа осуществляется на уровне ядра ОС и для определенных процессов ОС;
Virtual Ethernet pairs. Два контейнера виртуализации (виртуальных сетевых интерфейса) соединенных между собой. Представляется в виде специального виртуального устройства, соединяющего мост с виртуальным интерфейсом контейнера.
Одно из существенных преимуществ системы Mininet — это отсутствие необходимости вносить изменения в разрабатываемое или тестируемое сетевое приложение (при переносе на реальное оборудование). Это достигается за счет обработки сетевого трафика в узлах моделируемой сети. Стоит отметить, что Mininet не является СИМ. Основной задачей этой системой является создание тестовой площадки для отладки новых сетевых протоколов и приложений. Следовательно, в системе Mininet не было уделено должное внимание методам управления временем, библиотекам специализированных сервисов и т.п. В сочетании с требованием масштабируемости и ограничения размера топологии Mininet сети (до 2000 узлов) делает ее неприменимой для моделирования ГКС.
Одной из основных особенностей ГКС является большое количество узлов, следовательно, ресурсов одного вычислителя для имитационного моделирования ГКС недостаточно. Очевидным вариантном решения данной проблемы является разработка распределенного варианта Hi-Fi СИМ с целью задействовать в процессе моделирования несколько вычислителей.
Выше были представлены только наиболее существенные представители СИМ сети.
Подробное описания других рассмотренных систем моделирования можно найти в [76].
1.3 Выводы В результате обзора математических аппаратов для моделировании ГКС было показано, что невозможно выбрать единственный математический аппарат для моделирования функционирования ГКС. Предлагается использовать комбинацию математических аппаратов: теории графов, теории массового обслуживания, теории автоматов. Предполагается, что модель, построенная с использованием возможности данной комбинации математических аппаратов удовлетворит требованиям точности, ресурсоемкости и масштабируемости модели ГКС. Построенная модель ГКС описана в разделе 2.2. Доказательство этого предложения приводится в экспериментальном исследовании, представленном в главе 4.
В результате обзора существующих средств реализации имитационной модели обнаружилось, что ни одно не удовлетворяет описанным требованиям (см. раздел 1.2.2).
Наиболее перспективными для реализации модели ГКС были выбраны Hi-Fi СИМ (см. рисунок 1.9). Однако по причине отсутствия готовых СИМ, удовлетворяющих требованиям модели ГКС, необходима разработка и реализация собственной СИМ.
Описание реализованной СИМ представлено в главе 3.
Глава Формальная модель глобальной компьютерной сети В данной главе приведено описание формальной модели ГКС при помощи математических аппаратов: теории графов, элементов теории массового обслуживания, а также теории автоматов. Основная цель данной формальной модели — спрогнозировать динамику распространения ВПО. Приведены основные понятия и термины. Доказано, что задача исследования динамики распространения ВПО в построенной формальной модели имеет решение.
Будем называть доменом (см. рисунок 2.1) — множество хостов и сетевых устройств.
Хосты и сетевые устройства обмениваются между собой данными. Процесс обмена представляется в виде потока данных между доменами, который будем называть поток данных или поток. Каждый домен имеет определенный набор истоков и стоков:
исток — это точка подключения канала к домену, через которую поток поступает сток — это точка подключения канала к домену, через которую поток уходит из Допускается наличие нескольких стоков и/или истоков у одного домена.
Домены связаны между собой каналами связи или каналами. По каждому каналу поток может проходить только в одном направлении. Каждый канал имеет фиксированную пропускную способность. Канал может быть подключен только к одному стоку и одному истоку соответствующего домена. Другими словами, канал не может соединять один и тот же сток с несколькими истоками как одного, так и разных
СУ СУ СУ
доменов. Верно и обратное: несколько стоков не может быть соединено с одним и тем же истоком.В модели каждый соединяющий домены канал однонаправлен и ориентирован от стока к истоку. Домены, соединенные каналом, будем называть смежными. Дуплексный канал в модели ГКС будет представлен двумя разнонаправленными каналами. В этих предположениях сеть доменов может быть описана в терминах конечно порожденной частичной алгебры [77].
Трафик в сети рассматривается в виде совокупности потоков [15], где каждый поток характеризует обмен данными между сетевыми приложениями. Сетевое приложение — это источник и/или потребитель сетевого трафика, ассоциированный с доменом.
Совокупность потоков, проходящих через один и тот же канал, будем называть трафиком канала. Под интенсивностью потока будем понимать количество данных, прошедших по каналу в единицу времени.
Правомерность использования понятия потока основана на том, что в современных сетях преобладает использование виртуальных соединений между взаимодействующими сетевыми объектами. Маршрутизация на уровне пакета в настоящее время на практике применяется редко [78]. Говоря о потоке, мы фокусируем внимание на взаимодействии двух сетевых объектов, а не пытаемся охватить все взаимодействия, проходящие через определенный канал.
Рассматривая сеть на уровне доменов, мы пренебрегаем локальным трафиком внутри домена, который для оценки динамики распространения ВПО и влияния трафика ВПО на уровне потоков не важен. В рамках поставленной задачи необходимо оценить динамику заражения ВПО хостов внутри домена, что достаточно точно описывается эпидемическими моделями [79], которые будут рассмотрены ниже.
Заметим, что домен в предлагаемом подходе играет двоякую роль. С одной стороны, в нем сконцентрированы ресурсы (хосты, сетевые приложения и т.п.), с другой — он выполняет функции коммутатора.
Предположим, что у нас есть сеть взаимосвязанных доменов, по которым проходят потоки различных типов: легитимные и вредоносные. Поток ориентирован от стока одного домена к истоку смежного домена. Внутри домена может быть порожден новый поток. Некоторые потоки, вошедшие в домен, могут быть «потреблены» доменом, который является конечной точкой маршрута, или же часть потока может быть потеряна по причине исчерпания ресурсов домена или перегрузкой канала. Динамику обработки потоков внутри домена будем описывать в виде автомата, который будет подробно рассмотрен ниже.
В рамках построенной модели рассматривается следующая задача: при заданных начальных условиях оценить динамику распространения ВПО среди хостов в ГКС и долю вредоносного потока в общем трафике ГКС.
2.1 Исходные предположения представлении модельного времени. Будем предполагать, что в сети один наблюдатель [77] с едиными часами, значение которых изменяется дискретно. С целью упростить технику описания нашей модели будем считать, что время едино и изменяется дискретами, которые мы будем обозначать.
Сразу отметим, что это достаточно сильное предположение, так как на практике оно уместно для части сети, но не для всей ГКС в целом. Предположение о едином наблюдателе для одного домена оправдано в случае использования распределенной системы вычислителей для реализации модели. В этом случае у каждого домена будут свои часы, свой наблюдатель. Случай моделирования с несколькими часами и описанием процесса их синхронизации рассмотрен в разделе 3.4.1.
Обозначать время будем, где N. Под словами «текущий момент времени» будем понимать время, прошедшее за дискрет.
2.2 Описание формальной модели ГКС Для построения математической модели функционирования ГКС нам необходимо определить математические абстракции для понятий: домен, канал и поток. На основе этих абстракций нужно предложить способы описания коммутации потоков в доменах для решения задач оценки:
динамики изменения числа зараженных хостов под влиянием вредоносного потока для каждого домена;
динамики изменения доли вредоносного потока в общем объеме сетевого трафика 2.2.1 Описание Будем представлять ГКС (см. рисунок 2.2) в виде ориентированного мультиграфа.
Направление дуг графа указывает направление передачи трафика. Пусть некоторые вершины данного графа будут отмечены особым образом. Отмеченные вершины назовем полюсами, а остальные вершины – внутренними:
где:
= {1, 2,..., } — множество доменов в ГКС, = {1, 2,..., } — множество полюсов в ГКС, = {1, 2,.., } — множество каналов в ГКС, т.е. это упорядоченная пара доменов (полюсов) (1, 2 ), где 1, 2. Можно сказать, что канал ведет от домена (полюса) 1 к домену (полюсу) 2.
У каждого домена и полюса есть стоки и истоки. Будем обозначать:
(* ), где * — множество истоков домена (полюса);
(* ), где * — множество стоков домена (полюса).
Каждый канал в соответствии со своей направленностью соединяет сток одного домена с истоком другого домена. Определим канал как вектор, скалярная компонента которого определяет пропускную способность канала, а направление указывает направление движения трафика в канале:
где R+ — пропускная способность канала; будем считать ее величиной постоянной.
Введем следующие обозначения:
— число хостов в домене ;
— множество типов ВПО, которые могут заразить домен. Будем предполагать, Обозначим, где, состояние домена как пятерку:
[1, ] — число активных хостов в домене. Хост считаем активным, если на нем функционирует сетевое приложение, являющееся источником или потребителем : | | = | | и : [0, 1], — параметр, определяющий защищенность домена. : |1 | представляет собой вероятность заражения хоста ВПО типа. Тем самым предполагается, что каждый хост в домене одинаково защищен от вредоносной активности одного и того же типа;
число хостов в домене, зараженных ВПО -го типа. Отметим, что если вышеперечисленные компоненты состояния являются исходными и задаваемыми в том или ином виде до начала моделирования, то этот компонент вычисляется на каждом дискрете времени.
2.2.2 Описание модели заражения домена эпидемической моделью (см. рисунок 2.3) [80]. Введем параметры, необходимые для вычисления популяции зараженных хостов в домене с течением времени:
внутри домена (средняя скорость распространения ВПО). Функция, определенная на множестве новых экземпляров ВПО и уже существующих внутри домена.
(,, ), — функция, ставящая в соответствие входящему в домен вредоносному трафику ( ) и размеру экземпляра ВПО ( ) количество экземпляров ВПО каждого типа, проникших в домен за дискрет времени.
Зная количество экземпляров ВПО, попавших в домен в заданный промежуток времени, и коэффициент защищенности домена от данного типа ВПО, мы можем вычислить количество ВПО, прошедшего через защиту домена (0 – начальный момент времени), следующим способом:
Стоит отметить, что использование простых эпидемических моделей не является обязательным, и выбор модели распространения ВПО зависит от известной информации о распространении конкретного экземпляра ВПО. Наиболее точным будет моделирование, которое основывается:
на алгоритме распространения исследуемого ВПО;
данных о его размерах;
характеристиках сетевого приложения, при помощи которого осуществляется распространение.
вредоносные потоки 2.2.3 Описание сетевой активности Компонент состояния домена определим как величину, характеризующую загрузку ресурсов домена в определенный момент времени. Рассмотрим домен как многоканальную систему массового обслуживания (СМО) с ожиданием и с ограниченной длиной очереди. Следовательно, для обработки трафика все потоки по всем истокам домена суммируются, формируя очередь заявок на каждый сток домена = {()1, ()2,..., () }, где [81] () = ((),, ) — СМО для каждого стока домена:
– () N — интенсивность входящих данных по всем истокам домена за – N, = — интенсивность обслуживания, то есть объем данных, который может обработать домен за дискрет времени;
– N, = — размер очереди, то есть размер буфера для хранения входящих данных, ожидающих обработки;
— число стоков домена.
Заявки, для которых не оказалось места в очереди по причине ее заполненности, сбрасываются. Таким образом, поток входящих данных с интенсивностью () > увеличивает очередь заявок, () < — уменьшает очередь заявок, () = — не изменяет очередь заявок.
Под загруженностью домена [0, ] будем понимать длину очереди:
количество заявок, ожидающих обработку (см. рисунок 2.4).
Под задержкой транзитного трафика будем понимать время пребывания Обозначим множество всех потоков в ГКС через = {1, 2,..., }. Множество вредоносных потоков трафика будем обозначать,.
Потоком в сети назовем функцию (, ), в вершинах мультиграфа, зависящую от времени и состояния домена, через который проходит поток.
Данная функция принимает значения на множестве натуральных чисел со следующими свойствами:
подключен к стоку домена. Из этого следует, что интенсивность потока в канале никогда не превышает пропускную способность данного канала;
2. для любого домена, принадлежащего маршруту потока, выполняется домена. Данное соотношение определяет, что из вершины необязательно выходит тот объем потока, который пришел в данную вершину, то есть 3. поток обладает свойством аддитивности, то есть в момент времени * :
Из этого свойства следует, что:
Назовем интенсивностью потока величину ( ) = ( ), где ( ) — дивергенция потока [82], обладающая свойствами (1) – (3), — домен-источник потока. Тогда для мультиграфа справедливо равенство:
Отметим, что () = 0 для всех внутренних вершин, которые не изменяют поток.
Следовательно, являются транзитными, не перегруженными и не осуществляющими фильтрацию потока. Дивергенция ( ), где — домен-потребитель потока определяет функцию поглощения потока. Данная функция определяет потребление потока доменом, если этот домен является конечной точкой в маршруте потока.
На интенсивность потоков, проходящих через домен, существенно влияет порядок их обработки в домене. Известно [83] несколько стратегий обработки:
1. FIFO стратегия. Очередность обработки потока соответствует очередности поступления данного потока в домен. Однако, в описываемой модели потоки приходят в домен одновременно в каждый момент времени, следовательно, применение данной стратегии в чистом виде не представляется возможным;
2. приоритетная стратегия. Очередность обработки потока напрямую зависит от приоритета потока (чем выше приоритет, тем быстрее обработается поток 3. справедливая стратегия. Очередность обработки потоков не важна, так как все ресурсы домена в равной степени разделяются между потоками (на каждый поток 4. стратегия, основанная на интенсивности потока. Очередность обработки потока зависит от интенсивности потока (чем более интенсивный поток поступает в домен, тем менее высокий приоритет у него на обработку);
5. смешанная стратегия. Очередность обработки зависит от интенсивности, но в отличие от стратегии, описанной в пункте 4, зависимость обратная (чем более интенсивный поток поступает в домен, тем более высокий приоритет у него на обработку).
предварительно известной информации о потоках. Для работы с низкоскоростными или нагруженными высокоскоростными каналами необходимо использовать стратегию, основанную на интенсивности потока; для работы с не перегруженными каналами (загрузка каналов не превышает примерно 90% [83]) – справедливую стратегию; для обеспечения наименьших задержек и потерь для конкретных потоков – приоритетную стратегию. В случае отсутствия детализированной информации о потоках, например, известно только количество источников и протокол потока, целесообразно использовать смешанную стратегию.
Для описания прохождения потока через домены каждому потоку сопоставим набор тэгов потока = {1, 2,..., }. Каждый тэг используется для определения политики обработки данного потока трафика при прохождении через домен. Наличие у потока определенного тэга определяет принадлежность данного потока соответствующему классу. В один класс можно объединить, например, все потоки, потребителем которых является данный домен, либо потоки принадлежащие ВПО определенного типа.
Для описания процесса изменения каждого потока из, проходящего через домен, будем представлять домен в виде автомата следующего вида:
где:
— множество состояний домена, которое одновременно будет являться множеством состояний этого автомата;
0 — начальное состояние автомата;
— заключительное состояние автомата. В данной модели любые состояния, кроме начального, могут быть заключительными;
— допустимый входной алфавит (множество тэгов);
= < >< >< > — функция переходов, аргументами которой являются текущее состояние, набор тэгов входящего потока и загруженность ресурсов текущего домена, а значением – новое состояние:
ассоциированных с данным переходом:
* определение стока домена, на который нужно перенаправить входящий – () — сток домена, на который необходимо направить поток.
2.2.4 Доказательство корректности формальной модели ГКС Сформулируем ранее упомянутую задачу анализа динамики заражения хостов и доли вредоносного трафика в ГКС в терминах построенной модели, а затем докажем, что эта задача имеет решение. Пусть дана сеть с источниками и получателями потоков из множества, где,. Каждому потоку приписана функция начальной интенсивности ( ). Каждому каналу приписана пропускная способность. Каждой вершине приписана величина, обозначающая ресурсы, и конечный автомат для изменения потоков. Необходимо для каждого дискрета найти решение двух задач:
1. оценить число зараженных хостов в доменах ГКС:
где — множество типов ВПО;
2. оценить долю трафика, порождаемого ВПО, в общем трафике ГКС (* ):
Сформулируем и докажем теорему, обосновывающую корректность этих задач.
Теорема 1. Пусть дана сеть с источниками и получателями потоков из множества, где,, тогда если в сети выполнены следующие условия:
каждому потоку приписана функция начальной интенсивности ( );
каждому каналу приписана пропускная способность ;
каждой вершине приписана величина, обозначающая ресурсы и конечный автомат для изменения потоков ;
то существует алгоритм воспроизведения динамики заражения хостов и доли вредоносного трафика в ГКС, представляющее оценку числа зараженных хостов в каждой вершине сети и доли вредоносных потоков в общем трафике сети.
Доказательство. Поскольку:
определяет ограниченную замкнутую область, где — множество каналов, через которые проходит поток, ;
определяет ограниченную замкнутую область;
3. действия работы с тэгами (добавление, изменение, удаление) не влияют на изменение интенсивности потока;
4. маршрутизация потока определят сток, связанный с каналом, по которому пройдет поток, но никак не влияет на интенсивность потока;
5. поглощение и сбор потока только уменьшают интенсивность, играя роль потребителя;
6. учитывая, что при генерации потока, связанного с работой автомата в домене, создается новый поток, следовательно, невозможно увеличение интенсивности в транзитных точках маршрута;
Примечание: важно для выполнения ограничений, чтобы на пути потока не было источников потока (начальной нагрузки), кроме как в точке начала потока;
7. из пунктов 3-6 следует, что все возможные действия автомата не выводят за рамки ограничений, описанных в пунктах 1-2 данного доказательства;
8. для каждого потока начальная интенсивность ( ) — непрерывный линейный функционал на множестве дискретных моментов времени модельного времени, (a) пусть есть множество дискретов времени = {0, 1,..., }. Введем на данном множестве дискретную метрику (, ) такую, что (, ) = 0, если (b) в силу теоремы о свойстве системы открытых множеств метрического пространства [84] семейство подмножеств множества удовлетворяет аксиомам топологического пространства. Таким образом, данное метрическое пространство является топологическим;
(c) дискретное топологическое пространство является частным случаем сепарабельного пространства, поскольку топологическое пространство называется сепарабельным, если оно содержит не более чем счетное число подмножеств, замыкание которых совпадает с данным пространством. В нашем случае в силу конечности пространства его можно разделить на подмножества конечным количеством вариантов;
(d) на данном сепарабельном пространстве линейный функционал ( ) можно считать непрерывным, так как на сепарабельном пространстве любой линейный функционал является непрерывным [85] ;
Из сказанного выше следует, что ( ) достигает своего максимального и минимального значения. Следовательно, возможно оценить число зараженных хостов в каждой вершине сети и долю вредоносного трафика в сети.
2.3 Описание службы управления временем в модели ГКС В начале главы 2 было сделано предположение о наличие глобальных часов в формальной модели ГКС. Данное предположение было удобно для введения основных определений и доказательства корректности. Однако, как было сказано ранее, данное упрощение является серьезным ограничением на практике. Это связанно с большой размерностью сети ГКС и невозможностью выполнять модель на единственном вычислителе.
В случае использования нескольких вычислителей необходимо сделать предположение о наличии нескольких часов, которые необходимо синхронизировать при взаимодействии соответствующих компонент модели ГКС. В этом случае модель ГКС представляется распределенной системой, где каждый домен обладает собственными часами —, где N.
В случае распределённой системы классическим вариантом является использование оптимистических, консервативных алгоритмов или их комбинации [86]. Однако при решении задачи моделирования ГКС данные алгоритмы не применимы, так как данные алгоритмы ведут:
либо к очень маленькому доверительному интервалу в консервативном случае;
либо к частым откатам в оптимистическом случае. В данном случае так же трудоемким является вопрос разработки и реализации системы откатов.
Исходя из вышесказанного, предлагается особый вариант синхронизации времени, который условно можно назвать «упрощенно оптимистическим» алгоритмом синхронизации. Отличие данного алгоритма от оптимистического алгоритма заключается в отсутствии механизма отката при получении «события из прошлого», вместо этого трафик, нарушивший синхронизацию, будет сброшен.
В контексте имитационного моделирования ГКС нетривиальным становится вопрос определения причин временных рассинхронизаций. В случае использования Hi-Fi подхода единственной причиной рассинхронизации является несоответствие модельных компонент характеристикам физического оборудования, на котором вычисляется модель. Например, если модельный канал не соответствует по временным характеристикам физическому каналу, использование вышеописанного «упрощенно оптимистического» алгоритма синхронизации времени приведет к постоянному сбросу всего трафика, проходящего по этому каналу.
Для реализации синхронизации времени между компонентами модели предлагается уточнить модель времени, добавив агента времени на каждый домен. Напомним, что доменом является пятерка (,,,, ). Уточнение понятия домена заключается в добавлении компонента (time agent). Использование предполагает следующий алгоритм синхронизаций времени между компонентами модели:
1. на этапе инициализации будет определено максимальное отклонение реальных задержек трафика от предполагаемых модельных задержек;
2. eсли выявлены недопустимые отклонения, то об этом факте оповещается пользователь;
3. максимальное отклонение модельного времени от физического определяется отношением =, далее все временные характеристики всех каналов в топологии модельной сети умножаются на заданную. Также необходимо изменить временные характеристики в функционирующих сетевых приложениях (например, всевозможные таймауты).
Предложенный подход гарантирует, что к моменту передачи трафика домены будут синхронизированы между собой по времени, и сетевые пакеты в модели сети будут приходить в том же порядке, как и в реальной сети. Достигается это по сути замедлением работы модели сети по наиболее медленному физическому каналу, который используется для развертывания модели в кластере.
Глава Система имитационного моделирования Network Prototype Simulator В данной главе описывается архитектура системы имитационного моделирования (СИМ) Network Prototype Simulator (NPS) [87].
Для реализации имитационной модели ГКС (в рамках Hi-Fi подхода, описанного в разделе 1.2.2) будем использовать следующие предположения (см. рисунок 3.1):
каналы моделируются при помощи пар виртуальных сетевых интерфейсов, работающих на пакетном уровне;
сетевые устройства представляют собой программируемые виртуальные коммутаторы. Использование подобного подхода позволяет моделировать процесс функционирования различных сетевых устройств (машрутизаторов, коммутаторов) путем программной конфигурации сетевых устройств;
хосты (см. рисунок 3.2) представляют полноценную систему, которая в рамках своей файловой системы предоставляет возможность работы сетевым приложениями. Под «системой» может пониматься как полноценная виртуальная машина со своей операционной системой, так и процесс в операционной системе. Второй вариант предпочтителен, когда хосты не представляют из себя «тяжеловесный» набор сетевых приложений, и есть необходимость моделировать работу нескольких хостов в рамках одной операционной системы. В общем случае не важно, моделируется ли хост на физической или на виртуальной машине.
Рисунок 3.1: Реализация имитационной модели ГКС.
3.1 Требования СИМ NPS СИМ NPS должна удовлетворять следующим требованиям:
реализовывать формальную модель ГКС, описанную в главе 2;
обладать свойством масштабируемости (см. 3.2);
избегать процесса калибровки модели сети, а также необходимости доказательства корректности модели;
позволять изменять количество узлов в моделируемой сети без существенных затрат времени на перестройку модели сети.
Целью разработки СИМ NPS является реализация формальной модели ГКС, описанной в главе 2.
3.2 NPS кластер Под NPS кластером будем понимать несколько вычислительных машин, объединенных между собой в сеть. В этом случае не имеет значения использование виртуальных или физических вычислительных машин. Далее вычислительную машину, входящую в состав NPS кластера, будем называть NPS узлом кластера (см. рисунок 3.3).
Требование масштабируемости удовлетворяется СИМ NPS за счет увеличения максимального количества узлов в модели сети при добавление новых NPS узлов кластера. СИМ NPS сама решает, как будет разбита топология модели сети на NPS узлах кластера. Это свойство существенно упрощает перестройку модели при изменении количества моделируемых узлов в сети, так как от пользователя требуется только предоставление вычислительных ресурсов (в виде NPS узлов кластера).
Возможный размер моделируемой NPS сети зависит от количества NPS узлов в кластере. Беря во внимание, что один NPS узел кластера может моделировать топологию размером до 2000 узлов (хостов или сетевых устройств), а современный сервер может поддерживать работу порядка 25 NPS узлов кластера, итого получаем порядка 50000 хостов, моделируемых одним сервером. Учитывая, что разработанная СИМ NPS обладает свойством масштабируемости, мы получаем возможность моделировать сети масштаба ГКС (порядка сотни тысяч узлов, см. рисунок 3.14).
3.3 Описание архитектуры СИМ NPS СИМ NPS состоит из четырех основных частей:
NPS главная консоль управления;
NPS узел кластера;
NPS ПКС контролер;
NPS библиотека сетевых приложений.
управления NPS главная управляющая консоль — это аналог консоли управления системы Mininet, но способная конфигурировать и выводить результаты выполнения команд с нескольких NPS узлов кластера, используя SSH соединение. Для установи SSH соединения между главной управляющей консолью и каждым экземпляром Mininet в кластере используется библиотека Paramiko [88].
Основные задачи
NPS главной управляющей консоли:
разбор текстового описания графа сети с заданными сетевыми приложениями;
разделения графа сети на несколько частей. Количество частей равно количеству узлов кластера включенных в состав NPS;
генерация на основе разделения графа скриптов инициализации для развертывания модели сети на разных узлах кластера;
запуск с заданными параметрами сетевых приложений на узлах кластера, исходя из заданной конфигурации;
именование каждого созданного процесса хоста, коммутатора с целью сохранить уникальность имен в пределах всего кластера, на котором разворачивается модель настройка сетевых интерфейсов, ассоциированных с каждым процессом хоста или коммутатора;
настройка внешнего контролера для каждого процесса коммутатора;
настройка параметров для логгирования необходимых данных при моделировании;
отправка служебных скриптов на узлы кластера, необходимых для развертывания и функционирования модели сети;
отправка команд процесса хостов и/или коммутаторов на уже развернутую модель заверение всех процессов, созданных в ходе моделирования, удаление всех созданных экземпляров контейнеров виртуализации.
Главная консоль предоставляет интерфейс для GUI для задания начальной конфигурации сети и данные для отображения результатов моделирования.
NPS узел кластера — это виртуальная или физическая машина с установленной ОС Linux (в данной работе использовался дистрибутив Ubuntu 12.10) и с набором установленных пакетов:
1. Python2.7 [89]. Интерпретатор языка Python;
2. Scapy-Python [90]. Библиотека на языке Python для генерации специально сконструированных сетевых пакетов;
3. Mininet [70]. Экземпляр системы Mininet. Система Mininet, устанавливаемая на узлах кластера, дополняется расширением базовых классов для обеспечения функционирования сетевых приложений. Данное расширение представляет скриптовый файл на языке Python. Этот файл передается на узел кластера NPS главной консолью управления при инициализации развертывания модели сети.
Каждый NPS узел кластера (см. рисунок 3.4) должен иметь два активных Ethernet интерфейса. Первый используется для обмена управляющей информацией между NPS узлом кластера и главной управляющей NPS консолью, второй — для обмена данными между соседними NPS узлами кластера. Последним требованием для NPS узла кластера является наличие пользовательского аккаунта, созданного специально для главной управляющей NPS консоли с правами администратора ”sudo”.
NPS ПКС контролер используется для программирования сетевой активности внутри сегментов Mininet сетей и между данными сегментами. В NPS кластере предполагается использование множества NPS контролеров. В СИМ имеется возможность каждый узел кластера ассоциировать со своим контролером.
Использование нескольких контролеров в ходе конкретного эксперимента имеет свои достоинства и недостатки. В случае единственного контролера имеется возможность сконцентрировать в одной точке глобальное видение сети, что позволяет разыгрывать различные сценарии сетевого обмена между хостами, например, моделировать сетевую эпидемию червя. Однако данный подход не является масштабируемым, и при достаточно большом размере модели сети контролер становится "бутылочным горлышком". В то же время использование нескольких контролеров решает проблемы масштабируемости, но в некоторых экспериментах может потребоваться синхронизация состояний контролера, что повлечет за собой дополнительные расходы по ресурсам кластера.
Для задания сетевой активности и процесса генерации нагрузки на ресурсы моделируемой сети на каждом хосте имеется возможность запускать сетевые приложения. Для удобного запуска набора приложений на большом числе хостов используется библиотека приложений. Данная библиотека содержит интерфейсы для запуска некоторых сетевых приложений. На данный момент реализована поддержка DHCP [91], NTP [92], DNS [93], HTTP [94] приложений. Архитектура библиотеки сетевых приложений дает возможность пользователю добавлять собственные приложения.
Файловая система, пространство идентификаторов процессов и прочие глобальные ресурсы ОС разделяются между хостами. Это приводит к некоторым существенным ограничениям на конфигурацию сетевых приложений. Поскольку моделируемая сеть рассматривается и используется как единый объект, то ее хосты должны пройти инициализацию синхронизированным образом. Синхронизация позволит избежать таких некорректных ситуаций, как запуск каких-либо демонов серверных приложений после клиентских или начала исполнения тестовых сценариев на части хостов до окончания развертывания всех остальных.
Особое внимание в NPS библиотеке сетевых приложений (см. рисунок 3.5) уделяется аргументам командной строки, которые могут затребовать одни и те же ресурсы в единой файловой системе, едином пространстве UNIX-сокетов, едином пространстве идентификаторов процессов. Например, некоторые сетевые приложения для проверки факта своего запуска и недопущения случайного повторного запуска проверяют определенным образом наличие именованного файла со своим PID в фиксированной директории файловой системы. Как правило, имя такого файла можно задать через аргументы командной строки, что позволяет добиться единовременного запуска демона в различных экземплярах.
Стоит отметить, что по возможности необходимо использовать сетевые приложения, которые прописаны в NPS библиотеке сетевых приложений, так как в данных приложениях уже прописаны временные параметры каждого приложения. Указание данных параметров для NPS позволяет избежать некорректностей при использовании системы управления временем, реализованной в СИМ NPS.
приводиться в эксперименте, описанном в разделе 4.4.1.
Рисунок 3.5: Работа с NPS библиотекой сетевых приложений.
3.4 Описание аппарата легковесной виртуализации ОС Linux LXC (англ. Linux Containers) [75] — система виртуализации на уровне операционной системы для запуска нескольких изолированных экземпляров ОС Linux на одном компьютере. LXC не использует виртуальные машины, а создает виртуальное окружение с собственным пространством процессов и сетевым стеком. Все экземпляры LXC используют в разделяемом режиме ту же операционную систему, что и основная система (см. рисунок 3.6).
Контейнеры представляют из себя облегченную технологию виртуализации.
Предоставляя средства для создания и использования контейнеров, ОС дает приложениям возможность работать как бы на отдельной машине, при этом совместно используя множество базовых ресурсов. Экономия от совместного использования ресурсов в сочетании с предоставляемой изоляцией приводит к тому, что контейнеры требуют значительно меньших накладных расходов, чем истинная виртуализация.
Для изоляции процессов, сетевого стека ipc, uts и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов применяются cgroups. По своим возможностям контейнеры занимают нишу между изоляцией при помощи chroot и полноценными средствами виртуализации. В состав инструментария LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор адаптеров для различных языков программирования.
Узел кластера (ОС Linux) Рисунок 3.6: Контейнеры легковесной виртуализации в ОС Linux.
Контейнеры виртуализации используются в СИМ NPS для описания структуры и ресурсов моделируемой сети.
3.4.1 Методы управления модельным временем в СИМ В процессе разработки СИМ необходимо соотносить между собой два представления времени:
реальное время, в котором происходит функционирование моделируемой системы;
модельное время, в масштабе которого организуется работа модели.
соответствия между законами изменения времени в моделируемой системе и законами времени, которые действуют в СИМ. С помощью методов управления модельным временем решаются следующие задачи:
отображается переход моделируемой системы из одного состояния в другое;
производится синхронизация работы модели.
Выбор метода управления модельным временем зависит от назначения модели, ее сложности, характера исследуемых процессов, требуемой точности результатов.
Существуют три метода управления модельным временем:
дискретный;
дискретно-событийный;
непрерывный.
В случае дискретного метода продвижение времени происходит с минимально возможной постоянной длиной шага (дискрета времени) [86]. Дискретный метод применяется в случаях:
если закон изменения времени описывается интегро-дифференциальными уравнениями. Характерный пример: решение интегро-дифференциальных уравнений численным методом. В подобных методах шаг моделирования равен шагу интегрирования. Динамика модели является дискретным приближением реальных непрерывных процессов;
когда события распределены равномерно и можно подобрать шаг изменения временной координаты;
когда сложно предсказать появление определенных событий;
когда событий очень много и они появляются группами [95].
Можно выделить частный случай дискретного метода, называемый методом управления в реальном времени. В этом случае некоторые компоненты имитационной модели представлены физическими устройствами, следовательно, скорость изменения времени физического устройства равна скорости изменения астрономического времени.