220 likes | 297 Views
Introduction to Wireless simulations. Shao-Cheng Wang. Wireless Simulations. Before simulation Generate traffic files: cbrgen.tcl Generate mobility files: setdest & calcdest Simulation simple-wireless.tcl After simulation Trace formats Nam.
E N D
Introduction to Wireless simulations Shao-Cheng Wang
Wireless Simulations • Before simulation • Generate traffic files: cbrgen.tcl • Generate mobility files: setdest & calcdest • Simulation • simple-wireless.tcl • After simulation • Trace formats • Nam • Marc Greis's tutorial http://www.isi.edu/nsnam/ns/tutorial/index.html
Traffic file • cbrgen.tcl (~/ns/indep-util/cmu-trace) • ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-rate rate]
Traffic file (cont’d) > ns cbrgen.tcl -type cbr -nn 10 -seed 1.0 -mc 8 -rate 4.0 # 2 connecting to 3 at time 82.557023746220864 set udp_(0) [new Agent/UDP] $ns_ attach-agent $node_(2) $udp_(0) set null_(0) [new Agent/Null] $ns_ attach-agent $node_(3) $null_(0) set cbr_(0) [new Application/Traffic/CBR] $cbr_(0) set packetSize_ 512 $cbr_(0) set interval_ 0.25 $cbr_(0) set random_ 1 $cbr_(0) set maxpkts_ 10000 $cbr_(0) attach-agent $udp_(0) $ns_ connect $udp_(0) $null_(0) $ns_ at 82.557023746220864 "$cbr_(0) start"
Mobility file • ./setdest [-n num_of_nodes] [-p pausetime] [-s maxspeed] [-t simtime] \ [-x maxx] [-y maxy] > [outdir/movement-file] • $node_(0) x,y,z • $ns_ at 2.000000000000 "$node_(0) setdest 90.441179033457 44.896095544010 1.373556960010" • $ns_ at 899.642 "$god_ set-dist 23 46 2" calcdest
Wireless Simulations • Before simulation • Generate traffic files: cbrgen.tcl • Generate mobility files: setdest & calcdest • Simulation • simple-wireless.tcl • After simulation • Trace formats • Nam • Marc Greis's tutorial http://www.isi.edu/nsnam/ns/tutorial/index.html
Wireless simulation • set val(chan) Channel/WirelessChannel ;# channel type • set val(prop) Propagation/TwoRayGround ;# radio-propagation model • set val(ant) Antenna/OmniAntenna ;# Antenna type • set val(ll) LL ;# Link layer type • set val(ifq) Queue/DropTail/PriQueue ;# Interface queue type • set val(ifqlen) 50 ;# max packet in ifq • set val(netif) Phy/WirelessPhy ;# network interface type • set val(mac) Mac/802_11 ;# MAC type • set val(rp) DSDV ;# ad-hoc routing protocol (optional) • Phy/WirelessPhy set bandwidth_ 11000000 • Phy/WirelessPhy set Rb_ 11000000 • Mac/802_11 set dataRate_ 11000000 • Mac/802_11 set basicRate_ 2000000 • Agent/DSDV set min_update_periods_ 3 (ref: tcl/lan/ns-mac.tcl, tcl/mobility/dsdv.tcl)
Wireless simulation – cont’d • set val(nn) 2 ;# number of mobilenodes • set opt(x) 1300 ;# X dimension of the topography • set opt(y) 1300 ;# Y dimension of the topography • set val(cp) "example.scen" • set val(trfile) "example.traffic" • set ns_ [new Simulator] • $ns_ trace-all $tracefd • set topo [new Topography] • $wtopo load_flatgrid $opt(x) $opt(y) • create-god $val(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) \ • -topoInstance $topo \ • -channelType $val(chan) \ • -agentTrace ON \ • -routerTrace OFF \ • -macTrace OFF \ • -movementTrace OFF
for {set i 0} {$i < $val(nn) } {incr i} { • set node_($i) [$ns_ node ] • $node_($i) random-motion 0 ;# disable random motion } • source $val(cp) • source $val(trfile) for {set i 0} {$i < $val(nn) } {incr i} { $ns_ at 150.0 "$node_($i) reset"; } $ns_ at 150.0001 "stop" $ns_ at 150.0002 "puts \"NS EXITING...\" ; $ns_ halt" proc stop {} { global ns_ tracefd close $tracefd} puts "Starting Simulation..." $ns_ run
Wireless Simulations • Before simulation • Generate traffic files: cbrgen.tcl • Generate mobility files: setdest & calcdest • Simulation • simple-wireless.tcl • After simulation • Trace formats • Nam • Marc Greis's tutorial http://www.isi.edu/nsnam/ns/tutorial/index.html
After simulation – trace format • Special parameter • # Enables trace for congestion window. $tcp trace cwnd_ • # Attaches trace file handle to agent. set tchan_ [open cwnd.tr w] $tcp attach $tchan_ set awkCode { { if ($6 == "cwnd_") { print $1, $7 >> "temp.c"; } } } exec awk $awkCode cwnd.tr • Detailed trace format : ~/ns/cmu-trace.cc
Trace • s 0.000011740 _0_ RTR --- 0 ZRP 84 [0 0 0 0] ------- [0:255 -1:255 1 0] [0x1 0 [0 0] 2.000000] (HELLO) -1 sprintf(wrk_ + offset, "[0x%x %d [%d %d] %f] (%s) %d", rp->rp_type, rp->rp_hop_count, rp->rp_dst, rp->rp_dst_seqno, rp->rp_lifetime, rp->rp_type == ZRPTYPE_RREP ? "REPLY IERP" : (rp->rp_type == ZRPTYPE_UREP ? "UNSOLICITED REPLY IERP" : "HELLO"),ih->daddr());
Nam • $node color [color] ;# sets color of node • $node shape [shape] ;# sets shape of node • $node label [label] ;# sets label on node • $node label-color [lcolor] ;# sets color of label • $node label-at [ldirection] ;# sets position of label • $node add-mark [name] [color] [shape] ;# adds a mark to node • $node delete-mark [name] ;# deletes mark from node
More resources • Doc: • ns by Example http://nile.wpi.edu/NS/ • NS Manual: http://www.isi.edu/nsnam/ns/doc/index.html • Workshop and presentations http://www.isi.edu/nsnam/ns/ns-tutorial/index.html • Contributed Modules : http://nsnam.isi.edu/nsnam/index.php/Contributed_Code
Mobile Node Abstraction • Location • Coordinates (x,y,z) • Movement • Speed, direction, starting/ending location, time ...
Portrait of A Mobile Node Classifier: Forwarding Agent: Protocol Entity Node Entry LL: Link layer object IFQ: Interface queue MAC: Mac object PHY: Net interface port classifier Node protocol agent 255 routing agent addr classifier defaulttarget_ ARP LL LL LL IFQ IFQ MAC MAC Propagation and antenna models PHY PHY MobileNode CHANNEL
Mobile Node: Components • Link Layer • Same as LAN, but with a separate ARP module • Interface queue • Give priority to routing protocol packets • Mac Layer • IEEE 802.11 • RTS/CTS/DATA/ACK for all unicast packets • DATA for all broadcast packets
Mobile Node: Components • Network interface (PHY) • Parameters based on Direct Sequence Spread Spectrum (WaveLan) • Interface with: antenna and propagation models • Update energy: transmission and reception • Radio Propagation Model • Friss-space attenuation(1/r2) at near distance • Two-ray Ground (1/r4) at far distance • Antenna • Omni-directional, unity-gain
Wireless Channel • Duplicate packets to all mobile nodes attached to the channel except the sender • It is the receiver’s responsibility to decide if it will accept the packet • Collision is handled at individual receiver • O(N2) messages grid keeper