Introduction to Wireless simulations

Introduction to Wireless
simulations
Shao-Cheng Wang
Wireless Simulations

Before simulation



Simulation


Generate traffic files: cbrgen.tcl
Generate mobility files: setdest & calcdest
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




calcdest
./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"
Wireless Simulations

Before simulation



Simulation


Generate traffic files: cbrgen.tcl
Generate mobility files: setdest & calcdest
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
set
set
set
set
val(nn)
opt(x)
opt(y)
val(cp)
val(trfile)
2
;# number of mobilenodes
1300 ;# X dimension of the topography
1300 ;# Y dimension of the topography
"example.scen"
"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



Simulation


Generate traffic files: cbrgen.tcl
Generate mobility files: setdest & calcdest
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_Cod
e
Backup Slides
Mobile Node Abstraction

Location


Coordinates (x,y,z)
Movement

Speed, direction, starting/ending location,
time ...
Portrait of A Mobile Node
Node
port
classifier
Classifier: Forwarding
protocol
agent
Agent: Protocol Entity
255
addr
defaulttarget_
classifier
LL
routing
agent
ARP
IFQ
Node Entry
LL
IFQ
IFQ: Interface queue
MAC
MAC: Mac object
PHY
PHY: Net interface
MAC
PHY
MobileNode
CHANNEL
Propagation
and antenna
models
LL: Link layer object
Mobile Node: Components

Link Layer


Interface queue


Same as LAN, but with a separate ARP module
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)




Radio Propagation Model



Parameters based on Direct Sequence Spread
Spectrum (WaveLan)
Interface with: antenna and propagation models
Update energy: transmission and reception
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