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

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

2.Пример моделирования канала с выводом результата на график

Вприведённом ниже примере для мониторинга статистики принятых (потерянных) данных используется агент-приёмник LossMonitor.

Примечание: Данный агент нельзя использовать в качестве приёмника TCP пакетов, т.к. эти пакеты требуют подтверждения, а LossMonitor их просто уничтожает.

Объектами данного агента являются:

количество потерянных пакетов: nlost_;

количество принятых пакетов: npkts_;

количество принятых байт: bytes_;

время поступления последнего принятого пакета: lastPktTime_;

ожидаемый последовательный номер следующего пакета: expected_.

Пример:

#Открыть файлы f0 f1 для записи set f0 [open out0.tr w] set f1 [open out1.tr w]

…

#Процедура записи данных в файлы proc record {} {

#Глобальные переменные global sink0 sink1 f0 f1

#Создать экземпляр объекта симулятора set ns [Simulator instance]

#Время, через которое будет вызываться эта процедура set time 0.2

#Количество принятых байт (bytes_), каждым из

#агентов-приёмников

set bw0 [$sink0 set bytes_] set bw1 [$sink1 set bytes_]

#Текущее время

set now [$ns now]

#Записать в файл текущее время и скорость

#передачи в кбит/с.

puts $f0 "$now [expr $bw0/$time*8/1000]" puts $f1 "$now [expr $bw1/$time*8/1000]"

#Сбросить значение переменной bytes_ приёмника

41

$sink0 set bytes_ 0 $sink1 set bytes_ 0

#Перезапустить процедуру через заданное время $ns at [expr $now+$time] "record"

}

…

#Вместо традиционных агентов-приёмников создать агенты #LossMonitor, которые будут подсчитывать принятые байты

#данных

set sink0 [new Agent/LossMonitor] $ns attach-agent $n0 $sink0

set sink1 [new Agent/LossMonitor] $ns attach-agent $n1 $sink1

…

#Процедура "finish" примет вид proc finish {} {

global ns f0 f1 $ns flush-trace close $f0 close $f1

exec xgraph out0.tr out1.tr -geometry 800x400 –lw 2 & exit 0

}

Результат – динамика производительности канала (Кбит/сек.) представлен на рисунке 24.

Можно исключить строки создания, закрытия и записи в файл .nam для визуализатора, а также запуска визуализатора в процедуре "finish", т.к. в данной лабораторной работе анимация не обязательна. Все остальные строки модели останутся без изменений.

Задание:

Разработать в симуляторе ns2 модель сети в соответствии с вариантом из лабораторной работы №2 для получения графических результатов. Изменить агенты-источники TCP на UDP.

Модель должна содержать приёмники LossMonitor для всех передаваемых данных и выражения для обработки событий.

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

42

тока необходимо создать выходной файл, состоящий из двух столбцов – <вре-

мя> и <параметр>.

Рисунок 24 – Вывод графического результата моделирования программой XGraph

Для вывода результатов нужно использовать программу XGraph. Чтобы графики были читабельными, необходимо отредактировать толщину и цвет осей и линий, а также заголовок и подписи осей.

Порядок выполнения:

1.На основе скрипта из лабораторной работы №2 в любом текстовом редакторе (например, Notepad++) создать скрипт на языке Tcl для выполнения задания и сохранить его с расширением .tcl (например, lab3.tcl) в выбранную папку.

2.В скрипт добавить строки для формирования входного файла(ов) программы XGraph (содержание файла скорость передачи каждого потока данных).

3.Запустить эмулятор Linux Cygwin.

4.Запустить в командной строке Linux графический X-сервер командой startx.

5.Указать путь к файлам примеров командой: cd d:/ns2/.

6.Запустить скрипт на выполнение командой: ns lab3.tcl.

7.Построить графики результатов моделирования с помощью XGraph. Зависимости скоростей передачи потоков от времени.

8.Оформить отчёт по лабораторной работе.

43

9. Сдать и защитить работу.

10.Выйти из эмулятора командой exit.

Содержание отчёта:

1.Номер, название и цель лабораторной работы.

2.ФИО и группа студента, выполнившего лабораторную работу.

3.Номер варианта и задание к лабораторной работе.

4.Структура моделируемой сети.

5.Tcl-скрипт в соответствии с заданием.

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

7.Полученные трейс-файлы.

8.Описание выполнения лабораторной работы и полученных результатов.

9.Выводы по проделанной работе.

Контрольные вопросы:

1.Перечислите утилиты для обработки результатов моделирования ns2.

2.Охарактеризуйте программу XGraph, её преимущества и недостатки.

3.Как задать размер графической области XGraph?

4.Каков формат входного файла XGraph.

5.Опишите опции программы XGraph.

6.Как использовать агенты-приёмники для получения результатов моделирования?

7.Как записать результаты мониторинга в выходной файл?

Варианты заданий:

Таблица 3 – Исследуемый параметр канала

Параметр

 

Варианты

 

 

 

 

 

 

 

Средний размер принятого пакета, байт

1

6

11

16

21

Производительность, бит/сек.

2

7

12

17

22

Производительность, пакет/сек.

3

8

13

18

23

Потери, пакет/сек.

4

9

14

19

24

Входная нагрузка, Кбит/сек.

5

10

15

20

25

44

Лабораторная работа №4

Мониторинг очередей

Цель работы: Изучить метод мониторинга очередей в среде ns2. Научиться использовать средства слежения и производить вывод результатов моделирования в XGraph.

Краткая теория:

Для изучения поведения телекоммуникационной системы полезно отслеживать изменения, происходящие в очередях некоторых звеньев (например, средний размер или текущий размер очереди). Данный процесс называется мо-

ниторингом очередей.

1. Объекты мониторинга и слежения

Мониторинг очереди осуществляется с помощью объектов мониторинга очереди и объектов слежения за очередью (рисунок 25).

Рисунок 25 – Звено с объектами мониторинга очереди

На рисунке 25:

SnoopQ/In – входной объект слежки за очередью;

SnoopQ/Out – выходной объект слежки за очередью;

SnoopQ/Drop – объект слежки за отбрасываемыми пакетами в очереди.

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

2. Средства мониторинга в ns2

Для добавления объектов мониторинга очереди в tcl-скрипт модели необходимо добавить строку:

set qmon [$ns monitor-queue $n2 $n3 [open qm.out w] 0.01]

45

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