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

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

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

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1.П.В. Москвин. Азбука Tcl., М., Горячая Линия-Телеком, 2003

2.Б. Уэлш, К. Джонс, Дж. Хоббс. Практическое программирование на Tcl и Tk, M.,

Вильямс, 2004.

3.Петровский А.И. Командный язык программирования Tcl (Tool Command Language). –М.: Майор, 2001.

4.Eitan Altman, Tania Jimenez. NS for Beginners Lecture Notes, Univ. de Los Andes, Merida, Venezuela, Sept 2002, доступно по адресу: http://www-sop.inria.fr/maestro/personnel/Eitan.Altman/COURS-NS/n3.pdf

73

ПРИЛОЖЕНИЕ

1. Текст программы template.tcl

#Создание объекта моделирования set ns [new Simulator]

#Открытие трейс-файла nam set nf [open out.nam w] $ns namtrace-all $nf

#Открытие стандартного трейс-файла set f [open out.tr w]

$ns trace-all $f

#Описание процедуры 'finish' proc finish {} {

global ns nf f $ns flush-trace

#Закрытие трейс-файлов close $nf

close $f

#Запуск nam

exec nam out.nam & exit 0

}

#Вставьте ваш код для создания топологии сети

#и описания агентов, приложений и т.п.

#Вызов процедуры ‘finish’ через 5 секунд модельного времени $ns at 5.0 "finish"

#Запуск моделирования $ns run

2. Текст программы example1.tcl

#Создание объекта моделирования set ns [new Simulator]

#Открытие трейс-файла nam set nf [open out.nam w] $ns namtrace-all $nf

#Открытие стандартного трейс-файла set f [open out.tr w]

$ns trace-all $f

#Описание процедуры 'finish' proc finish {} {

global ns nf f $ns flush-trace

#Закрытие трейс-файлов close $nf

close $f

#Запуск nam

exec nam out.nam & exit 0

}

74

#Создание двух узлов set n0 [$ns node] set n1 [$ns node]

#Создание дуплексного звена между узлами $ns duplex-link $n0 $n1 2Mb 10ms DropTail

#Создание агента UDP и присоединение его к узлу n0 set udp0 [new Agent/UDP]

$ns attach-agent $n0 $udp0

# Создание источника трафика CBR (constant bit rate) и присоединение его к агенту udp0

set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500

$cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0

#Создание нулевого агента (приемника трафика) и присоединение его к узлу n1 set null0 [new Agent/Null]

$ns attach-agent $n1 $null0

#Соединение агента-источника и агента-приемника $ns connect $udp0 $null0

#Планировка событий для CBR $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop"

# Вызов процедуры ‘finish’ через 5 секунд модельного времени $ns at 5.0 "finish"

#Запуск моделирования $ns run

3. Текст программы example2.tcl

#Создание объекта моделирования set ns [new Simulator]

#Описание разных цветов для потоков данных $ns color 1 Blue

$ns color 2 Red

#Открытие трейс-файла nam set nf [open out.nam w] $ns namtrace-all $nf

#Открытие стандартного трейс-файла set f [open out.tr w]

$ns trace-all $f

#Описание процедуры 'finish' proc finish {} {

global ns nf f $ns flush-trace

#Закрытие трейс-файлов close $nf

close $f

#Запуск nam

exec nam out.nam & exit 0 }

75

#Создание 4 узлов set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node]

#Создание звеньев между узлами

$ns duplex-link $n0 $n2 2Mb 10ms DropTail $ns duplex-link $n1 $n2 2Mb 10ms DropTail $ns duplex-link $n3 $n2 2Mb 10ms SFQ

#Определение направлений для звеньев

$ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right

#Мониторинг очереди на звене между узлами n2 и n3 $ns duplex-link-op $n2 $n3 queuePos 0.5

#Создание агента UDP и присоединение его к узлу n0 set udp0 [new Agent/UDP]

$udp0 set class_ 1

$ns attach-agent $n0 $udp0

# Создание источника CBR-трафика и присоединение его к агенту udp0 set cbr0 [new Application/Traffic/CBR]

$cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0

#Создание агента TCP и присоединение его к узлу n1 set tcp1 [new Agent/TCP]

$ns attach-agent $n1 $tcp1

# Создание приложения FTP и присоединение его к агенту tcp1 set ftp [new Application/FTP]

$ftp attach-agent $tcp1

#Создание агента-получателя для udp0 set null0 [new Agent/Null]

$ns attach-agent $n3 $null0

#Создание агента-получателя для tcp1 set sink1 [new Agent/TCPSink]

$ns attach-agent $n3 $sink1

#Соединение агентов-источников и агентов-приемников $ns connect $udp0 $null0

$ns connect $tcp1 $sink1

#Планировка событий

$ns at 0.5

"$cbr0 start"

$ns at 1.0

"$ftp

start"

$ns

at

4.0

"$ftp

stop"

$ns

at

4.5

"$cbr0 stop"

# Вызов процедуры ‘finish’ через 5 секунд модельного времени $ns at 5.0 "finish"

#Запуск моделирования $ns run

76

 

 

Содержание:

 

Введение........................................................................................................................................

 

3

1.

История создания ns2 ..............................................................................................................

4

2.

Инсталляция ns2 ......................................................................................................................

5

 

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

5

 

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

6

 

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

10

3.

Основные сведения об ns2 ....................................................................................................

11

 

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

11

 

3.2. Языки программирования, используемые в ns2............................................................

15

 

3.2.1.

Язык Tcl ................................................................................................................

15

 

3.2.2.

Язык OTcl ............................................................................................................

26

 

3.3. Основные компоненты моделирования ns2 ..................................................................

31

 

3.3.1.

Планировщик событий ........................................................................................

31

 

3.3.2.

Основные сетевые объекты .................................................................................

34

 

3.3.3.

Пакет.....................................................................................................................

38

4. Моделирование IP-сетей на ns2 ............................................................................................

40

 

4.1. Этапы моделирования сетей на ns2 ...............................................................................

40

 

4.2. Основы моделирования сетей на ns2 .............................................................................

41

 

4.3. Модели трафика в ns2 ....................................................................................................

48

 

4.3.1.

Генератор трафика Парето...................................................................................

48

 

4.3.2.

Создание случайных величин..............................................................................

50

5. Виды представления результатов моделирования на ns2 ....................................................

51

 

5.1. Визуализатор nam...........................................................................................................

51

 

5.2. Файлы трассировок ........................................................................................................

54

 

5.3. Утилиты обработки файлов трассировки .....................................................................

57

 

5.3.1. Утилита AWK.......................................................................................................

57

 

5.3.2.

Утилита Grep ........................................................................................................

60

 

5.3.3.

Язык Perl...............................................................................................................

60

 

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

61

 

5.4.1.

Программа GNUPlot.............................................................................................

61

 

5.4.2.

Программа XGraph...............................................................................................

64

 

5.4.3.

Программа TraceGraph.........................................................................................

65

Список использованных источников .........................................................................................

69

Приложение.................................................................................................................................

 

70

77