Introduction to Simulations CS1316: Representing Structure and Behavior.
Introduction to Wireless simulations
description
Transcript of Introduction to Wireless simulations
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.557023746220864set 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 presentationshttp://www.isi.edu/nsnam/ns/ns-tutorial/index.html
Contributed Modules :http://nsnam.isi.edu/nsnam/index.php/
Contributed_Code
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: ForwardingAgent: Protocol EntityNode Entry
LL: Link layer object
IFQ: Interface queue
MAC: Mac objectPHY: Net interface
protocolagent
routingagentaddr
classifier
portclassifier
255
IFQIFQ
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 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
Grid-keeper: An Optimization