(For more resources related to this topic, see here.)
What this book will cover
This book will show you how you can get OMNeT++ up and running on your Windows or Linux operating system. This book will then take you through the components that make up an OMNeT++ network simulation. The components include models written in the NED (Network Description) language, initialization files, C++ source files, arrays, queues, and then configuring and running a simulation. This book will show you how these components make up a simulation using different examples, which can all be found online. At the end of the book, I will be focusing on a method to debug your network simulation using a particular type of data visualization known as a sequence chart, and what the visualization means.
What is OMNeT++?
OMNeT++ stands for Objective Modular Network Testbed in C++. It's a component-based simulation library written in C++ designed to simulate communication networks. OMNeT++ is not a network simulator but a framework to allow you to create your own network simulations.
The need for simulation
Understanding the need for simulation is a big factor in deciding if this book is for you. Have a look at this table of real network versus simulated network comparison.
A real network
A network simulation
The cost of all the hardware, servers, switches and so on has to be borne.
The cost of a single standalone machine with OMNeT++ installed (which is free).
It takes a lot of time to set up big specialist networks used for business or academia
It takes time to learn how to create simulations, though once you know how it's done, it's much easier to create new ones.
Making changes to a pre-existing network takes planning, and if a change is made in error, it may cause the network to fail.
Making changes to a simulated network of a real pre-existing network doesn't pose any risk. The outcome of the simulation can be analyzed to determine how the real network will be affected.
You get the real thing, so what you observe from the real network is actually happening.
If there is a bug in the simulation software, it could cause the simulation to act incorrectly.
As you can see, there are benefits of using both real networks and network simulations when creating and testing your network. The point I want to convey though, is that network simulations can make network design cheaper and less costly.
Examples of simulation in the industry
After looking into different industries, we can see that there is obviously a massive need for simulation where the aim is to solve real-world problems from how a ticketing system should work in a hospital to what to do when a natural disaster strikes. Simulation allows us to forecast potential problems without having to first live through those problems.
Different uses of simulation in the industry are as follows:
- Manufacturing: The following are the uses under manufacturing:
- To show how labor management will work, such as worker efficiency, and how rotas and various other factors will affect production
- To show what happens when a component fails on a production line
- Crowd Management: The following are the uses under crowd management:
- To show the length of queues at theme parks and how that will affect business
- To show how people will get themselves seated at an event in a stadium
- Airports: The following are the uses for airports:
- Show the effects of flight delays on air-traffic control
- Show how many bags can be processed at any one time on a baggage handling system, and what happens when it fails
- Weather Forecasting: The following are the uses under weather forecasting:
- To predict forthcoming weather
- To predict the effect of climate change on the weather
That's just to outline a few, but hopefully you can see how and where simulation is useful.
Simulating your network will allow you to test the network against myriads of network attacks, and test all the constraints of the network without damaging it in real life.
What you will learn
After reading this book you will know the following things:
- How to get a free copy of OMNeT++
- How to compile and install OMNeT++ on Windows and Linux
- What makes up an OMNeT++ network simulation
- How to create network topologies with NED
- How to create your own network simulations using the OMNeT++ IDE
- How to use pre-existing libraries in order to make robust and realistic network simulations without reinventing the wheel
Learning how to create and run network simulations is definitely a big goal of the book. Another goal of this book is to teach you how you can learn from the simulations you create. That's why this book will also show you how to set up your simulations, and to collect data of the events that occur during the runtime of the simulation. Once you have collected data from the simulation, you will learn how to debug your network by using the Data Visualization tools that come with OMNeT++. Then you will be able to grasp what you learned from debugging the simulated network and apply it to the actual network you would like to create.
You should now know that this book is intended for people who want to get network simulations up and running with OMNeT++ as soon as possible. You'll know by now, roughly, what OMNeT++ is, the need for simulation, and therefore OMNeT++. You'll also know what you can expect to learn from this book.
Resources for Article:
- Installing VirtualBox on Linux [Article]
- Fedora 8 — More than a Linux Distribution [Article]
- Linux Shell Scripting – various recipes to help you [Article]