Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ММТССиПД_ns2_метода

.pdf
Скачиваний:
107
Добавлен:
15.03.2015
Размер:
1.02 Mб
Скачать

ГАЛКИН А.М., КУЧЕРЯВЫЙ Е.А., МОЛЧАНОВ Д.А.

ВВЕДЕНИЕ

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

Преимуществом имитационного моделирования является возможность подмены процесса событий в исследуемой системе в реальном масштабе времени на ускоренный или замедленный процесс смены событий в темпе работы программы. В результате за несколько минут можно воспроизвести работу сети в течение нескольких дней, что дает возможность оценить работу сети в широком диапазоне варьируемых параметров. Либо несколько секунд работы сети можно воспроизводить в течение десятков минут, что дает подробно разобрать процессы, происходящие в сети.

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

коэффициентах использования каналов и узлов, вероятности потери пакетов и т.п.

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

Поэтому на свет появилось множество программных продуктов, таких как

GPSS, OPNET и ns2.

3

1.ИСТОРИЯ СОЗДАНИЯ NS2

В1996 году начались работы над проектом VINT (Virtual InterNetwork Testbed), организованным DARPA (Defense Research Projects Agency) и

реализуемым под руководством целого ряда научных организаций и центров: USC/ISI (University of Southern California / Information Sciences Institute), Xerox PARC, LBNL (Lawrence Berkley National Laboratory) и UCB (UC Berkley).

Основными спонсорами проекта являются DARPA, NSF и ACIRI (AT&T Center for Internet Research at ICSI). Главной целью проекта VINT являлось построение программного продукта, позволяющего осуществлять имитационное моделирование сетей связи и обладающего целым рядом характеристик, среди которых высокая производительность, хорошая масштабируемость, визуализация результатов и гибкость. В качестве основы программной реализации был выбран разрабатываемый в University of California с 1989 года пакет network simulator (до 1995 года известный как

REAL). Для программного продукта было выбрано имя network simulator 2 (ns2).

Ns2, как и его предшественники, разрабатывался как программное обеспечение с открытым исходным кодом (open source code software – OSS).

Такое ПО распространяется бесплатно – без каких либо ограничений на право использования, модификации и распространения третьими лицами. Таким образом, с точки зрения стоимости ns2 безусловно является лидером по сравнению с коммерческим ПО – он бесплатен. По этой же причине бесплатны и всегда доступны on-line все обновления и дополнения (новые библиотеки, протоколы и т.п.). Еще одним свойством программного обеспечения OSS является возможность модификации ядра программы и гибкая настройка в соответствии с требованиями конкретного пользователя.

Одним из отличительных свойств ns2 с точки зрения гибкости является мультиоперационность. Полные версии, включающие все функции, на

4

данный момент работоспособны под управлением Unix-подобных операционных систем, а также всех версий ОС Windows.

2. ИНСТАЛЛЯЦИЯ ПАКЕТА NS2

2.1. Общие положения

Последняя версия ns2 (ns-2.29) была выпущена 19 октября 2005 года1. В

этой главе мы будем использовать в качестве примера именно эту версию пакета.

Для инсталляции полной версии пакета ns2 необходимо установить следующие компоненты:

Tcl,

Tk,

Otcl,

Tclcl,

Ns2,

Nam,

Xgraph (для Unix) или Tracegraph (для Windows).

Tcl (Tool Command Language) – простой командный язык программирования, который используется при моделировании в пакете ns2.

Tk – библиотека Си-функций для языка Tcl.

Otcl – объектно-ориентированное расширение языка Tcl.

Tclcl – интерфейс между С++ и Tcl.

Nam (Network animator) – визуализатор результатов моделирования. Xgraph и Tracegraph – пакеты для отображения графических результатов

и получения статистики моделирования.

Так как в России абсолютное большинство пользователей персональных компьютеров использует семейство операционных систем Windows, то мы

1 На момент выхода пособия в печать появилась новая версия – ns-2.30

5

подробно рассмотрим установку ns2 для OC Windows. Существует несколько вариантов установки пакета ns2 для этой операционной системы.

Для первого варианта необходимо иметь уже установленный Microsoft Visual C++ и следующие компоненты:

tcl-8.3.2,

tk-8.3.2,

otcl-1.0a7,

tclcl-1.0b11,

ns-2.1b8a-win,

которые можно скачать с официального сайта ns2.

В данном случае для компиляции ns2 используется Nmake. Nmake – это компилятор С++, работающий в режиме командной строки, который присутствует в пакете Visual C++.

На данном варианте установки ns2 мы подробно останавливаться не будем, так как, начиная с версии ns-2.26, данный метод уже не поддерживается. Подробная инструкция на английском языке по установке

ПО дана здесь: http://www.isi.edu/nsnam/ns/ns-win32-build.html, либо здесь: http://fiddle.visc.vt.edu/courses/ece5566/lectures/09ns2_install.pdf.

Второй вариант установки заключается в том, что в ОС Windows

необходимо иметь эмулятор Unix. Тогда можно инсталлировать пакет ns2 “все в одном”, то есть не надо загружать и компилировать компоненты ns2 по отдельности, а также корректировать команды создания файлов (Makefile).

2.2.Установка Cygwin

Вкачестве эмулятора Unix разработчики ns2 рекомендуют использовать пакет Cygwin, который является наиболее мощной оболочкой Unix для OC Windows. Установку Cygwin пользователь может произвести с официального сайта www.cygwin.com. Все программное обеспечение на этом сайте бесплатно.

6

Рассмотрим данный вариант установки ns2 пошагово.

Для начала необходимо установить оболочку Cygwin (пример установки приведен для версии Cygwin 1.5.20-1). Для этого нужно скачать файл установки setup.exe с официального сайта http://cygwin.com/ и запустить его. Установочный файл предложит выбрать тип установки: – «установить из Интернет», «загрузить из Интернет» или «установить из локальной папки»

(рис 2.1).

Рис 2.1. Интерфейс инсталлятора Cygwin. Шаг 1

Рис 2.2. Интерфейс инсталлятора Cygwin. Шаг 2

7

Далее инсталлятором будет предложено выбрать директорию для установки. В названии данной директории не должно быть никаких пробелов.

Например, папка: C:\program files\cygwin, не подходит, а C:\Cygwin

подходит. Тип текстовых файлов должен быть Unix.

Для нормального функционирования ns2 кроме компонентов Cygwin,

установленных по умолчанию, необходимо загрузить дополнительные компоненты. Для этого в окне, в котором установочный файл предложит Вам выбрать компоненты Cygwin, выберите вид (кнопка view) – Not installed (рис. 2.2). После этого необходимо выбрать следующие компоненты:

XFree86 или X11 – это так называемая X Window System – оконная система для растровых дисплеев. Она обеспечивает стандартные инструменты и протоколы для построения графических интерфейсов пользователя. Для новых версий Cygwin – это файл XFree86-lib-compat, а для старых версий –

XFree86-base, XFree86-bin, XFree86-prog, XFree86-lib и XFree86-etc. Также в обоих случаях необходимы файлы: x-org-x11-bin, x-org-x11-bin-dlls, x-org-x11- devel, x-org-x11-libs-data , x-org-x11-etc;

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

Утилита patch – используется для применения заплат (при наличии первоначальных исходных текстов), которая автоматически вносит необходимые изменения;

gcc-g++ – компилятор С/С++ (не ниже версии 3).

Также необходимы для ns2 следующие компоненты, обычно уже

включенные в установку по умолчанию:

Набор утилит diffutils – определяет различия между файлами;

Язык Perl (не ниже версии 5.6.1);

Gawk – утилита awk предназначенная для простых, механических и вычислительных манипуляций над данными;

8

Архиватор tar;

Архиватор gzip;

w32api – заголовочные файлы и файлы импорта библиотеки для

Win32 API.

После проверки наличия всех необходимых компонентов можно начинать установку. Если в дальнейшем понадобиться установить другие компоненты Cygwin, то это можно сделать с помощью того же файла setup.exe.

После окончания установки Cygwin необходимо запустить файл

Cygwin.exe. При этом автоматически будут созданы домашняя директория и системные файлы для пользователя Windows.

Домашней или корневой директорией для пользователя Cygwin будет считать: C:\Cygwin\home\user, где C:\Cygwin – папка, в которую был установлен Cygwin, а user – имя пользователя2. В корневом каталоге пользователя содержатся несколько файлов, основные из которых два:

.inputrc – отвечает за то, чтобы правильно работали все клавиши,

.bashrc – содержит команды, исполняемые при запуске Cygwin.

Подробно на описании Cygwin мы останавливаться не будем. В сети

Internet есть множество ресурсов, посвященных ему. Однако рассмотрим кратко его некоторые основные особенности.

В Cygwin большие буквы не равны маленьким. То есть /etc и /Etc – две разные директории. Для перехода к Х-серверу необходимо использовать команду startx. Х-сервер нужен для отображения графических приложений

(например, nam или Xgraph).

Основные команды:

ls – просмотреть содержание директории; cd – перейти в другую директорию;

cp – скопировать файл;

2 При установке Cygwin использует имя пользователя Windows, поэтому в имени пользователя Windows не рекомендуется использовать русские буквы.

9

mv – переместить/переименовать файл; rm – удалить файл;

mkdir – создать директорию;

pwd – вывести текущую директорию.

2.3. Установка ns2-allinone

После корректной установки Cygwin можно приступать к инсталляции непосредственно пакета ns2. Как уже отмечалось ранее, под Cygwin

устанавливается пакет «все-в-одном» (all-in-one). Текущую версию можно загрузить с официального сайта ns2: http://www.isi.edu/nsnam/ns/ns-build.html.

Загруженный файл (например, ns-allinone-2.29.tar.gz) необходимо распаковать в один из каталогов Cygwin. Например: C:/Cygwin/ns-allinone- 2.29/. Распаковывать можно либо средствами Windows, либо в Cygwin при помощи архиваторов tar и gzip:

gzip –d –c ns-allinone-2.29.tar.gz | tar xvf –

Затем необходимо перейти в появившуюся папку: cd ns-allinone-2.29/

И запустить процесс установки:

./install

Рис 2.3. Иллюстрация успешного завершения установки ns2

10

Процесс установки занимает примерно от 15 минут до 1,5 часов в зависимости от производительности компьютера. При успешном завершении установки ns2 должно появиться извещение, о том, что ns2 инсталлирован,

список установленных компонентов и примечания (см. рис. 2.3).

В соответствии с примечаниями, выводимыми на экран после завершения установки необходимо в файл .bashrc поместить следующие строки (для ns-2.29):

export NS_HOME=/home/user/ns-allinone-2.29/

export PATH=$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/unix:$NS_HOME/bin:$PATH export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/unix:\ $NS_HOME/otcl-1.11:$NS_HOME/lib:$LD_LIBRARY_PATH

export Tcl_LIBRARY=$NS_HOME/tcl8.4.11/library

Где user – имя пользователя. После этого можно использовать ns2 для моделирования.

При установке компонентов ns2 могут возникнуть проблемы. В этом случае можно попробовать запустить ОС Windows в безопасном режиме –

/safeboot (для Windows XP набрать в командной строке msconfig и изменить запись о параметрах загрузки в файле boot.ini). Либо можно попробовать установить предыдущую версию ns2. если эти действия не помогут, то можно обратиться на страницу http://isi.edu/nsnam/ns/ns-problems.html.

3. ОСНОВНЫЕ СВЕДЕНИЯ ОБ NS2

3.1. Архитектура ns2

Ns2 является объектно-ориентированным ПО, ядро которого реализовано на языке С++. Язык скриптов (сценариев) OTcl (Object oriented Tool Command Language) используется в качестве интерпретатора. Ns2

полностью поддерживает иерархию классов С++ (называемую в терминах ns2

компилируемой иерархией) и подобную иерархию классов интерпретатора

OTcl (называемую интерпретируемой иерархией). Обе иерархии обладают идентичной структурой, т.е. существует однозначное соответствие между классом одной иерархии и таким же классом другой. Использование двух

11

языков программирования в ns2 объясняется следующими причинами. С

одной стороны, для детального моделирования протоколов необходимо использовать системный язык программирования, обеспечивающий высокую скорость выполнения и способный манипулировать достаточно большими объемами данных. С другой стороны, для удобства пользователя и быстроты реализации и модификации различных сценариев моделирования привлекательнее использовать язык программирования более высокого уровня абстракции. Такой подход является компромиссом между удобством использования и скоростью. В ns2 в качестве системного языка используется С++, позволяющий обеспечить:

высокую производительность;

работу с пакетами потока на низком уровне абстракции модели;

модификацию ядра ns2 с целью поддержки новых функций и протоколов.

12