Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа? |
Моделирование сетей, сетевая надежность и сетевые драйверы
17.2. Симуляционное моделирование
Симуляционное (статистическое) моделирование служит для анализа системы с целью выявления критических элементов сети. Этот тип моделирования используется также для предсказания будущих характеристик системы. Такое моделирование может осуществляться с использованием специализированных языков симулирования и требует априорного знания относительно статистических свойств системы в целом и составляющих ее элементов. Процесс моделирования включат в себя формирование модели, отладку моделирующей программы и проверку корректности выбранной модели. Последний этап обычно состоит из сравнения расчетных результатов с экспериментальными данными, полученными для реальной сети.
При статистическом моделировании необходимо задать ряд временных характеристик, например: таблица 17.1.
Системное время | Интервал от момента генерации сообщения до получения его адресатом, включая ожидание в очереди |
---|---|
Время ожидания | Промежуток времени от приема сообщения сетевым интерфейсом до обработки его процессором |
Время распространения | Задержка передачи сообщения от одного сетевого интерфейса до другого |
Полный список таких временных характеристик включает в себя значительно больше величин. В процессе моделирования рассчитываются следующие параметры: таблица 17.2.
Разумеется, реальный перечень вычисляемых параметров может быть существенно шире и определяется конкретными целями расчетов. Рассмотрим частную задачу определения среднего числа связей между процессорами (узлами). Предполагается, что полное число узлов равно , а схема соединения узлов соответствует изображенной на рис. 17.1.
Среднее расстояние от произвольного узла до всех остальных узлов равно , где - расстояние между соседними узлами (предполагается константой).
Возможны разные подходы к моделированию. Классический подход заключается в воспроизведении событий в сети как можно точнее и поэтапном моделировании последствий этих событий. В реальной жизни события могут происходить одновременно в различных точках сети. По этой причине для моделирования идеально подошел бы многопроцессорный компьютер, где можно воспроизводить любое число процессов одновременно (современные распределенные вычислительные системы для решения таких задач подходят идеально). В любом случае необходимо выбрать некоторый постоянный временной интервал и считать, что события произошли одновременно, если расстояние между ними меньше этого интервала. Для сетей типа Ethernet таким временным интервалом может быть бит-такт (для 10-мегагбитного Ethernet это 100нс). Понятно, что это уже отступление от реальности (ведь задержки в сетевом кабеле не кратны этому времени), но не слишком значительное. Надо сказать, что такого рода предположений при моделировании приходится делать много. По этой причине крайне важно сравнивать результаты моделирования с данными, полученными для реальной сети. Если отличия лежат в пределах 10-20%, можно считать, что сделанные предположения не увели программу слишком далеко от жизни и ею можно пользоваться для расчетов. Рассмотренный выше подход пригоден для моделирования сетевого коллапса, так как скорость расчетов здесь зависит от числа узлов и почти не зависит от сетевой загрузки.
Другим подходом может стать метод, где для каждого логического сегмента (зоны столкновений) сначала моделируется очередь событий. При этом в каждой рабочей станции моделируется последовательность пакетов, ожидающих отправки. Эта очередь может время от времени модифицироваться, например, при получении ЭВМ пакета извне и необходимости послать на него отклик. После того как такая очередь для каждого сетевого объекта (сюда, помимо ЭВМ, входят мосты, переключатели и маршрутизаторы) построена, запускается программа отправки пакетов: выбирается самый первый по времени пакет (ожидающий дольше других) и проверяются для него условия начала передачи (отсутствие несущей на входе сетевого интерфейса в данный момент и в течение предыдущих 96 бит-тактов). Если условия отправки выполнены, пакет посылается в сеть. Вычисляются моменты достижения им всех узлов данного логического сегмента, проверяются условия его столкновения с другими пакетами. Следует заметить, что в этом подходе снимаются ограничения дискретности временной шкалы, использованной в предыдущем "классическом" подходе. Этот подход позволяет заметно ускорить расчеты при большом числе узлов, но малой загрузке сети. Проблемы реализации данной концепции моделирования связаны с обслуживанием довольно сложного списка, который описывает очередь пакетов, ожидающих отправки. В структуру этого списка включается и описание ситуации в сети на данный временной период. Дополнительные трудности сопряжены с поведением мостов, переключателей и маршрутизаторов, так как они могут вставлять в очередь дополнительные элементы, требующие немедленного обслуживания. Аналогичные вставки в очередь будут вызывать полученные станцией пакеты ICMP или TCP, требующие откликов. Причем такое вставление в очередь асинхронно по отношению к процедуре "отправки" пакетов. Очередь для всей локальной сети может быть единой, тогда пакеты разных логических сегментов должны быть помечены определенными флагами. При переходе из сегмента в сегмент флаг будет меняться. Возможно и построение независимых очередей для каждого из логических сетевых сегментов.
Данный метод был использован студентом ТСС МФТИ Алексеем Овчаровым в его магистрской диссертации (2000 год) для определения свойств фрагмента сети в условиях, близких к предельным (загрузка на уровне 70-100%). Такие режимы трудно реализовать на практике без нанесения серьезного ущерба клиентам сети. Результаты расчета представлены на рис. 17.2.
Целью моделирования является определение зависимости пропускной способности сети и вероятности потери пакета от загрузки, числа узлов в сети, длины пакета и размера области столкновений.
Исходные данные о структуре и параметрах сети берутся из базы данных. Ряд параметров сети задаются конфигурационным файлом (профайлом). Сюда могут записываться емкость буфера интерфейса и драйвера, время задержки обработки запроса (хотя в общем случае эта величина может также иметь распределение) и т.д.. К таким параметрам относятся также: MTU, MSS, TTL, window, некоторые значения таймаутов и т.д.
Сеть разбивается на логические сегменты, в каждом из которых работает независимая синхронизация процессов (хотя эти процессы и влияют друг на друга через мосты, переключатели и маршрутизаторы).
Полное моделирование сети с учетом рабочих приложений предполагает использование следующих распределений:
- распределение по проценту времени использования каждого из узлов для того или иного вида приложений;
- распределение узлов сети по их активности;
- распределение по используемым протоколам;
- распределение по длинам пакетов.
Последние два пункта существенным образом коррелированы с первым, так как используемые протоколы зависят от приложения, а активность узла может определяться, например, длиной пересылаемого файла. По этой причине при полномасштабном моделировании сначала определяется, что собирается делать рабочая станция или сервер (с учетом распределения по приложениям определяется характер задачи: FTP, MS explorer и т.д.). Затем разыгрываются параметры задания (длина файла, удаленность объекта и пр.), а уже на основе этого формируется фрагмент очереди пакетов.
Задача первого этапа: проверка пропускной способности при вариации загрузки и длин пакетов, подсчет числа столкновений (если они возможны), проверка влияния размера буфера сетевого интерфейса на пропускную способность (влияние размера буфера переключателей по пути до адресата).
Исходные данные для первого этапа:
- частота посылки пакетов для каждого из узлов (в начале равная для всех) [ - интервал между пакетами];
- длина пакета, посылаемого каждым узлом, (в начале равна для всех: минимальная [ ] и максимальная [ ];
- временное распределение моментов посылки пакетов (в начале равномерное).
Структура описания каждого из узлов включает в себя (формируется с учетом будущего расширения):
- номер узла (идентификатор);
- код типа узла (байт: рабочая станция, мост, переключатель, маршрутизатор, повторитель);
- MAC-адрес (для повторителя =0);
- IP-адрес (для повторителя, обычного MAC-моста и переключателя =0);
- байт статуса (узел ведет передачу; до узла дошел чужой пакет;….);
- - среднее расстояние между концом предыдущего и началом очередного пакета в бит-тактах;
- дисперсия ширины пакетов;
- дисперсия значения (зазор между последовательными пакетами);
- код используемого протокола (IPv4 или IPv6; TCP, UDP, ICMP и т.д.);
- полная длина сообщения в байтах;
- время обработки пакета (задержка посылки отклика в бит-тактах);
- длина очередного пакета;
- байт типа адресации (unicast, broadcast, multicast);
- ширина окна (число отправляемых пакетов без подтверждения, для ТСР);
- объем входного буфера (число пакетов; может измеряться и в байтах, но тогда нужны специальные указатели). Тип буфера (FIFO, LIFO и т.д.);
- объем выходного буфера (число пакетов);
- байт режима работы (для мостов и переключателей: cut-through; store-and-forward и т.д.; для рабочей станции определяется типом используемого протокола и фазой его реализации).
Формат описания топологии сети (список) Элемент списка:
- идентификатор узла (номер);
- код типа узла;
- список узлов соседей (номер_соседа (идентификатор): задержка_до_него).
Процесс посылки пакета включает в себя (в соответствии с требованиями документа IEEE 802.3):
- проверку возможности начала (отсутствует чужая активность, ipg=96 бит-тактов);
- последовательную передачу битов (каждый бит-такт);
- контроль состояния столкновений (если столкновение возможно);
- обработка случаев столкновения (посылка jam);
- при столкновении вычисление номера бит-такта попытки возобновления передачи.
Попытка начала передачи предполагает проверку:
- осуществлялась ли передача на предыдущем бит-такте;
- контроля числа свободных от передачи бит-тактов (<96 ?).
Процесс приема предполагает:
- контроль окончания приема (бит-такт без данных в канале). Окончание приема может означать переход в режим анализа полученных данных;
- контроль наличия столкновения;
- необходимость предусмотреть возможность (в некоторых режимах) контроля адресов (MAC и IP) и содержимого пакета и т.д. (включая изменение режима работы узла, например, переход от чтения к передаче). Данный пункт абсолютно необходим для мостов и переключателей.
Центральный менеджер осуществляет:
- регистрацию начала передачи любым из узлов (номер узла и номер бит-такта);
- расчет положения начала пакета к началу очередного бит-такта для всех возможных путей распространения;
- запись статуса узлов
Равномерное распределение по времени
Для каждого узла устанавливается определенная средняя частота посылки пакетов. Время начала сессии предполагается случайным. Средняя частота может быть задана равной для всех узлов.
Минимальный средний период посылки пакетов определяется в бит-тактах и должен быть больше 512 бит-тактов. Понятно, что пока узел осуществляет передачу, он не может пытаться передать новый пакет. По этой причине частота посылки пакетов однозначно определяется паузой между концом предыдущего пакета и началом нового . Среднее значение периода посылки пакетов равно (значение величина в общем случае статистическая). Для каждого узла задается значение (сначала равное для всех узлов). Если предположить равномерное распределение вероятности, передача пакета может начаться в любой бит-такт с равной вероятностью.
При определении того, пытаться ли начинать передачу в данный бит-такт, будет произведена проверка условия:
(выполнение условия предполагает попытку начала передачи).
Если вероятность прихода пакетов на время распределена по закону Пуассона:
, где - средняя частота следования событий, то реальное время между событиями может быть определено как . - случайное число , а .
Результатами моделирования могут являться (фиксируются отдельно для каждого набора входных параметров): таблица 17.3.
1. | Вероятность потери пакета для логического сегмента и каждой из рабочих станций |
---|---|
2. | Пропускная способность серверов для каждого из логических сегментов (путь сервер -> логический сегмент) |
3. | Вероятность столкновения для каждого логического сегмента и каждой рабочей станции |
4. | Распределение потоков по логическим сегментам (и рабочим станциям) независимо для каждого направления (вход и выход) |
5. | Распределение потоков для всех входов/выходов переключателей мостов и маршрутизаторов |
6. | Доля вспомогательного трафика (ICMP, SNMP, отклики TCP, широковещательные запросы и т.д.) по отношению к информационному потоку для различных узлов сети (серверов, маршрутизаторов) |
7. | Уровень широковещательного трафика для каждого из логических сегментов |
Набор параметров, распределений и алгоритм моделирования сильно зависит от стоящей задачи.