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
© Copyright 2026 Paperzz