ММТССиПД_ns2_метода
.pdfСПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
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