Материал: 521_Kokoreva,_e._V._Modelirovanie_v_srede_network_

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Создадим генератор трафика CBR, подключим его к агенту UDP и зададим параметры:

#Задать передачу cbr-трафика через udp-соединение set cbr [new Application/Traffic/CBR]

$cbr attach-agent $udp $cbr set type_ CBR

$cbr set packet_size_ 1000 $cbr set rate_ 1mb

$cbr set random_ false

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

#Записать в планировщик события для CBR и FTP

#агентов

$ns at 0.1 "$cbr start" $ns at 1.0 "$ftp start" $ns at 4.0 "$ftp stop" $ns at 4.5 "$cbr stop"

отключение агентов TCP TCPSink от соответствующих узлов (приводим для примера; в данном случае в этом нет необходимости, т.к. моделирование на этом заканчивается):

$ns at 4.5 "$ns detach-agent $n0 $tcp; $ns detach-agent $n3 $sink"

вызов определенной ранее процедуры "finish" после 5 секунд модельного времени:

#Вызов процедуры finish через 5 секунд симуляции

$ns at 5.0 "finish"

Запустим моделирование:

$ns run

Сохраняем созданный скрипт в выбранную папку под именем tcpnet.tcl и далее запускаем его на выполнение командой:

ns tcpnet.tcl

в режиме x-сервера (рисунок 19).

Результат выполнения приведённого выше tcl-скрипта в виде визуализации network animator приведён на рисунке 20.

26

Рисунок 19 – Запуск tcl-скрипта на выполнение

На рисунке видна очередь пакетов из двух разных потоков (fid_ 1 и fid_ 2) и потери в результате переполнения очереди коммутатора в узле n2.

Рисунок 20 Пример визуализации моделирования TCP сети

3. Обработка результатов моделирования

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

27

Трейс-файл представляет собой текст в формате ASCII, в котором зарегистрированы необходимые события моделирования.

Для того чтобы трейс-файл был создан, в скрипт необходимо добавить следующие строки:

set f [open out.tr w]

$ns trace-all $f

Они добавляют объекты трассировки во все звенья сети. Имя трейс-файла может быть произвольным, расширение рекомендуется использовать .tr, т.к. некоторые программы обработки результатов, написанные для платформы Windows, могут считывать файлы только с таким расширением.

3.1.Формат файла трассировки

Одна строка файла трассировки содержит следующие поля (рисунок 21):

Рисунок 21 – Формат строки трейс-файла Поле «Событие» может содержать:

r – принятие пакета узлом;

+ – постановка пакета в очередь; -– снятие с очереди;

d – отбрасывание пакета из очереди.

Поле «Время» показывает модельное время события в секундах.

Поле «От узла» означает последний узел, который обрабатывал данный пакет.

Поле «К узлу» показывает, к какому узлу этот пакет направлен.

Поле «Тип пакета» указывает на то, к какому приложению или агенту относится данный пакет. Если транспортным агентом является UDP, то указывается приложение, если TCP, то указывается "tcp" – пакет или "ack" – подтверждение.

Поле «Размер пакета» содержит размер пакета сетевого уровня с учётом IP заголовка.

Поле «Флаги» содержит шесть флагов. Четыре из них используются для явного извещения о перегрузке. Первые два заполняют биты 6 и 7 в поле ToS заголовка IP, а следующие два в заголовке TCP.

Остальные два флага обозначают приоритет и быстрый старт TCP соответственно.

Поле «Идентификатор потока» совпадает с полем fid (flow ID) в заголовке

IPv6.

Поля «Адрес источника» и «Адрес приёмника» имеют формат узел.порт (например, 1.0).

28

Поле «Порядковый номер» показывает номер пакета на транспортном уровне.

Поле «Идентификатор пакета» говорит само за себя. Ниже приведён отрывок из трейс-файла:

+0.007102 2 1 rtProtoDV 4 ------- 0 2.4 1.1 -1 2 - 0.007102 2 1 rtProtoDV 4 ------- 0 2.4 1.1 -1 2

+0.007102 2 3 rtProtoDV 4 ------- 0 2.4 3.2 -1 3 - 0.007102 2 3 rtProtoDV 4 ------- 0 2.4 3.2 -1 3 r 0.020171 0 1 rtProtoDV 4 ------- 0 0.3 1.1 -1 0

+0.020171 1 0 rtProtoDV 4 ------- 0 1.1 0.3 -1 4 - 0.020171 1 0 rtProtoDV 4 ------- 0 1.1 0.3 -1 4

+0.020171 1 2 rtProtoDV 4 ------- 0 1.1 2.4 -1 5 - 0.020171 1 2 rtProtoDV 4 ------- 0 1.1 2.4 -1 5 r 0.020186 0 3 rtProtoDV 4 ------- 0 0.3 3.2 -1 1

Файл трассировки с расширением .nam предназначен для визуализатора Nam и имеет другой формат, нежели описанный выше. Этот трейс-файл не предназначен для последующей обработки.

Отрывок из трейс-файла для визуального отображения:

V -t * -v 1.0a5 -a 0

 

 

 

A -t * -n 1 -p 0 -o

0xffffffff -c 31 -a 1

 

A -t * -h 1 -m 2147483647

-s 0

 

c -t * -i 0 -n blue

 

 

 

c -t * -i 1 -n red

 

 

 

c -t * -i 2 -n brown

 

 

 

c -t * -i 3 -n green

 

 

 

n -t * -a 0 -s 0 -S

UP -v

circle -c black -i black

n -t * -a 1 -s 1 -S

UP -v

circle -c black -i black

n -t * -a 2 -s 2 -S

UP -v

circle -c black -i black

n -t * -a 3

-s 3

-S

UP -v

circle -c black -i black

l -t * -s 0

-d 1

-S

UP -r

20000000 -D 0.02 -c black -o right

l -t * -s 1

-d 2

-S

UP -r

2000000 -D 0.02

-c black -o down

l -t * -s 3

-d 0

-S

UP -r

2000000 -D 0.02

-c black -o up

l-t * -s 2 -d 3 -S UP -r 2000000 -D 0.02 -c black -o left

Существуют и другие форматы трейс-файлов [3, 4].

29

3.2.Средства обработки файлов трассировки

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

Для этого разработаны пакеты, описанные ниже.

3.2.1.Утилиты для вычислительных операций над данными

AWK – утилита для простых вычислительных манипуляций над данными. AWK входит в состав многих программ Unix-like для Windows, в том числе и Cygwin. Название утилиты составлено из первых букв фамилий её разработчиков (Aho-Weinberger-Kernighan).

Grep – утилита, работающая в режиме командной строки Unix. С помощью grep можно создать новый файл, который состоит только из тех строк исходного файла, которые включают в себя заданные последовательности знаков. Например, пользователю нужна только информация о TCP-пакетах, которые передаются от 1-го узла ко 2-му.

grep " 1 2 tcp " out1.tr > out2.tr

3.2.2.Программы для построения графических зависимостей

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

Gnuplot – бесплатное программное обеспечение как для Unix, так и для Windows. Для построения графика с помощью Gnuplot в наиболее простом варианте необходимо использовать команду plot ‘datafile’, где файл datafile имеет две колонки, первая содержит координаты точек по оси абсцисс, вторая – по оси ординат.

XGraph является частью пакета ns2 «все-в-одном», но может быть установлен и отдельно. XGraph может быть вызван внутри скрипта tcl, результатом чего будет являться вывод графика на экран сразу же после завершения моделирования. В качестве входных данных программа использует один или более ASCII-файлов, каждый из которых содержит набор строк, состоящих из пары координат x-y.

Например, xgraph file1 file2 выведет на одной координатной плоскости графики файлов file1 и file2. Более подробное описание см. в теории к лабораторной работе №3.

Программа TraceGraph была специально разработана для ns2. В качестве входных данных она использует трейс-файлы ns2. TraceGraph работает как на платформе Unix/Linux, так и Windows при условии, что установлена программа Matlab или её библиотеки. Возможности TraceGraph:

построения 238 различных двумерных зависимостей;

построения 12 различных трёхмерных зависимостей;

30

Источник: https://studfile.net/preview/16709022/