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 Greis's tutorial
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 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_ $cbr_(0) attach-agent $udp_(0) $ns_ connect $udp_(0) $null_(0) $ns_ at "$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 "$node_(0) setdest " $ns_ at "$god_ set-dist " 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 Greis's tutorial
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_ Phy/WirelessPhy set Rb_ Mac/802_11 set dataRate_ Mac/802_11 set basicRate_ 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 "$node_($i) reset"; } $ns_ at "stop" $ns_ at "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 Greis's tutorial
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_ RTR ZRP 84 [ ] [0:255 -1: ] [0x1 0 [0 0] ] (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 NS Manual: Workshop and presentations Contributed Modules : e
Backup Slides
Mobile Node Abstraction Location Coordinates (x,y,z) Movement Speed, direction, starting/ending location, time...
Portrait of A Mobile Node Node ARP Propagation and antenna models MobileNode LL MAC PHY LL CHANNEL LL MAC PHY Classifier: Forwarding Agent: Protocol Entity Node Entry LL: Link layer object IFQ: Interface queue MAC: Mac object PHY: Net interface protocol agent routing agent addr classifier port classifier 255 IFQ defaulttarget_
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 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/r 2 ) at near distance Two-ray Ground (1/r 4 ) 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(N 2 ) messages grid keeper
Grid-keeper: An Optimization