Пояснительная записка(21.06) новая (1214932), страница 7
Текст из файла (страница 7)
– средства визуализации. Наличие средств визуализации и графического интерфейса пользователя значительно упрощает освоение программного обеспечения, облегчает восприятие и интерпретацию результатов моделирования. В качестве критерия рассматривается наличие собственной или подключаемой среды разработки с графическим интерфейсом, средств визуализации текущих и окончательных результатов моделирования в виде выходного сценарного или текстового файла, гистограмм, таблиц, анимационного ролика;
– стоимость. Этот параметр зависит от типа лицензии программного обеспечения, которое может распространяться бесплатно (GNU General Public License) или за определенную плату (Commercial);
– поддерживаемые операционные системы. Виды операционных систем, для которых существуют версии программ-симуляторов.
2.1.3 Сравнительный анализ симуляторов
Результаты сравнительного анализа программных комплексов для моделирования VANET приведены в таблице 1.
Таблица 1 – Сравнительный анализ программ-симуляторов VANET
| Симулятор | Модели распространения сигнала | Стандарты связи | Протоколы маршрутизации | Средства визуализации | Стоимость | Операционные системы |
| OPNET | Rayleigh, Ricean, Two-Ray | 802.11a, b, e, g, n | AODV, DSR, GRP, OLSR, TORA | + | IT Guru Academic Edition, Full-Feature Software | Windows |
| NS-2 | Free Space, Two Ray | 802.11b, 802.15.4 | AODV, DSDV, DSR, TORA | Nam, xgraph | GNU General Public License | Windows, GNU/Linux, FreeBSD, Mac OS X |
| NS-3 | COST-Hata-Model, Jakes, Okumura Hata, Nakagami, Two-Ray Ground | 802.11a,b,g,p | AODV, DSDV, DSR, TORA | NetAnimator, PyViz | GNU General Public License | Windows, GNU/Linux, FreeBSD, Mac OS X |
| GlоMoSim | Two ray and Free space | 802.11a, b, e, g, n | AODV, DSR | + | Academic use only | Windows, GNU/Linux, FreeBSD, Mac OS X, Solaris |
Продолжение таблицы 1
| Симулятор | Модели распространения сигнала | Стандарты связи | Протоколы маршрутизации | Средства визуализации | Стоимость | Операционные системы |
| QualNet | Free space, TIREM, Urban | 802.11a, b, e, g, n | AODV, DSR, OLSR | + | Commercial | Windows, GNU/Linux, FreeBSD, Mac OS X, Solaris |
| Veins | Jakes, log-normal, Two-Ray | 802.11p, 802.15.4 | Broadcast, ArpHost, DummyRoute, Flood, WiseRoute | OMNeT++, sumo | GNU Public License | Windows, GNU/Linux, FreeBSD, Mac OS X |
| Castalia 3.2 | Отсутствие помех, упрощенная модель интерференции, аддитивная интерференция | 802.15.4 | Bypass Routing, multipathRings Routing | - | GNU Public License | GNU/Linux, FreeBSD, Mac OS X |
| EstiNet | University Kangaku Model | Full 802.3/ 11/ 16 | ADV,AODV, DSDV, DSR | + | Commercial | GNU/Linux Fedora |
Из результатов анализа следует, что наиболее подходящими для симуляции являются симуляторы NS2, NS3 и Veins, так как они распространяются по бесплатной модели, поддерживают распространённые модели распространения сигнала, обладают поддержкой стандарта «802.11p». Однако симулятор Veins весьма сложен в освоении в сравнении с NS2 и NS3, из-за закрытости используемой среды OMNet++, в то время как NS имеют полностью открытый и хорошую документацию, что позволяет не только упростить процесс освоения симулятора, но и даёт возможность настройки его под свои нужды. Однако NS2 уже не поддерживается и в целом имеет некоторые проблемы со структурой модулей, что осложняет работу с ним. В связи с этим дальнейшая работа будет осуществляться в симуляторе NS3.
2.2 Подготовка симулятора VANET к работе
Прежде чем приступить к настройке симулятора следует произвести определение параметров симуляции. Все симуляции будут проводиться для 4-х выбранных протоколов для анализа, а именно – OLSR, DSDV, CLWPR, GPSR. Для сравнения протоколов будут использованы две карты – магистраль с невысокой плотностью машин, но большой протяжённостью, а также карта городской среды. Будет проведено два набора симуляций, первый будет отражать условия при низкой силе передачи пакетов и модели с резкими изменениями помех, что должно показать работу протоколов при относительно неблагоприятных условиях. Второй набор будет проведён в условиях, приближенных к реальным, с моделью распространения сигнала рекомендованной в зависимости от дальности передачи, и стандартной силой передачи для стандарта «802.11p». Каждый набор симуляций будет включать в себя симуляции с различной скоростью движения узлов, скорости движения выбраны следующими: 13.89 м/с, 27.78 м/с, 56.56 м/с, а также сценарий включающий в себя только стационарные узлы (скорость равно 0 м/с). С целью анализа работы протоколов с разными видами трафика симуляции будут проводиться для 5 размеров пакетов: 64 байт, 128 байт, 256 байт, 512 байт, 1024 байт. Более детально параметры будут разобраны далее в подразделе, с кратким подведением итогов, содержащим результирующие параметры для симуляций в последнем пункте.
2.2.1 Установка симулятора
На данный момент симулятор NS3 официально выпущен только для ОС Linux. Для Windows имеется тестовое ответвление кода, но лучше всего будет работать с этим симулятором в среде Linux, так как это не потребует дополнительных усилий связанных с решением проблем совместимости и использования всех необходимых ресурсов симулятора, таких как визуализатор.
Сначала осуществляется загрузка симулятора с официального сайта. Далее следует выполнить сборку исходных файлов симулятора командой, однако перед этим необходимо загрузить библиотеки, требуемые для работы стандартного визуализатора NS3. Визуализатор понадобится в дальнейшем для того чтобы иметь возможность проверки топологии сети по ходу симуляции. Для работы визуализатора требуются следующие компоненты:
– python-dev;
– python-pygraphviz;
– python-kiwi;
– python-pygoocanvas;
– python-gnome2;
– python-rsvg;
– python-gnomedesktop.
Все указанные компоненты можно установить выполнив команду «sudo apt-get install X», где X – имя устанавливаемого компонента.
Командой «./build.py» выполняется сборка исходных файлов симулятора. После завершения сборки исходных файлов команда осуществит вывод всех модулей, с информацией о том были они собраны или нет, как показано на рисунке 13.
Рисунок 13 – Информация о модулях NS3
Исходя из рисунка 13 можно сделать вывод о том, что не были собраны три модуля, однако они не участвуют в симуляции сетей VANET, поэтому можно заключить что сбора прошла успешно. Для проверки работоспособности собранного симулятора следует запустить тестовый сценарий, идущий вместе с модулем «wave» как пример действия сетей VANET. Для запуска этого сценария следует сначала переместить его файл «vanet-routing-compare.cc» из каталога «src/wave/examples» в каталог «scratch», откуда по умолчанию рекомендуется запускать все симуляции. Это связано с тем что при сборке, для сокращения времени процесса, не были указаны флаги для сборки исходных кодов примеров, которым и является наш сценарий, поэтому запуск из каталога по умолчанию не удастся и файл сценария нужно переместить в каталог «scratch». Далее осуществляется запуск симуляции при помощи команды «./waf --run scratch/vanet-routing-compare --vis». В этой команде флаг «--run» даёт приложению понять, что выполняется запуск симуляции, а в качестве параметра принимается имя файла для запуска и параметры запуска, флаг «--vis» отвечает за вызов визуализатора. После выполнения сборки файла появится экран визуализатора, показанный на рисунке 14.
Рисунок 14 – Экран стандартного визуализатора NS3
После нажатия кнопки «Simulate» симуляция запустится, при этом она не завершится пока не будет закрыто окно визуализатора. После завершения симуляции, можно проверить файл вывода «vanet-routing.output.csv» для того чтобы удостовериться в корректности работы симулятора. Как видно из рисунка 15, вывод содержит некоторые результаты, следовательно, симулятор работает корректно и можно продолжать работу.
Рисунок 15 – Статистика, собранная на момент прерывания симуляции
2.2.2 Добавление протоколов
После сборки доступно 4 протокола: OLSR, AODV, DSDV, DSR, поэтому прежде чем приступить к дальнейшей работе необходимо интегрировать в симулятор требуемые протоколы. Протоколы, которые необходимо добавить уже имеют реализацию для симулятора NS3 и предложены сообществу для обзора на сайте codereview.com, откуда и следует их загрузить.
Протокол GPSR не вносит изменений в код других модулей для своей работы, поэтому достаточно сохранить его в каталоге, который содержит исходные коды всех модулей. Однако, протокол CLWPR вносит изменения в структуру других модулей, при этом этот протокол написан для более старой версии NS3, в связи чем возникает необходимость проверки изменений между файлами имеющимися в текущей версии симулятора и файлами рекомендуемыми. В связи с этим потребуется выполнить команду «diff», чтобы выявить части кода стандартных модулей которые необходимы для работы протокола. После внесения поправок в базовые модули NS3, можно сохранить код CLWPR.
Далее осуществляется повторная сборка симулятора, командами «./waf configure» «./waf». После сборки, если всё было выполнено верно, в выводе будет информация о том, что требуемые протоколы успешно собраны в виде модулей симулятора, как показано на рисунке 16.
Рисунок 16 – Модули NS3, включая собранные протоколы
2.2.3 Подготовка карты сценария
Как упоминалось в начале подраздела симуляции будут проводиться в городской среде и на протяжённой магистрали. Далее описан процесс создания файлов для симулятора NS3, которые будут отвечать за движение по указанным картам. При этом стоит отметить что в NS3 в качестве карты понимается файл, называемый файлом движения, задающий координаты узлов сети в определённые моменты времени, а также скорость их перемещения между несколькими точками.
2.2.3.1 Подготовка карты магистрали
Длина магистрали установлена в 5000 м. для возможности маршрутизации пакетов данных, и задания низкой плотности узлов. Данную карту можно подготовить вручную, но для этого сначала нужно изучить структуру файла движения машин поступающего в симулятор. В NS3 по умолчанию имеется пример файла движения для области города Цюрих, используя этот файл можно получить представление об общей структуре файлов движения в NS3.
Типичная структура представлена ниже:
$ns_ at 0.0 "$node_(86) setdest 1859.76 1078.38 0.00"
$node_(87) set X_ 1761.5















