📄 dsdv.tcl
字号:
# A 3-node example for ad-hoc simulation with DSDV# Define optionsset val(chan) Channel/WirelessChannel ;# channel typeset val(prop) Propagation/TwoRayGround ;# radio-propagation modelset val(netif) Phy/WirelessPhy ;# network interface typeset val(mac) Mac/802_11 ;# MAC typeset val(ifq) Queue/DropTail/PriQueue ;# interface queue typeset val(ll) LL ;# link layer typeset val(ant) Antenna/OmniAntenna ;# antenna modelset val(ifqlen) 50 ;# max packet in ifqset val(nn) 3 ;# number of mobilenodesset val(rp) DSDV ;# routing protocolset val(x) 500 ;# X dimension of topographyset val(y) 400 ;# Y dimension of topographyset val(stop) 150 ;# time of simulation endset ns [new Simulator]set tracefd [open simple.tr w]set windowVsTime2 [open win.tr w]set namtrace [open simwrls.nam w]$ns trace-all $tracefd$ns namtrace-all-wireless $namtrace $val(x) $val(y)# set up topography objectset topo [new Topography]$topo load_flatgrid $val(x) $val(y)create-god $val(nn)## Create nn mobilenodes [$val(nn)] and attach them to the channel.## configure the nodes $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 ONfor {set i 0} {$i < $val(nn)} {incr i} { set node_($i) [$ns node]}# Provide initial location of mobilenodes$node_(0) set X_ 5.0$node_(0) set Y_ 5.0$node_(0) set Z_ 0.0$node_(1) set X_ 490.0$node_(1) set Y_ 285.0$node_(1) set Z_ 0.0$node_(2) set X_ 150.0$node_(2) set Y_ 240.0$node_(2) set Z_ 0.0# Generation of movements$ns at 10.0 "$node_(0) setdest 250.0 250.0 3.0"$ns at 15.0 "$node_(1) setdest 45.0 285.0 5.0"$ns at 110.0 "$node_(0) setdest 480.0 300.0 5.0"# Set a TCP connection between node_(0) and node_(1)set tcp [new Agent/TCP/Newreno]$tcp set class_ 2set sink [new Agent/TCPSink]$ns attach-agent $node_(0) $tcp$ns attach-agent $node_(1) $sink$ns connect $tcp $sinkset ftp [new Application/FTP]$ftp attach-agent $tcp$ns at 10.0 "$ftp start"# Printing the window sizeproc plotWindow {tcpSource file} {global nsset time 0.01set now [$ns now]set cwnd [$tcpSource set cwnd_]puts $file "$now $cwnd"$ns at [expr $now+$time] "plotWindow $tcpSource $file" }$ns at 10.1 "plotWindow $tcp $windowVsTime2"# Define node intitial position in namfor {set i 0} {$i < $val(nn)} {incr i} {# 30 defines the node size for nam$ns initial_node_pos $node_($i) 30}# Telling nodes when the simulation endsfor {set i 0} {$i < $val(nn)} {incr i} { $ns at $val(stop) "$node_($i) reset";}# ending nam and the simulation$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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -