simulators for sensor networks sagnik bhattacharya 9/12/2001

37
Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Upload: justin-cross

Post on 23-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Simulators for Sensor Networks

Sagnik Bhattacharya

9/12/2001

Page 2: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Overview

• What we need?

• How much effort should we put?

• Some existing network simulators.

• SensorSim.

• NS-2 primer.

• NS-2 issues and conclusion.

-The first 90% of project takes 90% of the time, the last 10% takes the other 90% of the time.

Page 3: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

What we want?

• It should perform simulations of our algorithms. (obviously)

• It should have models for wireless transmissions and battery models.

• It should be extremely scalable.• It should be efficient for large simulations.• There should be technical support.

-A bug in the code is worth two in the documentation.

Page 4: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

How much effort should we put in?

• Build battery and wireless models? (Preferably no)

• Implement routing?• How much learning is involved?• Change basic modules or just add our own

modules?

-A computer scientist is someone who fixes things that aren't broken.

Page 5: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

JavaSim

• Pros – Very modular

– Easy to use

• Cons– Geared for wired internetworks

– No wireless support

-All computers wait at the same speed.

Page 6: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

GlomoSim

• Specific for mobile wireless networks. • Built as a set of libraries. The libraries are

built in Parsec( a C-based discrete event simulation language).

• Layered architecture with easy plug-in capability.

-Any program that runs right is obsolete.

Page 7: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Propagationmodel

Radio

MAC Layer

Network

IP

Transport

Application

Link Layer

GloMoSim LibraryGloMoSim Library

Modular, extensible library for network modelsModel each layer using abstract or detailed modelBuilt-in statistics collection at each layer

Cons :Fixed protocol layers.

Application Processing

Free space, TIREM

EPLRS, WaveLAN, ...

IEEE 802.11, 802.3, …

OSPF, AODV, …

IP

TCP, UDP, RSVP

RTP Wrapper

Packet Store/Forward

Data Plane

-Windows is NOT a virus. Viruses DO something.

Page 8: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

NS - 2• De facto standard for network simulations

• Discrete Event Simulator

• Packet-level

• Wired and Wireless• Size : (Current release adds around 10%)

• 100K lines of C++• 70K lines of OTcl• 30K lines of test suites• 20K lines of documentation

-A program is never finished until the programmer dies.

Page 9: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

NS Architecture

• Object-oriented (C++, OTcl)• Scalability + Extensibility

– Control/”data” separation

– Split C++/OTcl object

• Modular approach– Fine-grained object composition

– Reusability

-You are making progress if each mistake is a new one.

Page 10: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

C++ and OTcl Separation

• C++ for “data”– Per packet action

• OTcl for control– Periodic or triggered action

+ Compromise between composibility and speed

– Learning and debugging

-To err is human, but to really foul things up requires a computer.

Page 11: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

OTcl and C++: The Duality

C++ OTcl

Pure C++objects

Pure OTclobjects

C++/OTcl split objects

ns

-There were computers in Biblical times. Eve had an Apple.

Page 12: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

SensorSim

• Extension to NS - 2.• Provides battery models, radio

propagation models and sensor channel models.

• Provides a lightweight protocol stack.• Has support for hybrid simulation.• To be integrated with NS - 2.

-There can never be a computer language in which you cannot write a bad program.

Page 13: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

SensorSim Architecture

monitor and controlhybrid network

(local or remote)

Simulation Machine

Gateway Machine

ns

modified event scheduler

VR

V

VV

GUIapp

app

R

real sensor apps onvirtual sensor nodes

gateway

socketcomm

serialcomm

HS InterfaceEthernet RS232

Proxies for realsensor nodes

GUI Interface

app

Page 14: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Sensor Node Model in SensorSim

Node Function Model

Network Layer

Micro Sensor Node

Applications

Power Model(Energy Consumers and Providers)

Battery Model

Radio Model

CPU Model

Sensor #1 Model

Sensor #2 Model

MAC Layer

Physical Layer

Sensor Layer

Wireless Channel Sensor Channel

NetworkProtocol Stack

SensorProtocol Stack

Middleware

Physical Layer

State Change

StatusCheck

-There are two ways to write error-free programs; only the third one works.

Page 15: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Power Management Model

Transmit Receive

Off

Idle

BZR event

BZR event

BZR event

receive done

transmit

transmitdone

Without Power Management

Transmit Receive

Sleep

Off

Idletransmit

timeout(3 sec)

BZR event

BZR event

transmit

transmitdone

BZR event

receivedone

receivetimeout

With Power Management

-The program is absolutely right; therefore the computer must be wrong.

Page 16: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

SensorSim Problems

• Still at pre-release stage.• No Documentation.• The software currently has a very specific

application hard-coded.• It caters to only one base station.

-The definition of an upgrade: Take old bugs out, put new ones in.

Page 17: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

NS-2 primer

-Reference Manual: Object that raises the monitor to eye level. Also used to compensate for that short table leg.

Page 18: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Hello World - Interactive Mode

<prompt> % ns

% set ns [new Simulator]

_o3

% $ns at 1 “puts \“Hello World!\””

1

% $ns at 1.5 “exit”

2

% $ns run

Hello World!

<prompt> 72%

-One person's error is another person's data.

Page 19: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Hello World - Batch Mode

simple.tclset ns [new Simulator]

$ns at 1 “puts \“Hello World!\””

$ns at 1.5 “exit”

$ns run

<prompt> 74% ns simple.tcl

Hello World!

<prompt> 75%

-Maintenance-free: When it breaks, it can't be fixed...

Page 20: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Basic tclset a 43set b 27proc test { a b } {

set c [expr $a + $b]set d [expr [expr $a - $b] * $c]for {set k 0} {$k < 10} {incr k} {

if {$k < 5} { puts “k < 5, pow = [expr pow($d, $k)]” } else { puts “k >= 5, mod = [expr $d % $k]” } }}test 43 27 -MACINTOSH stands for Most Applications Crash If Not The

Operating System Hangs.

Page 21: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Basic OTclClass MomMom instproc greet {} {

$self instvar age_puts “$age_ years old mom: How are you doing?”

}

Class Kid -superclass MomKid instproc greet {} {

$self instvar age_puts “$age_ years old kid: What’s up, dude?”

}

set mom [new Mom]

$mom set age_ 45

set kid [new Kid]

$kid set age_ 15

$mom greet

$kid greet

-It works! Now if only I could remember what I did...

Page 22: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Elements of ns-2

• Create the event scheduler

• [Turn on tracing]

• Create network

• Setup routing

• Create transport connection

• Create traffic / Schedule events

• Transmit application-level data

• Start simulation

-It is easier to write an incorrect program than understand a correct one.

Page 23: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Wireless simulation in NS-2

• Very different from wired simulation.• Central object called GOD(General

Operations Director) contains global state information.

• Nodes are inherently mobile.

-I finally made my stupid computer faster; I dropped it out of the window, and it went really fast.

Page 24: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

An Example – Step 1# Define Global Variables# create simulatorset ns [new Simulator]

# define tracesset tracefd [open simple.tr w]$ns_ trace-all $tracefd

# create a topology in a 100m x 100m areaset topo [new Topography] $topo load_flatgrid 100 100

-If at first you don't succeed, call it version 1.0.

Page 25: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

An Example – Step 2

# Create God

create-god $val(nn)

 

# Create channel

set chan_1_ [new $val(chan)]

-For any problem there is a solution that is simple, quick, and ultimately worse than the problem.

Page 26: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

An Example – Step 3$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) \ -channel $chan_1_ \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace OFF \ -movementTrace OFF \

-energyModel "EnergyModel" \ -initialEnergy $val(initialenergy) \ -rxPower $val(receivepower) \ -txPower $val(transmitpower) \ -idlePower $val(idlepower)

-Excuse me for butting in, but I'm interrupt-driven.

Page 27: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

An Example – Step 4

# Generating nodesfor {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node] }

# Provide initial (X,Y, for now Z=0) co-ordinates for mobilenodes

$node_(0) set X_ 94.85$node_(0) set Y_ 12.75$node_(0) set Z_ 0.0$node_(1) set X_ 60.79::

-Computers can figure out all kinds of problems, except the things in the world that just don't add up.

Page 28: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

An Example – Step 5

#Create two ping agents and attach them to the nodes n0 and n2

set p0 [new Agent/Ping]$ns attach-agent $n0 $p0 set p1 [new Agent/Ping]$ns attach-agent $n2 $p1 #Connect the two agents$ns connect $p0 $p1

-Computer Science is no more about computers than astronomy is about telescopes.

E. W. Dijkstra

Page 29: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

An Example – Step 6

#Schedule events

$ns_ at 100.0 "puts \"hell-O\" "

$ns_ at 10.2 "$p0 send"

$ns_ at 10.4 "$p1 send"

:

:

#Run the Simulation

puts "Starting Simulation..."

$ns_ run

-Build a system that even a fool can use, and only a fool will use it.

Page 30: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Ping Protocol

• Check out the handout.• To add a new protocol :

– Define packet header (PT_PING)

– Define new agent class as a subclass of Agent in header file (ping.h)

– Implement at least the following functions:• int command ( int argc, const char*const* argc)• void recv ( Packet * pkt, Handler* h)

-To err is human, but to really foul things up requires a computer.

Page 31: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

NS - 2 (contd.)

• Cons :– Comparatively difficult to learn and use.

– Supposedly more useful for getting statistics for lower level protocols.

– Originally built for wired networks, later extended for wireless.

– Supposedly, does not work well for large topologies.

-To err is human--and to blame it on a computer is even more so.

Page 32: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

NS-2 problems and workarounds

• Large memory footprint 100 nodes 23MB 1000 nodes 412 MB

• Solutions :– Turn off tracing

-routerTrace OFF \-macTrace OFF \

– Remove packet headersremove-all-packet-headersadd-packet-header DSDV Agent/Ping Mac/802_11

-Bug? That's not a bug, that's a feature.

Page 33: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Scalability of NS-2

• Maximum number of nodes depends upon the traffic.

• Should be able to up to 500 nodes with reasonable(?) traffic.

• Running time?

-Every time I type 'win', I loose ...

Page 34: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

To use NS…..

• Don’t worry about Otcl. Its easy..

• Forget about Nam traces.

• Join the ns-user mailing list.

• Get started as soon as possible…. learning to use and modify it can take time.

• Just adding new protocols might not do. Some internal changes might need to be made.

-A user friendly computer first requires a friendly user.

Page 35: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Conclusion

• Use SensorSim if you can.• NS-2 can be used for simulation of the

order of hundreds of nodes…. Not possible with motes.

• Can build more advanced protocols, for future motes which might have more memory.

-ASCII stupid question, get a stupid ANSI!

Page 36: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

URL’s

• This presentation:http://www.cs.virginia.edu/~sb2jb/research/ns

• NS-2 home:http://www.isi.edu/nsnam/ns

-Every bug you find is the last one.

Page 37: Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

Questions?

-Computer Science: solving today's problems tomorrow.