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




1.

 


2.

 

3.

 

4.

 

 

5.

 

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

# Define options

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: