Download presentation
Presentation is loading. Please wait.
Published byStanley Sword Modified over 9 years ago
1
Introduction 1
2
A Simulator Modular (Component-based) Open-architecture For Discrete Event Networks
3
Various simulation models and frameworks For Specific Application Areas Mostly Open Source Developed Independently of OMNeT++ 3
4
Simulation Frameworks Based on OMNeT++: Mobility Framework Mobile & Wireless Simulations INET Framework Wired & Wireless TCP/IP Based Simulations Castalia Wireless Sensor Networks MiXiM Mobile & Wireless Simulations
5
OverSim Overlay and Peer-to-Peer Networks (INET-based) NesCT OS simulations Consensus Positif and MAC Simulator for sensor networks CDNSim content distribution networks, youtube PAWiS Power Aware Wireless Sensor Networks Simulation Framework Other: FIELDBUS, ACID SimTools, X-Simulator 5
6
6 Flexibility Programming model Model management Debugging, tracing, and experiment specifications Simulation Modes
7
Core framework for discrete event simulation. Different add-ons for specific purposes. Fully implemented in C++. Functionality added by deriving classes following specified rules. 7
8
Simulated objects are represented by modules Simple or Compound Communicate by messages (directly or via gates) Consists of Interface description (.NED file) Behavior description (C++ class) Modules, gates and links can be created: Statically - at the beginning of the simulation (NED file) Dynamically – during the simulation
9
Clear separation among simulation kernel and developed models. Easiness of packaging developed modules for reuse. No need for patching the simulation kernel to install a model. 9 Build models and combine like KOONESAZI blocks
10
Supports Recording data vectors and scalars in output files Random numbers with several distributions and different starting seeds displaying info about the module’s activity, snapshots, breakpoints Easy to configure using.ini file Batch execution of the same simulation for different parameters is also included
11
Command line Interactive GUI Tcl/Tk windowing, allows view what’s happening and modify parameters at run-time. 11
12
The topology of a model is specified using the NED language. Edit it with GNED or other text editor.
13
Import directives Channel definitions Simple and compound module definitions Network definitions
14
import "ethernet"; // imports ethernet.ned import "Router", "StandardHost", "FlatNetworkConfigurator";
15
channel LeasedLine delay 0.0018 // sec error 1e-8 datarate 128000 // bit/sec endchannel
16
simple TrafficGen parameters: interarrivalTime, numOfMessages : const, address : string; gates: in: fromPort, fromHigherLayer; out: toPort, toHigherLayer; endsimple Application Layer TrafficGen MAC Layer
17
module CompoundModule parameters: //... gates: //... submodules: //... connections: //... endmodule
18
module CompoundModule //... submodules: submodule1: ModuleType1 parameters: //... gatesizes: //... submodule2: ModuleType2 parameters: //... gatesizes: //... endmodule
19
module CompoundModule parameters: param1: numeric, param2: numeric, useParam1: bool; submodules: submodule1: Node parameters: p1 = 10, p2 = param1+param2, p3 = useParam1==true ? param1 : param2; //... endmodule
20
module CompoundModule parameters: //... gates: //... submodules: //... connections: node1.output --> node2.input; node1.input <-- node2.output; //... endmodule
21
network wirelessLAN: WirelessLAN parameters: numUsers=10, httpTraffic=true, ftpTraffic=true, distanceFromHub=truncnormal(100,60); endnetwork
22
// // Ethernet Modeling// simple EtherMAC { parameters: string address; // others omitted for brevity gates: input phyIn; // to physical layer or the network output phyOut; // to physical layer or the network input llcIn; // to EtherLLC or higher layer output llcOut; // to EtherLLC or higher layer }
23
// // Host with an Ethernet interface // module EtherStation { parameters:... gates:... input in; // connect to switch/hub, etc output out; submodules: app: EtherTrafficGen; llc: EtherLLC; mac: EtherMAC; connections: app.out --> llc.hlIn; app.in mac.llcIn; mac.phyIn out; } network EtherLAN { submodules: EtherStation; … }
24
To run the executable, you need an omnetpp.ini file. [General] network = etherLAN *.numStations = 20 **.frameLength = normal(200,1400) **.station[0].numFramesToSend = 5000 **.station[1-5].numFramesToSend = 1000 **.station[*].numFramesToSend = 0
25
NED files define the topology of network/modules A part of the model description Ini files define Simulation parameters Results to collect Random seeds This separation allows to change parameters without modifying the model E.g. no need to recompile, experiments can be executed as a batch
26
26 for (int i=0;i<10;i++) { }... [General] network=test_disk [Parameters]... Model structure Add behavior Set up parameters Compile Run Analyze
27
Network description nedtool compiler Generated C++ code Module behavior C++ code C++ compiler Simulation kernel libraries User interface libraries Linker Simulation program
28
The capability to record simulation results by explicitly programming into the simple modules Output Vector omnetpp.vec Output Scalar Files omnetpp.sca
29
Series of pairs timestamp, value Can store: queue length over time end-to-end delay of received packets packet drops or channel throughput … Can be configured from omnetpp.ini Enable or disable recording individual output vectors Limit recording to a certain simulation time interval Capture behaviour over time 29
30
Contain summary statistics number of packets sent number of packet drops average end-to-end delay of received packets peak throughput … 30
33
Installation 33
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.