1 / 37

Simulators for Sensor Networks

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.

Jims
Download Presentation

Simulators for Sensor Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Simulators for Sensor Networks Sagnik Bhattacharya 9/12/2001

  2. 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.

  3. 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.

  4. 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.

  5. JavaSim • Pros • Very modular • Easy to use • Cons • Geared for wired internetworks • No wireless support -All computers wait at the same speed.

  6. 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.

  7. GloMoSim Library Data Plane Application Application Processing RTP Wrapper Transport TCP, UDP, RSVP IP IP Network OSPF, AODV, … Link Layer Packet Store/Forward MAC Layer IEEE 802.11, 802.3, … Radio EPLRS, WaveLAN, ... Propagation model Free space, TIREM Modular, extensible library for network models Model each layer using abstract or detailed model Built-in statistics collection at each layer Cons : Fixed protocol layers. -Windows is NOT a virus. Viruses DO something.

  8. 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.

  9. 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.

  10. 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.

  11. Pure OTcl objects Pure C++ objects C++/OTcl split objects C++ OTcl ns OTcl and C++: The Duality -There were computers in Biblical times. Eve had an Apple.

  12. 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.

  13. SensorSim Architecture app monitor and control hybrid network (local or remote) real sensor apps on virtual sensor nodes app GUI app socket comm serial comm ns GUI Interface HS Interface RS232 Ethernet gateway V R V V Gateway Machine V R modified event scheduler Proxies for real sensor nodes Simulation Machine

  14. Sensor Node Model in SensorSim Node Function Model Micro Sensor Node Applications Power Model (Energy Consumers and Providers) Middleware State Change Network Protocol Stack Radio Model Sensor Protocol Stack Network Layer Sensor Layer CPU Model Status Check MAC Layer Physical Layer Sensor #1 Model Physical Layer Sensor #2 Model Wireless Channel Sensor Channel Battery Model -There are two ways to write error-free programs; only the third one works.

  15. Power Management Model BZR event Off BZR event BZR event BZR event Off BZR event Transmit transmit Receive Transmit BZR event Receive transmit done receive done Idle transmit transmit receive done Idle timeout receive transmit done timeout(3 sec) Sleep With Power Management Without Power Management -The program is absolutely right; therefore the computer must be wrong.

  16. 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.

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

  18. 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.

  19. Hello World - Batch Mode simple.tcl set 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...

  20. Basic tcl set a 43 set b 27 proc 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.

  21. Class Mom Mom instproc greet {} { $selfinstvar age_ puts “$age_ years old mom: How are you doing?” } Class Kid -superclass Mom Kid instproc greet {} { $selfinstvar 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 Basic OTcl -It works! Now if only I could remember what I did...

  22. 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.

  23. 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.

  24. An Example – Step 1 # Define Global Variables # create simulator set ns [new Simulator] # define traces set tracefd [open simple.tr w] $ns_ trace-all $tracefd # create a topology in a 100m x 100m area set topo [new Topography] $topo load_flatgrid 100 100 -If at first you don't succeed, call it version 1.0.

  25. 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.

  26. 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.

  27. An Example – Step 4 # Generating nodes for {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.

  28. 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

  29. 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.

  30. 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.

  31. 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.

  32. 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 headers remove-all-packet-headers add-packet-header DSDV Agent/Ping Mac/802_11 -Bug? That's not a bug, that's a feature.

  33. 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 ...

  34. 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.

  35. 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!

  36. 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.

  37. Questions? -Computer Science: solving today's problems tomorrow.

More Related