首页 > 其他分享 >亲测可用的NS2对"1. AODV" "2. DSDV" "3. DSR" 的路由模拟

亲测可用的NS2对"1. AODV" "2. DSDV" "3. DSR" 的路由模拟

时间:2023-04-30 20:32:08浏览次数:39  
标签:node opt set color 0.0 DSR AODV DSDV ns

set a 1

 while {$a == 1 } {

 puts "Enter the Routing Agents in mobile networking"

 puts "1. AODV" 

 puts "2. DSDV" 

 puts "3. DSR" 

  

 set top [gets stdin]

 if {$top == 1} {

 set opt(chan)           Channel/WirelessChannel    ;# channel type 

 set opt(prop)           Propagation/TwoRayGround   ;# radio-propagation model 

 set opt(netif)          Phy/WirelessPhy            ;# network interface type 

 set opt(mac)            Mac/802_11                 ;# MAC type 

 set opt(ifq)            Queue/DropTail/PriQueue    ;# interface queue type 

 set opt(ll)             LL                         ;# link layer type 

 set opt(ant)            Antenna/OmniAntenna        ;# antenna model 

 set opt(ifqlen)         50                         ;# max packet in ifq 

 set opt(nn)             22                         ;# number of mobilenodes 

 set opt(rp)             AODV                       ;# routing protocol 

 set opt(x)              1800   
  ;# X dimension of topography 

 set opt(y)              840   
  ;# Y dimension of topography   



 ### Setting The Simulator Objects

                   

       set ns_ [new Simulator]

 #create the nam and trace file:

       set tracefd [open aodv.tr w]

       $ns_ trace-all $tracefd



       set namtrace [open aodv.nam w]

       $ns_ namtrace-all-wireless $namtrace  $opt(x) $opt(y)



       set topo [new Topography]

       $topo load_flatgrid $opt(x) $opt(y)

       create-god $opt(nn)

       set chan_1_ [new $opt(chan)]

       

 ####  Setting The Distance Variables

                        



       # For model 'TwoRayGround'

       set dist(5m)  7.69113e-06

       set dist(9m)  2.37381e-06

       set dist(10m) 1.92278e-06

       set dist(11m) 1.58908e-06

       set dist(12m) 1.33527e-06

       set dist(13m) 1.13774e-06

       set dist(14m) 9.81011e-07

       set dist(15m) 8.54570e-07

       set dist(16m) 7.51087e-07

       set dist(20m) 4.80696e-07

       set dist(25m) 3.07645e-07

       set dist(30m) 2.13643e-07

       set dist(35m) 1.56962e-07

       set dist(40m) 1.56962e-10

       set dist(45m) 1.56962e-11

       set dist(50m) 1.20174e-13

       Phy/WirelessPhy set CSThresh_ $dist(50m)

       Phy/WirelessPhy set RXThresh_ $dist(50m)



 #  Defining Node Configuration

                         

                   $ns_ node-config -adhocRouting $opt(rp) \

                    -llType $opt(ll) \

                    -macType $opt(mac) \

                    -ifqType $opt(ifq) \

                    -ifqLen $opt(ifqlen) \

                    -antType $opt(ant) \

                    -propType $opt(prop) \

                    -phyType $opt(netif) \

                    -topoInstance $topo \

                    -agentTrace ON \

                    -routerTrace ON \

                    -macTrace ON \

                    -movementTrace ON \

                    -channel $chan_1_



 ###  Creating The WIRELESS NODES

                   

       set Server1 [$ns_ node]

       set Server2 [$ns_ node]

       set n2 [$ns_ node]

       set n3 [$ns_ node]

       set n4 [$ns_ node]

       set n5 [$ns_ node]

       set n6 [$ns_ node]

       set n7 [$ns_ node]

       set n8 [$ns_ node]

       set n9 [$ns_ node]

       set n10 [$ns_ node]

       set n11 [$ns_ node]

       set n12 [$ns_ node]

       set n13 [$ns_ node]

       set n14 [$ns_ node]

       set n15 [$ns_ node]

       set n16 [$ns_ node]

       set n17 [$ns_ node]

       set n18 [$ns_ node]

       set n19 [$ns_ node]

       set n20 [$ns_ node]

       set n21 [$ns_ node]

       set n22 [$ns_ node]

       

       set opt(seed) 0.1

       set a [ns-random $opt(seed)]

       set i 0

       while {$i < 5} {

       incr i

       }

             



 ###  Setting The Initial Positions of Nodes



       $Server1 set X_ 513.0

       $Server1 set Y_ 517.0

       $Server1 set Z_ 0.0

       

       $Server2 set X_ 1445.0

       $Server2 set Y_ 474.0

       $Server2 set Z_ 0.0

       

       $n2 set X_ 36.0

       $n2 set Y_ 529.0

       $n2 set Z_ 0.0



       $n3 set X_ 143.0

       $n3 set Y_ 666.0

       $n3 set Z_ 0.0



       $n4 set X_ 201.0

       $n4 set Y_ 552.0

       $n4 set Z_ 0.0

       

       $n5 set X_ 147.0

       $n5 set Y_ 403.0

       $n5 set Z_ 0.0

       

       $n6 set X_ 230.0

       $n6 set Y_ 291.0

       $n6 set Z_ 0.0



       $n7 set X_ 295.0

       $n7 set Y_ 419.0

       $n7 set Z_ 0.0



       $n8 set X_ 363.0

       $n8 set Y_ 335.0

       $n8 set Z_ 0.0



       $n9 set X_ 334.0

       $n9 set Y_ 647.0

       $n9 set Z_ 0.0



       $n10 set X_ 304.0

       $n10 set Y_ 777.0

       $n10 set Z_ 0.0

       

       $n11 set X_ 412.0

       $n11 set Y_ 194.0

       $n11 set Z_ 0.0

       

       $n12 set X_ 519.0

       $n12 set Y_ 361.0

       $n12 set Z_ 0.0



       $n13 set X_ 569.0

       $n13 set Y_ 167.0

       $n13 set Z_ 0.0



       $n14 set X_ 349.0

       $n14 set Y_ 546.0

       $n14 set Z_ 0.0



       $n15 set X_ 466.0

       $n15 set Y_ 668.0

       $n15 set Z_ 0.0



       $n16 set X_ 489.0

       $n16 set Y_ 794.0

       $n16 set Z_ 0.0



       $n17 set X_ 606.0

       $n17 set Y_ 711.0

       $n17 set Z_ 0.0



       $n18 set X_ 630.0

       $n18 set Y_ 626.0

       $n18 set Z_ 0.0



       $n19 set X_ 666.0

       $n19 set Y_ 347.0

       $n19 set Z_ 0.0



       $n20 set X_ 741.0

       $n20 set Y_ 152.0

       $n20 set Z_ 0.0



       $n21 set X_ 882.0

       $n21 set Y_ 264.0

       $n21 set Z_ 0.0

       

       $n22 set X_ 761.0

       $n22 set Y_ 441.0

       $n22 set Z_ 0.0

       

       ## Giving Mobility to Nodes

       

       $ns_ at 0.75 "$n2 setdest 379.0 349.0 20.0"

       $ns_ at 0.75 "$n3 setdest 556.0 302.0 20.0"

       $ns_ at 0.20 "$n4 setdest 309.0 211.0 20.0"

       $ns_ at 1.25 "$n5 setdest 179.0 333.0 20.0"

       $ns_ at 0.75 "$n6 setdest 139.0 63.0 20.0"

       $ns_ at 0.75 "$n7 setdest 320.0 27.0 20.0"

       $ns_ at 1.50 "$n8 setdest 505.0 124.0 20.0"

       $ns_ at 1.25 "$n9 setdest 274.0 487.0 20.0"

       $ns_ at 1.25 "$n10 setdest 494.0 475.0 20.0"

       $ns_ at 1.25 "$n11 setdest 899.0 757.0 25.0"

       $ns_ at 0.50 "$n12 setdest 598.0 728.0 25.0"

       $ns_ at 0.25 "$n13 setdest 551.0 624.0 25.0"

       $ns_ at 1.25 "$n14 setdest 397.0 647.0 25.0"

       $ns_ at 1.25 "$n15 setdest 748.0 688.0 25.0"

       $ns_ at 1.25 "$n16 setdest 842.0 623.0 25.0"

       $ns_ at 1.25 "$n17 setdest 678.0 548.0 25.0"

       $ns_ at 0.75 "$n18 setdest 741.0 809.0 20.0"

       $ns_ at 0.75 "$n19 setdest 437.0 799.0 20.0"

       $ns_ at 0.20 "$n20 setdest 159.0 722.0 20.0"

       $ns_ at 1.25 "$n21 setdest 700.0 350.0 20.0"

       $ns_ at 0.75 "$n22 setdest 839.0 444.0 20.0"

             

       ## Setting The Node Size

                               

       $ns_ initial_node_pos $Server1 125

       $ns_ initial_node_pos $Server2 125

       $ns_ initial_node_pos $n2 70

       $ns_ initial_node_pos $n3 70

       $ns_ initial_node_pos $n4 40

       $ns_ initial_node_pos $n5 70

       $ns_ initial_node_pos $n6 70

       $ns_ initial_node_pos $n7 70

       $ns_ initial_node_pos $n8 70

       $ns_ initial_node_pos $n9 70

       $ns_ initial_node_pos $n10 70

       $ns_ initial_node_pos $n11 70

       $ns_ initial_node_pos $n12 70

       $ns_ initial_node_pos $n13 70

       $ns_ initial_node_pos $n14 70

       $ns_ initial_node_pos $n15 70

       $ns_ initial_node_pos $n16 70

       $ns_ initial_node_pos $n17 70

       $ns_ initial_node_pos $n18 70

       $ns_ initial_node_pos $n19 70

       $ns_ initial_node_pos $n20 70

       $ns_ initial_node_pos $n21 70

       $ns_ initial_node_pos $n22 70

       



       #### Setting The Labels For Nodes

       

       $ns_ at 0.0 "$Server1 label Server1"

       $ns_ at 0.0 "$Server2 label Server2"

       

       $ns_ at 0.0 "$n2 label node2"

       $ns_ at 0.0 "$n3 label node3"

       $ns_ at 0.0 "$n4 label node4"

       $ns_ at 0.0 "$n5 label node5"

       $ns_ at 0.0 "$n6 label node6"

       $ns_ at 0.0 "$n7 label node7"

       $ns_ at 0.0 "$n8 label node8"

       $ns_ at 0.0 "$n9 label node9"

       $ns_ at 0.0 "$n10 label node10"

       $ns_ at 0.0 "$n11 label node11"

       $ns_ at 0.0 "$n12 label node12"

       $ns_ at 0.0 "$n13 label node13"

       $ns_ at 0.0 "$n14 label node14"

       $ns_ at 0.0 "$n15 label node15"

       $ns_ at 0.0 "$n16 label node16"

       $ns_ at 0.0 "$n17 label node17"

       $ns_ at 0.0 "$n18 label node18"

       $ns_ at 0.0 "$n19 label node19"

       $ns_ at 0.0 "$n20 label node20"

       $ns_ at 0.0 "$n20 label node21"

       $ns_ at 0.0 "$n22 label node22"



       $n2 color green

       $ns_ at 0.0 "$n2 color green"

       

       $n3 color green

       $ns_ at 0.0 "$n3 color green"

       

       $n4 color green

       $ns_ at 0.0 "$n4 color green"

       

       $n5 color green

       $ns_ at 0.0 "$n5 color green"

       

       $n6 color green

       $ns_ at 0.0 "$n6 color green"

       

       $n7 color green

       $ns_ at 0.0 "$n7 color green"

       

       $n8 color green

       $ns_ at 0.0 "$n8 color green"



       $n9 color yellow

       $ns_ at 0.0 "$n9 color yellow"

       

       $n10 color yellow

       $ns_ at 0.0 "$n10 color yellow"



       $n11 color yellow

       $ns_ at 0.0 "$n11 color yellow"

       

       $n12 color pink

       $ns_ at 0.0 "$n12 color pink"

       

       $n13 color pink

       $ns_ at 0.0 "$n13 color pink"



       $n14 color pink

       $ns_ at 0.0 "$n14 color pink"



       $n15 color pink

       $ns_ at 0.0 "$n15 color pink"



       $n16 color pink

       $ns_ at 0.0 "$n16 color pink"



       $n17 color orange

       $ns_ at 0.0 "$n17 color orange"



       $n18 color orange

       $ns_ at 0.0 "$n18 color orange"



       $n19 color orange

       $ns_ at 0.0 "$n19 color orange"



       $n20 color orange

       $ns_ at 0.0 "$n20 color orange"



       $n21 color orange

       $ns_ at 0.0 "$n21 color orange"



       $n22 color orange

       $ns_ at 0.0 "$n22 color orange"



       $Server1 color maroon

       $ns_ at 0.0 "$Server1 color maroon"

       

       $Server2 color maroon

       $ns_ at 0.0 "$Server2 color maroon"



       ## SETTING ANIMATION RATE 

 $ns_ at 0.0 "$ns_ set-animation-rate 12.5ms"



    #  COLORING THE NODES  

 $n9 color blue

 $ns_ at 4.71 "$n9 color blue"

 $n5 color blue

 $ns_ at 7.0 "$n5 color blue"

 $n2 color blue

 $ns_ at 7.29 "$n2 color blue"



 $n16 color blue

 $ns_ at 7.59 "$n16 color blue"



 $n9 color maroon

 $ns_ at 7.44 "$n9 color maroon"



 $ns_ at 7.43 "$n9 label TTLover"

 $ns_ at 7.55 "$n9 label \"\""



 $n12 color blue

 $ns_ at 7.85 "$n12 color blue"

                   

 ####  Establishing Communication



       set udp0 [$ns_ create-connection UDP $Server1 LossMonitor $n18 0]

       $udp0 set fid_ 1

       set cbr0 [$udp0 attach-app Traffic/CBR]

       $cbr0 set packetSize_ 1000    

       $cbr0 set interopt_ .07

       $ns_ at 0.0 "$cbr0 start"

       $ns_ at 4.0 "$cbr0 stop"

       

       set udp1 [$ns_ create-connection UDP $Server1 LossMonitor $n22 0]

       $udp1 set fid_ 1

       set cbr1 [$udp1 attach-app Traffic/CBR]

       $cbr1 set packetSize_ 1000    

       $cbr1 set interopt_ .07

       $ns_ at 0.1 "$cbr1 start"

       $ns_ at 4.1 "$cbr1 stop"

       

       

       set udp2 [$ns_ create-connection UDP $n21 LossMonitor $n20 0]

       $udp2 set fid_ 1

       set cbr2 [$udp2 attach-app Traffic/CBR]

       $cbr2 set packetSize_ 1000    

       $cbr2 set interopt_ .07

       $ns_ at 2.4 "$cbr2 start"

       $ns_ at 4.1 "$cbr2 stop"

       

       set udp3 [$ns_ create-connection UDP $Server1 LossMonitor $n15 0]

       $udp3 set fid_ 1

       set cbr3 [$udp3 attach-app Traffic/CBR]

       $cbr3 set packetSize_ 1000    

       $cbr3 set interopt_ 5

       $ns_ at 4.0 "$cbr3 start"

       $ns_ at 4.1 "$cbr3 stop"

       

       set udp4 [$ns_ create-connection UDP $Server1 LossMonitor $n14 0]

       $udp4 set fid_ 1

       set cbr4 [$udp4 attach-app Traffic/CBR]

       $cbr4 set packetSize_ 1000    

       $cbr4 set interopt_ 5

       $ns_ at 4.0 "$cbr4 start"

       $ns_ at 4.1 "$cbr4 stop"

       

       set udp5 [$ns_ create-connection UDP $n15 LossMonitor $n16 0]

       $udp5 set fid_ 1

       set cbr5 [$udp5 attach-app Traffic/CBR]

       $cbr5 set packetSize_ 1000    

       $cbr5 set interopt_ 5

       $ns_ at 4.0 "$cbr5 start"

       $ns_ at 4.1 "$cbr5 stop"

       

       set udp6 [$ns_ create-connection UDP $n15 LossMonitor $n17 0]

       $udp6 set fid_ 1

       set cbr6 [$udp6 attach-app Traffic/CBR]

       $cbr6 set packetSize_ 1000    

       $cbr6 set interopt_ 5

       $ns_ at 4.0 "$cbr6 start"

       $ns_ at 4.1 "$cbr6 stop"

             

       set udp7 [$ns_ create-connection UDP $n14 LossMonitor $n4 0]

       $udp7 set fid_ 1

       set cbr7 [$udp7 attach-app Traffic/CBR]

       $cbr7 set packetSize_ 1000    

       $cbr7 set interopt_ 5

       $ns_ at 4.0 "$cbr7 start"

       $ns_ at 4.1 "$cbr7 stop"

       

       set udp8 [$ns_ create-connection UDP $n14 LossMonitor $n9 0]

       $udp8 set fid_ 1

       set cbr8 [$udp8 attach-app Traffic/CBR]

       $cbr8 set packetSize_ 1000    

       $cbr8 set interopt_ 5

       $ns_ at 4.0 "$cbr8 start"

       $ns_ at 4.1 "$cbr8 stop"

       

       set udp9 [$ns_ create-connection UDP $n4 LossMonitor $n3 0]

       $udp9 set fid_ 1

       set cbr9 [$udp9 attach-app Traffic/CBR]

       $cbr9 set packetSize_ 1000    

       $cbr9 set interopt_ 5

       $ns_ at 4.0 "$cbr9 start"

       $ns_ at 4.1 "$cbr9 stop"

       

       set udp10 [$ns_ create-connection UDP $n4 LossMonitor $n2 0]

       $udp10 set fid_ 1

       set cbr10 [$udp10 attach-app Traffic/CBR]

       $cbr10 set packetSize_ 1000   

       $cbr10 set interopt_ 5

       $ns_ at 4.0 "$cbr10 start"

       $ns_ at 4.1 "$cbr10 stop"

       

       set udp11 [$ns_ create-connection UDP $n9 LossMonitor $n16 0]

       $udp11 set fid_ 1

       set cbr11 [$udp11 attach-app Traffic/CBR]

       $cbr11 set packetSize_ 1000   

       $cbr11 set interopt_ 5

       $ns_ at 4.0 "$cbr11 start"

       $ns_ at 4.1 "$cbr11 stop"

       

       set udp12 [$ns_ create-connection UDP $n9 LossMonitor $n10 0]

       $udp12 set fid_ 1

       set cbr12 [$udp12 attach-app Traffic/CBR]

       $cbr12 set packetSize_ 1000   

       $cbr12 set interopt_ 5

       $ns_ at 4.0 "$cbr12 start"

       $ns_ at 4.1 "$cbr12 stop"



       #ANNOTATIONS DETAILS 



       $ns_ at 0.0 "$ns_ trace-annotate \"MOBILE NODE MOVEMENTS\""

       $ns_ at 4.1 "$ns_ trace-annotate \"NODE27 CACHE THE DATA FRO SERVER\""

       #$ns_ at 4.59 "$ns_ trace-annotate \"PACKET LOSS AT NODE27\""     

       $ns_ at 4.71 "$ns_ trace-annotate \"NODE10 CACHE THE DATA\""      

             

       ### PROCEDURE TO STOP 



       proc stop {} {

             

                         global ns_ tracefd

                         $ns_ flush-trace

                         close $tracefd

                         exec nam aodv.nam &            

                         exit 0



                    }



       puts "Starting Simulation........"

       $ns_ at 25.0 "stop"

       $ns_ run

            





 } elseif {$top == 2} {

 # Define options 

 set val(chan)           Channel/WirelessChannel    ;# channel type 

 set val(prop)           Propagation/TwoRayGround   ;# radio-propagation model 

 set val(netif)          Phy/WirelessPhy            ;# network interface type 

 set val(mac)            Mac/802_11                 ;# MAC type 

 set val(ifq)            Queue/DropTail/PriQueue    ;# interface queue type 

 set val(ll)             LL                         ;# link layer type 

 set val(ant)            Antenna/OmniAntenna        ;# antenna model 

 set val(ifqlen)         50                         ;# max packet in ifq 

 set val(nn)             7                          ;# number of mobilenodes 

 set val(rp)             DSDV                       ;# routing protocol 

 set val(x)              500   
  ;# X dimension of topography 

 set val(y)              400   
  ;# Y dimension of topography   

 set val(stop)
 100
  ;# time of simulation end 

 set ns
  [new Simulator] 

 set tracefd       [open dsdv.tr w] 

 set namtrace      [open dsdv.nam w] 

 $ns use-newtrace 

 $ns trace-all $tracefd 

 $ns namtrace-all-wireless $namtrace $val(x) $val(y) 

  

  



 Antenna/OmniAntenna set X_ 0

 Antenna/OmniAntenna set Y_ 0

 Antenna/OmniAntenna set Z_ 1.5

 Antenna/OmniAntenna set Gt_ 1.0

 Antenna/OmniAntenna set Gr_ 1.0





 # set up topography object 

 set 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 ON



for {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 

  

 $node_(3) set X_ 250.0 

 $node_(3) set Y_ 240.0 

 $node_(3) set Z_ 0.0 

  

 $node_(4) set X_ 180.0 

 $node_(4) set Y_ 70.0 

 $node_(4) set Z_ 0.0 



 $node_(5) set X_ 100.0 

 $node_(5) set Y_ 70.0 

 $node_(5) set Z_ 0.0  

  

 $node_(6) set X_ 380.0 

 $node_(6) set Y_ 70.0 

 $node_(6) set Z_ 0.0  

  

 # Generation of movements 

 $ns at 10.0 "$node_(0) setdest 250.0 250.0 10.0" 

 $ns at 15.0 "$node_(1) setdest 45.0 285.0 10.0" 

 $ns at 29.0 "$node_(2) setdest 480.0 300.0 10.0"  

 $ns at 70.0 "$node_(3) setdest 180.0 30.0 10.0"  

 $ns at 80.0 "$node_(4) setdest 80.0 30.0 10.0"  

 $ns at 90.0 "$node_(5) setdest 98.0 30.0 10.0"  

 $ns at 80.0 "$node_(6) setdest 50.0 30.0 10.0"  

  

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

 set tcp [new Agent/TCP]

 set sink [new Agent/TCPSink] 

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

 $ns attach-agent $node_(1) $sink 

 $ns connect $tcp $sink 

 set ftp [new Application/FTP] 

 $ftp attach-agent $tcp 

 $ns at 10.0 "$ftp start"  

  



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

 set tcp [new Agent/TCP]

 set sink [new Agent/TCPSink] 

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

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

 $ns connect $tcp $sink 

 set ftp [new Application/FTP] 

 $ftp attach-agent $tcp 

 $ns at 10.0 "$ftp start"  



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

 set tcp [new Agent/TCP]

 set sink [new Agent/TCPSink] 

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

 $ns attach-agent $node_(3) $sink 

 $ns connect $tcp $sink 

 set ftp [new Application/FTP] 

 $ftp attach-agent $tcp 

 $ns at 10.0 "$ftp start"  



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

 set tcp [new Agent/TCP]

 set sink [new Agent/TCPSink] 

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

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

 $ns connect $tcp $sink 

 set ftp [new Application/FTP] 

 $ftp attach-agent $tcp 

 $ns at 10.0 "$ftp start"  



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

 set tcp [new Agent/TCP]

 set sink [new Agent/TCPSink] 

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

 $ns attach-agent $node_(5) $sink 

 $ns connect $tcp $sink 

 set ftp [new Application/FTP] 

 $ftp attach-agent $tcp 

 $ns at 10.0 "$ftp start"  



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

 set tcp [new Agent/TCP]

 set sink [new Agent/TCPSink] 

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

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

 $ns connect $tcp $sink 

 set ftp [new Application/FTP] 

 $ftp attach-agent $tcp 

 $ns at 10.0 "$ftp start"  



  

 # Define node initial position in nam 

 for {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 ends 

 for {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 

     #Execute nam on the trace file 

     exec nam dsdv.nam & 

     exit 0 

 } 

  

 $ns run



 } elseif {$top == 3} {

 set opt(chan)           Channel/WirelessChannel    ;# channel type 

 set opt(prop)           Propagation/TwoRayGround   ;# radio-propagation model 

 set opt(netif)          Phy/WirelessPhy            ;# network interface type 

 set opt(mac)            Mac/802_11                 ;# MAC type 

 set opt(ifq)            Queue/DropTail/PriQueue    ;# interface queue type 

 set opt(ll)             LL                         ;# link layer type 

 set opt(ant)            Antenna/OmniAntenna        ;# antenna model 

 set opt(ifqlen)         50                         ;# max packet in ifq 

 set opt(nn)             3                         ;# number of mobilenodes 

 set opt(rp)             DSR                       ;# routing protocol

 set opt(x)              500   
  ;# X dimension of topography 

 set opt(y)              400 
  ;# Y dimension of topography   

 set opt(stop)
 150                         ;

 set ns              [new Simulator]

 #Creating trace file and nam file 

 set tracefd       [open Dsr.tr w]



 set namtrace      [open dsr.nam w]    



 $ns trace-all $tracefd

 $ns namtrace-all-wireless $namtrace $opt(x) $opt(y)



 # set up topography object

 set topo       [new Topography]



 $topo load_flatgrid $opt(x) $opt(y)



 create-god $opt(nn)



 # configure the nodes

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

                    -llType $opt(ll) \

                    -macType $opt(mac) \

                    -ifqType $opt(ifq) \

                    -ifqLen $opt(ifqlen) \

                    -antType $opt(ant) \

                    -propType $opt(prop) \

                    -phyType $opt(netif) \

                    -channelType $opt(chan) \

                    -topoInstance $topo \

                    -agentTrace ON \

                    -routerTrace ON \

                    -macTrace OFF \

                    -movementTrace ON

                    

       for {set i 0} {$i < $opt(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_ 2

 set sink [new Agent/TCPSink]

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

 $ns attach-agent $node_(1) $sink

 $ns connect $tcp $sink

 set ftp [new Application/FTP]

 $ftp attach-agent $tcp

 $ns at 10.0 "$ftp start" 







 # Define node initial position in nam

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

 # 30 defines the node size for nam

 $ns initial_node_pos $node_($i) 30

 }



 # Telling nodes when the simulation ends

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

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

 }



 # ending nam and the simulation 

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

 $ns at $opt(stop) "stop"

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

 proc stop {} {

     global ns tracefd namtrace

     $ns flush-trace

     close $tracefd

     close $namtrace

 exec nam dsr.nam &

 exit 0

 }



 $ns run





 } 

 puts "want to continue (0/1)" 

 set a [gets stdin]
}


将文件保存成为 aodv.tcl

然后运行ns aodv.tcl


我测试的版本是ns2.35测试成功。


标签:node,opt,set,color,0.0,DSR,AODV,DSDV,ns
From: https://blog.51cto.com/u_15990596/6238199

相关文章

  • 无线自组网AODV路由机制matlab仿真
    1.算法描述无线自组网按需平面距离向量路由协议(AdhocOn-DemandDistanceVectorRouting,AODV)是应用于无线随意网络(也称作无线Adhoc网络)中进行路由选择的路由协议,它能够......
  • 无线自组网AODV路由机制matlab仿真
    1.算法描述       无线自组网按需平面距离向量路由协议(AdhocOn-DemandDistanceVectorRouting,AODV)是应用于无线随意网络(也称作无线Adhoc网络)中进行路由选择的......
  • apoll4 读取ldm6dsrtr
    6轴传感器数据读取,通过spiST官网下载传感器对应的C语言扩增库lsm6dsr_STdC中间还把型号搞错了浪费了些时间下载好之后只要修改两个接口即可platform_read,platform_w......
  • ddsrouter-3.开始
    1.项目概述DDS路由器是由eProsima开发的跨平台非图形化应用程序,由FastDDS提供支持,允许创建一个通信桥,连接两个DDS网络,否则将被隔离。DDS路由器的主要用途是通信两个物理......
  • ddsrouter-简介
    DDSRouter是一个最终用户软件应用程序,支持分布式DDS网络的连接。也就是说,部署在一个地理位置并使用专用本地网络的DDS实体(例如发布者和订户)将能够通过使用eProsimaDDS......
  • 域内权限维持:DSRM后门
    01、简介每个域控制器都有一个目录还原模式(DSRM)帐户,它的密码是在安装域控时设置的,实际上它对应的就是sam文件里的本地管理员“administrator”,基本很少会被重置,因此有着极......
  • 基于AD Event日志实时检测DSRM后门
    01、简介每个域控制器都有一个目录还原模式(DSRM)帐户,它的密码是在安装域控时设置的,实际上它对应的就是sam文件里的本地管理员“administrator”,基本很少会被重置,因此有着极......
  • EDSR源码笔记
    EDSR源码笔记1.common1.default_convdefdefault_conv(in_channels,out_channels,kernel_size,bias=True):returnnn.Conv2d(in_channels,out_chan......
  • P6733 「Wdsr-2」间歇泉——二分答案
    二分可以将优化问题转为判定问题,也可以将\(k\)大问题转为计数问题分析由于已知条件,\(\displaystyleT=\frac{a_ic_i+a_jc_j}{a_i+a_j}\),转为计数问题则是固定T,统计有多少......