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

6. Исследование параметров беспроводной сети

Задание. Написать скрипт, моделирующий работу Wi-Fi сети на языке OTcl в пакете ns2. Скрипт должен описывать топологию сети в соответствии с вашим вариантом (табл. 6.1). Топология сети (приложение) должна содержать заданное количество мобильных узлов. Выбрать самостоятельно: территориальный размер сети; задать такой путь для движущихся узлов, чтобы пакеты от источника к приемнику проходили через различные промежуточные узлы; создать ситуацию, при которой один или более движущихся узлов в определенный момент времени выходили бы за границы данной Wi-Fi сети. Время отправки пакета и тип очереди указаны в табл. 6.2. Длительность моделирования выбрать таким образом, чтобы все приложения действовали одновременно хотя бы 10 секунды.

В результате моделирования необходимо получить два выходных файла. Один для визуализатора nam, второй – трейс-файл общего вида. При помощи программы Tracegraph 2.02 (можно и другим способом) определить общее количество отправленных и потерянных пакетов, кол-во пакетов, отправленных и потерянных каждым мобильным узлом. Эти данные сохранить и оформить в отчете.

Таблица. 6.1

Параметры моделируемой сети

Вари-ант

Тополо-

гия

Движущиеся узлы

Узлы-источники

Узлы- приемники

Тип трафика

(табл. 2.3)

Протокол маршру-тизации

Макси-мальный размер пакета

1

2

N0, N3,N5,N6

N0,N5,N9,N10

N1,N4,N7,N8

A,D,J,L

AODV

200

2

4

N0…N7

N5,N10,N11

N2,N3,N6

G,M,O

DSR

150

3

5

N3,N5,N7,N9…N11

N2,N5,N10,N11

N0,N4,N6,N8

F,B,N,E

AODV

100

4

4

N1,N5,N8,N11

N0,N8,N11

N1,N5,N9,N10

A,B,I

DSDV

160

5

2

N0…N6,N8

N3,N7,N10

N2,N5,N8

K,L,C

DSDV

210

6

5

N4…N11

N2,N4,N9,N11

N0,N3,N7,N10

F,C,D,O

DSR

120

7

1

N3…N8

N0,N2,N7

N1,N4,N5,N8

K,B,G,N

AODV

200

Таблица 6.2.

Параметры узлов

Узлы

Начало передачи

Тип очереди

N0

2

DropTail

N1

1

RED

N2

3

DropTail

N3

5

RED

N4

2,5

DropTail

N5

1,5

RED

N6

3,5

DropTail

N7

4

RED

N8

4,5

DropTail

N9

1,2

RED

N10

2

DropTail

N11

1,5

RED

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

  • пример скрипта на языке OTcl, снимок экрана с визуализатором nam;

  • общее количество отправленных и потерянных пакетов, количество пакетов, отправленных и потерянных каждым узлом. Сделать выводы о причинах потери пакетов (если потери есть).

Приложение 1. Топологии беспроводных сетей

1.

2.

3.

4.

5.

Приложение 2: Пример программы для одного из вариантов:

# Defineoptions

set val(chan) Channel/WirelessChannel ;# тип канала

set val(prop) Propagation/TwoRayGround ;# модель распространения радиоволн

set val(netif) Phy/WirelessPhy ;# тип сетевого интерфейса

set val(mac) Mac/802_11 ;# MAC тип

set val(ifq) Queue/DropTail/PriQueue ;# тип очереди

set val(ll) LL ;# тип канального уровня

set val(ant) Antenna/OmniAntenna ;# вид антенны

set val(ifqlen) 100 ;# максимальный размер пакета в очереди

set val(nn) 13 ;# количество мобильных узлов

set val(rp) AODV ;# протокол маршрутизации

set val(x) 1000 ;# размах топологии по оси X

set val(y) 800 ;# величина топологии по оси Y

set val(stop) 150 ;# время окончания моделирования

set ns [new Simulator]

set tracefd [open aodv_simple.tr w]

set windowVsTime2 [open aodv.tr w]

set namtrace [open aodv_simwrls.nam w]

$ns trace-all $tracefd

$ns namtrace-all-wireless $namtrace $val(x) $val(y) ;# тип визуализации

# задание поверхности (топографии)

# необъодимо для описания движения узлов

set topo [new Topography]

$topo load_flatgrid $val(x) $val(y) ;# определяет ширину и длину поверхности

create-god $val(nn) ;# GOD(General Operations Director)

# Создание nn мобильных узлов и подключение их к каналу

# конфигурция мобильных узлов

$ns node-config -adhocRouting $val(rp) \

-llType $val(ll) \

-macType $val(mac) \

-ifqType $val(ifq) \

-ifqLen $val(ifqlen) \

-antType $val(ant) \

-propType $val(prop) \

-phyType $val(netif) \

-channelType $val(chan) \

-topoInstance $topo \

-agentTrace ON \

-routerTrace ON \

-macTrace OFF \

-movementTrace ON

# создание узлов

for {set i 0} {$i < $val(nn) } { incr i } {

set node_($i) [$ns node]

}

# задание начального положения узлов в трехмерном пространстве

$node_(0) set X_ 5.0

$node_(0) set Y_ 5.0

$node_(0) set Z_ 0.0

$node_(1) set X_ 200.0

$node_(1) set Y_ 5.0

$node_(1) set Z_ 0.0

$node_(2) set X_ 400.0

$node_(2) set Y_ 5.0

$node_(2) set Z_ 0.0

$node_(3) set X_ 5.0

$node_(3) set Y_ 200.0

$node_(3) set Z_ 0.0

$node_(4) set X_ 5.0

$node_(4) set Y_ 400.0

$node_(4) set Z_ 0.0

$node_(5) set X_ 200.0

$node_(5) set Y_ 400.0

$node_(5) set Z_ 0.0

$node_(6) set X_ 400.0

$node_(6) set Y_ 400.0

$node_(6) set Z_ 0.0

$node_(7) set X_ 400.0

$node_(7) set Y_ 200.0

$node_(7) set Z_ 0.0

$node_(8) set X_ 200.0

$node_(8) set Y_ 200.0

$node_(8) set Z_ 0.0

$node_(9) set X_ 100.0

$node_(9) set Y_ 100.0

$node_(9) set Z_ 0.0

$node_(10) set X_ 300.0

$node_(10) set Y_ 100.0

$node_(10) set Z_ 0.0

$node_(11) set X_ 100.0

$node_(11) set Y_ 300.0

$node_(11) set Z_ 0.0

$node_(12) set X_ 300.0

$node_(12) set Y_ 300.0

$node_(12) set Z_ 0.0

# описание движения

$ns at 5.0 "$node_(9) setdest 300.0 100.0 2.0"

$ns at 5.0 "$node_(10) setdest 300.0 300.0 2.0"

$ns at 5.0 "$node_(11) setdest 100.0 100.0 2.0"

$ns at 5.0 "$node_(12) setdest 100.0 300.0 2.0"

$ns at 15.0 "$node_(6) setdest 600 600.0 2.0"

$ns at 15.0 "$node_(7) setdest 600.0 200.0 2.0"

$ns at 15.0 "$node_(5) setdest 200.0 600.0 2.0"

$ns at 15.0 "$node_(1) setdest 200.0 0.5 2.0"

# Set a TCP connection between node_(0) and node_(6)

set tcp0 [new Agent/TCP/Newreno]

$tcp0 set class_ 2

set sink0 [new Agent/TCPSink]

$ns attach-agent $node_(0) $tcp0

$ns attach-agent $node_(6) $sink0

$ns connect $tcp0 $sink0

set ftp0 [new Application/FTP]

$ftp0 attach-agent $tcp0

$ns at 5.0 "$ftp0 start"

set tcp1 [new Agent/TCP/Newreno]

$tcp1 set class_ 2

set sink1 [new Agent/TCPSink]

$ns attach-agent $node_(2) $tcp1

$ns attach-agent $node_(4) $sink1

$ns connect $tcp1 $sink1

set ftp1 [new Application/FTP]

$ftp1 attach-agent $tcp1

$ns at 8.0 "$ftp1 start"

# Printing the window size

proc plotWindow {tcpSource file} {

global ns

set time 0.01

set now [$ns now]

set cwnd [$tcpSource set cwnd_]

puts $file "$now $cwnd"

$ns at [expr $now+$time] "plotWindow $tcpSource $file" }

$ns at 5.1 "plotWindow $tcp0 $windowVsTime2"

$ns at 8.1 "plotWindow $tcp1 $windowVsTime2"

# Define node initial position in nam

for {set i 0} {$i < $val(nn)} { incr i } {

# установка размеров узла 30 в nam

$ns initial_node_pos $node_($i) 30

}

# сброс всех агентов всех узлов

for {set i 0} {$i < $val(nn) } { incr i } {

$ns at $val(stop) "$node_($i) reset";

}

# окончание симулирования и визуализации

$ns at $val(stop) "$ns nam-end-wireless $val(stop)"

$ns at $val(stop) "stop"

$ns at 150.01 "puts \"end simulation\" ; $ns halt"

proc stop {} {

global ns tracefd namtrace

$ns flush-trace

close $tracefd

close $namtrace

}

$ns run

4