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 Спасибо за внимание!