Русский
Русский
English
Статистика
Реклама

Shadow гибрид сетевого симулятора и эмулятора


Shadow запускает реальные приложения, такие как Tor или Bitcoin. Изначально он создавался для экспериментов над Tor, но вырос в крупный проект, который широко используется для исследований в таких местах, как Кембриджский и Колумбийский университеты. В этой статье будут рассмотрены главные особенности проекта, описаны его плюсы и минусы, а также разобран простой пример работы.

Основной задачей проекта является исследование или создание прототипов распределённых или одноранговых систем, включая протоколы многосторонних вычислений. Для этого Shadow связывается с прикладным программным обеспечением и нативно выполняет код приложения во время моделирования, обеспечивая достоверные эксперименты и точные результаты. После чего программа моделирует и запускает распределённые сети на одной машине Linux или настроенном AMI на Amazon EC2. Это упрощает управление экспериментами и сохраняет при этом фокус на результатах.

Фичи


  • Создает изолированную среду моделирования, в которой виртуальные хосты могут связываться друг с другом, но не с Интернетом.
  • Изначально выполняет реальные приложения, такие как Tor и Bitcoin
  • Обеспечивает эффективные, точные и контролируемые эксперименты
  • Моделирует топологию сети, задержку и пропускную способность
  • Работает без рута на одной машине Linux
  • Имитирует несколько виртуальных хостов в виртуальном времени
  • Имитирует сеть (стек TCP) и задержки обработки ЦП
  • Может запускать частные сети Tor с моделями пользователей / трафика на основе Tor metrics


Особенности


Shadow моделирует интернет, используя реальные задержки, записанные в результате измерений пинга на PlanetLab. Собранные данные дают распределение попарных задержек между узлами. Затем происходит классификация всех узлов по географическим регионам и объединение распределения узлов между каждой областью. Это приближение формирует модель Интернета и даётся в качестве входных данных. Данная модель основана на конкретных измерениях между конкретными точками в определённое время. Если бы интернет-перегрузка в то время была нехарактерно высокая или низкая, то модель исказит результаты. В частности, эксперименты, которые связаны с задержкой, пропускной способностью или внутренней работой конкретной реализации TCP, могут потребовать более точное моделирование, что достаточно затратно по времени.

Однако, Shadow работает как симулятор дискретных событий, поэтому экспериментальные результаты можно повторить с использованием разных интернет-перегрузок. Утилита также может запускать реальное программное обеспечение на своих виртуальных узлах, используя плагины, созданные пользователем. Эта комбинация функций дискретное моделирование событий в сочетании с эмуляцией реального программного обеспечения делает данную утилиту уникальным инструментом.

Первый шаг к использованию симулятора это создание конфигурации сети в формате XML, которая отвечает за моделирование. XML-файл сообщает Shadow, когда следует создавать каждый виртуальный хост и какое программное обеспечение он должен запускать. Конфигурация также определяет структуру топологии и свойства сети, такие как задержка соединения, джиттер и скорость потери пакетов. Здесь описаны основные атрибуты, которые программа распознаёт в конфигурации.

После создания XML-файла необходимо подключить плагины это прокладки общих библиотек, которые связываются с приложением и играют ключевую роль в моделировании сети. Shadow динамически загружает эти библиотеки для выполнения кода приложения и перехватывает набор системных вызовов, чтобы обеспечить бесшовную интеграцию приложения в моделируемую среду. Благодаря этому приложение будет работать так же, как и в стандартной UNIX системе. В этой статье подробно описан простой плагин для ознакомления.



Это архитектура утилиты. Приложения интегрируются в Shadow с помощью плагинов, а системные и библиотечные вызовы перехватываются и заменяются реализациями специально для эмулятора.

Пример работы


Процесс установки подробно описан на сайте документации.

После завершения установки, перейти в папку shadow. После чего выполнить следующие команды для запуска двух экспериментов:

cd resource/examples/rm -rf shadow.data shadow.logshadow --tcp-windows=1 shadow.config.xml > window1.logmv shadow.data window1.datashadow --tcp-windows=1000 shadow.config.xml > window1000.logmv shadow.data window1000.data


Чтобы распарсить логи выполнения, необходимо выполнить следующие команды:

python ../../src/tools/parse-shadow.py --prefix=window1.results window1.logpython ../../src/tools/parse-shadow.py --prefix=window1000.results window1000.log


Каждый из каталогов window1.results/ и window1000.results/ теперь содержит статистические данные, извлечённые из логов. Теперь можно объединить и визуализировать эти результаты с помощью скрипта plot-shadow.py, который находится по пути ../src/tools/:

python ../../src/tools/plot-shadow.py --prefix "window" --data window1.results/ "1 packet" --data window1000.results/ "1000 packets"


Заключение


С помощью Shadow можно исследовать широкий спектр проблем и не использовать большое количество серверов для экспериментов. Также существует отличная документация, которая позволяет без лишних проблем глубже разобраться в программе. Проект активно поддерживается сообществом и развивается.



На правах рекламы


VDSina предлагает серверы в аренду под любые задачи, огромный выбор операционных систем для автоматической установки, есть возможность установить любую ОС с собственного ISO, удобная панель управления собственной разработки и посуточная оплата.

Подписывайтесь на наш чат в Telegram.

Источник: habr.com
К списку статей
Опубликовано: 07.05.2021 10:12:10
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании vdsina.ru

Децентрализованные сети

Сетевые технологии

Shadow

Утилиты

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru