NSimulator Научный руководитель: Зеленчук И.В. Исполнители:

advertisement
NSimulator
Научный руководитель:
Исполнители:
Зеленчук И.В.
Самунь В.С.
Бурдова И.Ю.
Что было в прошлый раз?
•
•
•
•
•
Общая постановка задач
Обзор аналогов
Общая архитектура
Ядро
Простейшие примеры
2
Что будет сегодня?
• Разработка формата хранения топологии
сети и настроек
• Архитектура модулей и прошивок устройств
• NModel
3
Напоминание постановки задач
• Динамическое изменение топологии
• Снятие статистики
• Детализированный просмотр передачи
данных
• Верификация протоколов
• Простое создание сущностей
• Создание различных интерфейсов настройки
• Распределённая система
4
Хранение топологии сети и настроек
• Топология сети – описание соединения и
расположения сетевых устройств
• Связи между сущностями симулятора
ограничены некоторыми правилами
• Все сущности имеют параметры, их может
изменять пользователь
5
Задачи
• Универсальность
• Возможность ручного создания файлов
• Простота анализа корректности
6
Анализ аналогов
• Cisco Packet Tracer – бинарный формат
• GNS3 – бинарный формат
• ns-3 – код на C++
7
Предлагаемое решение
Zip-архив
• XML 1
• Описание сущностей
• Классы
• Настройки
• Описание топологии
•…
• XML N
• Описание сущностей
• Описание топологии
8
Архитектура модулей и прошивок
• Управление модулями:
– Загрузка
– Выгрузка
– Возможно, хранение состояния
• Интерфейс настройки модулей
• Межмодульное взаимодействие
9
Общая архитектура симулятора
10
Задачи
• Зафиксировать понятие «модуль»
• Механизм настройки модуля
• Определение первого модуля при
обработке данных
• Определение следующего модуля при
обработке данных
Должна быть возможность верификации!
11
Интерфейс настройки модулей
12
Диспетчеризация модулей
Модуль
N
Модуль
2
Модуль
1
Пакет
Модуль
3
…
13
Диспетчеризация модулей
Тип 1
Физический
уровень
…
Остальные
модули
Тип N
Модули
14
Диспетчеризация модулей
Уровень
0
Уровень
1
…
Уровень
N
Модуль
Модуль
Модуль
Модуль
Модуль
Модуль
Модуль
Модуль
Модуль
Модуль
15
Диспетчеризация модулей
• Выстраиваем все модули в цепочки
• Задаём уровень модуля
• Задаём зависимости модуля
(двунаправленные!)
• Запрет циклов
• «Разрывы» зависимостей
16
Модель Крипке
ℳ = 𝐴𝑃, 𝑆, 𝑅, 𝐿 , где:
• 𝐴𝑃 ≠ ∅
• 0< 𝑆 <∞
• 𝑅 ⊆𝑆×𝑆
• ∀𝑠 ∈ 𝑆∃𝑠 ′ ∈ 𝑆 ∶ 𝑠, 𝑠 ′ ∈ 𝑅
• 𝐿 ∶ 𝑆 → ℬ 𝐴𝑃
17
Темпоральные операторы и кванторы
•
•
•
•
•
𝕏 – сдвиг по времени
𝔽 – происшествие
𝔾 – инвариант
𝕌 – условное ожидание
ℝ – разблокировка
• 𝔸 – «для всех путей»
• 𝔼 – «для некоторого пути»
18
Задача верификации
ℳ, 𝑠 ⊨ 𝑓
19
NModel
• Пример работы (демонстрация)
20
Задачи
• Исследовать возможность проверки CTLформул средствами NModel
• Если возможно:
– Сделать преобразователь формул в
подходящий вид
• Если невозможно:
– Сделать расширение NModel
21
Исследование NModel
• Исследование (демонстрация)
Результаты:
• Спецификации не должны содержать
циклов и разрывов
• Не можем проверить 𝔸𝔾 𝑟𝑒𝑞𝑢𝑒𝑠𝑡 ⇒
23
Расширение NModel
• Расширение (демонстрация)
24
NModel : результаты
• Получение модели Крипке обходом графа
системы переходов
• Возможность задания CTL и LTL формул (LTL
– на будущее)
• Алгоритм верификации Эмерсона-Ли (для
CTL)
• Возможность реализации алгоритма «на
лету»
25
Спасибо за внимание!
Download