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

521_Kokoreva,_e._V._Modelirovanie_v_srede_network_

.pdf
Скачиваний:
2
Добавлен:
12.11.2022
Размер:
2.27 Mб
Скачать

построения 8 различных гистограмм;

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

зависимости и статистика по всей сети, отдельно по узлам и звеньям;

результаты могут быть сохранены в текстовые файлы, а графики – в формате .tiff или .jpeg.

31

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

Применение языка Tcl для моделирования информационных систем

Цель работы: Овладеть основными принципами создания, отладки и запуска скриптов и процедур на языке Tcl (Tool Command Language). Научиться работать в среде ns2 под управлением эмулятора Cygwin операционной систе-

мы Linux.

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

1. Команды Tcl

Присвоение значений переменным: set переменная значение

Пример: set x 10

Значение переменной можно получить, используя символ $.

Например, команда set y $x присвоит y значение 10, ранее присвоен-

ное переменной x.

Вычисление математических выражений: expr выражение Синтаксис математических выражений такой же, как в языке C. Пример: expr 3.4 + 2

С использованием переменных: expr $x*$y

Вложенные команды:

Пример: set y [expr $x/2]

Переменная y получит результат вычисления: значение x разделить на 2.

Вывод на экран: puts содержимое

Пример: puts [expr {$y*$x}]

2. Математические операции

См. рисунок 22.

Рисунок 22 – Математические операции в Tcl

32

3.Логические операции

&&- Логическое и

||- Логическое или

4.Управляющие конструкции

4.1.Ветвление

Синтаксис: if {условие}{команды} else {команды}

Пример: if {k > 0}{ return $k } else {

return [expr {$k**$k}]

}

4.2. Циклы

Синтаксис: while {условие} {

команды

}

Пример: while {i <= 10} {

incr i

}

Синтаксис: for {инициализация}{условие}{действие}{

команды

}

Пример: set p 1

for {set i 1} {i <= 5} {incr i} { set p [expr {$p*$i}]}

5. Математические функции

abs(x)

round(x)

sin(x), cos(x), tan(x)

log(x), log10(x)

sqrt(x), pow(x,y)

Пример:

set a 2;

set b [expr pow

-абсолютное значение (модуль);

-округление;

-тригонометрические функции;

-логарифмирование;

-извлечение корня и возведение в степень.

($a,3)];

33

puts $b;

6. Процедуры

Создание процедуры:

proc имя {параметры} {

команды

return результат

}

Запуск процедуры: имя фактические параметры

Пример:

proc factorial {n} {

if {$n

<=

1}{

return

1 } else {

set i

1

 

set p

1

 

while

{$i

<= $n} {

set p

[expr {$p*$i}]

incr i

}

 

return

$p

}

}

# Пример вызова процедуры factorial

set n 5

set result [factorial $n] puts $result

Задание:

Запрограммировать две формулы (по варианту). Получить результат выполнения скрипта.

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

1.В любом текстовом редакторе (например, Notepad или Notepad++) создать скрипт на языке Tcl для выполнения задания (по варианту из таблицы 1) и сохранить его с расширением .tcl (например, lab1.tcl) в папку d:/ns2/. (Папку можно назвать по-другому, латинскими буквами, без пробелов и знаков препинания).

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

3.Запустить в командной строке Linux графический X-сервер командой startx. (Этот пункт необязателен – он будет нужен для сценариев ns2).

34

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

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

6.Просмотреть результат (можно проверить результат в Mathcad).

7.Повторить пп.1-6 для второго задания.

8.Сдать и защитить лабораторную работу.

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

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

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

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

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

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

5.Результаты выполнения лабораторной работы со скриншотами.

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

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

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

1.Перечислите составляющие пакета ns2.

2.Что представляет собой скрипт ns2.

3.Как присвоить значение переменной в языке Tcl?

4.Как вывести на экран значение переменной в языке Tcl?

5.Какие выражения и команды языка Tcl вы знаете?

6.Что представляет собой язык OTcl?

7.Как создать и запустить процедуру?

Задания:

1. y ((x5x)!)x

2.

3.

y (x3!x)!

x! x

y

 

 

4x! 2x

 

 

y2x! (2x)!

4.2x

35

cosx( x)

5.y x2 2x 1

6.y x! (x 1)! (x 2)! ... 1!

7.y xx! (x 1)(x 1)! ... 11!

8.y x1! (x 1)2! ... 1x!

9.y (x!)x ((x 1)!)x 1 ... (2!)2 (1!)1

10.y (x!)1 ((x 1)!)2 ... (2!)x 1 (1!)x

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

Таблица 1 – Номера формул

 

6

7

8

9

10

 

 

 

 

 

 

1

1

2

3

4

5

2

6

7

8

9

10

3

11

12

13

14

15

4

16

17

18

19

20

5

21

22

23

24

25

Ячейка таблицы содержит номер варианта, соответствующий заголовок строки содержит номер первой формулы, а заголовок столбца – номер второй формулы.

Вариант выбирается по последним двум цифрам номера зачётной книжки (см. введение).

36

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

Моделирование TCP-сети с простой структурой

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

Задание:

Создать объект Simulator ns2. Открыть файл для записи результатов трассировки (для графического визуализатора). Вставить команду записи в файл трассировки. Описать процедуру окончания трассировки "finish" (см. пример в разделе 2.4).

Создать модель простой сети, состоящей из четырех узлов: node0, node1, node2, node3, структура которой выбирается по варианту из таблицы 2. Топологии сети представлены на рисунке 23.

1

2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 23 – Топологии сетей

37

Номер источника соответствует номеру узла, которому направлен поток, номер приёмника соответствует номеру источника. Приёмник без номера служит для всех потоков. Эти обозначения введены только для удобства описания топологии, в модели нельзя использовать одинаковые обозначения для разных источников, как, например, в топологии 1.

Узлы соединены duplex-link, как показано на рисунке 23, при этом узел-источник содержит агент TCP или UDP (по варианту) c источником трафика для узла-приёмника. Узел-приёмник содержит агент-приёмник, соответствующего типа. Соединить агенты-источники с агентами-приемниками.

Вариант содержит также:

параметры звеньев (пропускная способность, задержка, тип Drop Tail, RED, SFQ и размер очереди);

источники трафика (FTP, Telnet, CBR, Pareto, Exponential).

Задать параметры трафика по своему усмотрению (packetSize_, interval_, burst_time_, idle_time_ и пр.).

Создать at события для планировщика событий: старт и стоп источников в узлах и запуск процедуры "finish".

Вставить команду запуска симулятора.

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

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

пример, lab2.tcl) в папку d:/ns2/. (Папку можно назвать по-другому, латинскими буквами, без пробелов и знаков препинания).

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

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

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

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

6.Просмотреть результат в визуализаторе Nam.

7.Сдать и защитить лабораторную работу.

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

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

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

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

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

4.Топология моделируемой сети.

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

38

6.Результаты выполнения лабораторной работы (визуализация) со скриншотами.

7.Содержимое трейс-файлов.

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

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

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

1.Перечислите сетевые компоненты ns2.

2.Какие есть узлы в модели ns2?

3.Что такое звено, как его задать в модели ns2?

4.Перечислите механизмы обслуживания очередей в ns2. Дайте их краткую характеристику.

5.Как задать источник трафика ns2?

6.Охарактеризуйте календарь событий.

7.Перечислите и кратко опишите параметры трафика.

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

Таблица 2 – Структура сети

**

TCP, FTP

TCP, Exponential

TCP, CBR

TCP, Pareto

UDP, CBR

*

10Мб/с, 10ms

1Мб/с, 5ms

20Мб/с, 10ms

2Мб/с, 50ms

30Мб/с, 5ms

RED, 10

DropTail, 5

SFQ, 2

FQ, 10

DRR, 4

1

1

2

3

4

5

2

6

7

8

9

10

3

11

12

13

14

15

4

16

17

18

19

20

5

21

22

23

24

25

*Номер топологии.

**Параметры трафика:

-агент, приложение;

-пропускная способность, задержка;

-механизм обслуживания очереди, размер очереди.

39

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

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

Цель работы: Овладеть основными принципами обработки результатов моделирования в среде ns2. Научиться использовать файлы трассировки и просматривать результаты моделирования с помощью Xgraph.

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

1. Общие сведения об утилите XGraph

Утилита XGraph входит в состав пакета ns2 и её команды могут вызываться в теле tcl-скрипта для графического отображения результатов моделирования.

Пример:

exec xgraph f1.tr f2.tr

Обязательным параметром команды xgraph является имя файла (или нескольких файлов – f1.tr, f2.tr), содержимое которого(ых) будет выведено на координатную плоскость. Далее команда может содержать несколько опций для редактирования рисунка, которые описаны ниже.

Некоторые опции XGraph:

Заголовок: –t "title";

Размер: –geometry xsize ysize;

Наименования осей: –x "xname" –y "yname";

Толщина линии: -lw width;

Шрифт подписей осей и легенды: -lf "font-size" (например

"helvetica-15");

Шрифт заголовка: -tf "font-size";

Цвет осей: -zg "color";

Толщина осей: -zw width.

Примечание: Лучше не использовать кириллицу для подписей в XGraph, т.к. встроенные в него шрифты её не поддерживают.

Пример:

exec xgraph f1 –geometry 800 600 –t "Graph" –x "time" –y "loss"

Для того, чтобы использовать XGraph для построения графиков, необходимо в tcl-скрипт поместить строки создания файла(ов) данных в соответствующем формате. Файл состоит из строк, содержащих координаты точек графика, например, time – rate. Первый элемент строки содержит абсциссу точки, второй – ординату.

40