4
Istanbul Technical University TEL510E - Telecommunication Network Planning and Management Spring Semester 2013/2014 Study of Simulation Tools: Study of routing protocols in mobile ad hoc networks regarding rescue scenarios by Dara Khajavi, James Foot and Jean-Marie Mellet (group Yabancilar) 1. Description of OMNeT++: What is OMNeT++ ? OMNeT++ is an object-oriented modular discrete event network simulation framework. It has a generic architecture, so it can be (and has been) used in various problem domains: Modelling of wired and wireless communication networks; Protocol modelling; Modelling of queueing networks; Modelling of multiprocessors and other distributed hardware systems; Validating of hardware architectures; Evaluating performance aspects of complex software systems; in general, modelling and simulation of any system where the discrete event approach is suitable, and can be conveniently mapped into entities communicating by exchanging messages. In OMNeT++ modules can be connected with each other via gates (other systems would call them ports), and combined to form compound modules. Modules communicate through message passing, where messages may carry arbitrary data structures. Modules can pass messages along predefined paths via gates and connections, or directly to their destination; the latter is useful for wireless simulations, for example. Modules may have parameters that can be used to customize module behaviour and/or to parameterize the model's topology. Modules at the lowest level of the module hierarchy are called simple modules, and they encapsulate model behaviour. Simple modules are programmed in C++, and make use of the simulation library. OMNEST is the commercially supported version of OMNeT++. OMNeT++ is free only for academic and non-profit use; for commercial purposes, one needs to obtain OMNEST licenses from Simulcraft Inc. An OMNeT++ model consists of modules that communicate with message passing. The active modules are termed simple modules; they are written in C++, using the simulation class library. Simple modules can be grouped into compound modules and so forth; the number of hierarchy levels is unlimited. The whole model, called network in OMNeT++, is itself a compound module. Messages can be sent either via connections that span modules or directly to other modules. The concept of simple and compound modules is similar to DEVS atomic and coupled models. In Fig. below, boxes represent simple modules (gray background) and compound modules. Arrows connecting small boxes represent connections and gates. Page of 1 4 Date: 18 th of March 2014

Study of Simulation Tools TEL510E

Embed Size (px)

DESCRIPTION

This is the 2nd report of a 3 part series about mesh networks, Istanbul Technical University, Telecommunication Network Planning and Management

Citation preview

  • Istanbul Technical University TEL510E - Telecommunication Network Planning and Management Spring Semester 2013/2014 Study of Simulation Tools: Study of routing protocols in mobile ad hoc networks regarding rescue scenarios by Dara Khajavi, James Foot and Jean-Marie Mellet (group Yabancilar) !1. Description of OMNeT++: ! What is OMNeT++ ? ! OMNeT++ is an object-oriented modular discrete event network simulation framework. It has a generic architecture, so it can be (and has been) used in various problem domains:

    Modelling of wired and wireless communication networks;

    Protocol modelling;

    Modelling of queueing networks;

    Modelling of multiprocessors and other distributed hardware systems;

    Validating of hardware architectures;

    Evaluating performance aspects of complex software systems;

    in general, modelling and simulation of any system where the discrete event approach is suitable, and can be conveniently mapped into entities communicating by exchanging messages.

    In OMNeT++ modules can be connected with each other via gates (other systems would call them ports), and combined to form compound modules. Modules communicate through message passing, where messages may carry arbitrary data structures. Modules can pass messages along predefined paths via gates and connections, or directly to their destination; the latter is useful for wireless simulations, for example. Modules may have parameters that can be used to customize module behaviour and/or to parameterize the model's topology. Modules at the lowest level of the module hierarchy are called simple modules, and they encapsulate model behaviour. Simple modules are programmed in C++, and make use of the simulation library.

    OMNEST is the commercially supported version of OMNeT++. OMNeT++ is free only for academic and non-profit use; for commercial purposes, one needs to obtain OMNEST licenses from Simulcraft Inc.

    An OMNeT++ model consists of modules that communicate with message passing. The active modules are termed simple modules; they are written in C++, using the simulation class library. Simple modules can be grouped into compound modules and so forth; the number of hierarchy levels is unlimited. The whole model, called network in OMNeT++, is itself a compound module. Messages can be sent either via connections that span modules or directly to other modules. The concept of simple and compound modules is similar to DEVS atomic and coupled models. In Fig. below, boxes represent simple modules (gray background) and compound modules. Arrows connecting small boxes represent connections and gates.

    !!!!

    Page " of "1 4Date: 18th of March 2014

  • Istanbul Technical University TEL510E - Telecommunication Network Planning and Management Spring Semester 2013/2014 OMNeT++ provides efficient tools for the user to describe the structure of the actual system. Some of the main features are the following:

    Hierarchically nested modules;

    Modules are instances of module types;

    Modules communicate with messages through channels;

    Flexible module parameters;

    Topology description language;

    !2. Installation of OMNeT++: ! As mentioned in the description, OMNeT++ is available for Windows, Mac OS X and Linux, but in this section will be about the Windows installation, mainly because its the easiest way to install OMNeT++. I am running a Mac OS X machine, with a virtual machine (VMware Fusion) running Windows 7 64 bit. ! The first step is to download the zip package from omnetpp.org, make sure you download the Windows version win32. At the time this document was written, the version of OMNeT++ was 4.4.1 and in installation package was called OMNeT++ 4.4.1 win32 (source + IDE + MinGW, zip). ! Step two, extracting the content of the zip file. This can be done simply by right clicking on the zip file, and the clicking on Extract all. Make sure you extract the files to the Local Disk (C:). After that go to the go into the omnetpp-4.4.1 directory and double click on the file called mingwenv. This will initiate a console. Now you should insert the command ./configure, witch will check all the modules and configure the path. This command will run for about a minute. When that has finished, type the command make into the console, and this will take at least 15 minutes to complete. ! Now just insert the command omnetpp to open the Integrated Development Environment (IDE). If that does work make sure you have the Java Development Kit (JDK) installed, because the OMNeT++ IDE is based on Eclipse, that requires the JDK to work. ! And now for the last step to make sure everything is working, I ran one of the samples provided, called Tic-Toc. To do this, right click the the project tictoc from the Project Explorer that on the left side, and select Open Project. Then right click again on the the project tictoc and go to Run as and select OMNeT++ Simulation. !!!!!!!!!

    Page " of "2 4

    Figure 1 - Illustrates Compound Modules and Simple Module and their connections.

  • Istanbul Technical University TEL510E - Telecommunication Network Planning and Management Spring Semester 2013/2014 !3. Generating Simulations: ! The goal here is to simulate a simple mesh routing network with OMNeT++ in order to get use with the software. We can first open an existing simulation in the library of the software. To do so, we may double click on one of the existing project in the left window. We choose routing protocol. ! The goal of this simulation is to demonstrate static shortest-path routing. Routing tables are set up at the beginning of the simulation using the cTopology class. Every node queries the topology of the network independently, using a cTopology object. Then it computes shortest paths to every other node, and stores the first nodes of the paths in a next-hop table. (Actually the table contains the port number to the next-hop node not the node address itself -- the table thus provides dest-address -> next-hop-address mapping). All the above takes place once, at the beginning of this simulation. The topology is static during the simulation, and so there's no need for the nodes to do anything to keep the tables up-to-date. There's no routing protocol in the model. ! By opening the network folder, we see that we have several possibilities of network. Dynamic, mesh, 5/10/60 nodes networks, random graph, random mesh. As these files are .ned which is useful to describe the topology of the network. We will use random mesh network. ! We can open randomMesh.ned network which is displayed as following:

    !!!!!!!!!!! !

    Associated with this network description file, we have an initialization file called omnetpp.ini. The Ini File Editor lets the user configure simulation models for execution. It features both form-based and source editing.

    Page " of "3 4

    package networks; !import node.Node; !network RandomMesh { parameters: double height @prompt("Number of rows") = default(8); double width @prompt("Number of columns") = default(8); @display("bgb=276,195"); types: channel C extends ned.DatarateChannel { parameters: delay = default(0.1ms); datarate = default(1Gbps); } submodules: node[height*width]: Node { parameters: address = index; @display("p=102,102,m,$width,40,40"); gates: port[4]; } connections allowunconnected: for i=0..height-1, for j=0..width-1 { node[i*width+j].port[0] C node[(i+1)*width+j].port[1] if i!=height-1 && uniform(0,1)

  • Istanbul Technical University TEL510E - Telecommunication Network Planning and Management Spring Semester 2013/2014 ! Then we can run the simulation: ! !!!!!!!!!!!!!!!!

    The packets are sending from one router to another, as described in the initialization file (0;18;52). We can record the information in a log file by clicking on rec in the simulator. Then we can find the log file in the folder result under the routing folder. By double clicking on it we can see the sequence chart of the record. !!

    Page " of "4 4

    Figure 3 - Graphical overview of the network, representing the nodes and there connections.

    Figure 4 - Sequence chart based on the data that was recorded on to the log file.