AN OVERVIEW OF THE OMNeT++ SIMULATION
ENVIRONMENT
András Varga
OpenSim Ltd.
Sz l köz 11, 1032 ő ő
Budapest, Hungary
andras.varga@omnest.com
Rudolf Hornig
OpenSim Ltd.
Sz l köz 11, 1032 ő ő
Budapest, Hungary
rudolf.hornig@omnest.com
ABSTRACT
The OMNeT++ discrete event simulation environment has been
publicly available since 1997. It has been created with the
simulation of communication networks, multiprocessors and other
distributed systems in mind as application area, but instead of
building a specialized simulator, OMNeT++ was designed to be as
general as possible. Since then, the idea has proven to work, and
OMNeT++ has been used in numerous domains from queuing
network simulations to wireless and ad-hoc network simulations,
from business process simulation to peer-to-peer network, optical
switch and storage area network simulations. This paper presents
an overview of the OMNeT++ framework, recent challenges
brought about by the growing amount and complexity of third
party simulation models, and the solutions we introduce in the
next major revision of the simulation framework.
1
KEYWORDS
discrete simulation, network simulation, simulation tools,
performance analysis, computer systems, telecommunications,
hierarchical, integrated development environment
1. INTRODUCTION
OMNeT++[1][2] is a C++-based discrete event simulator for
modeling communication networks, multiprocessors and other
distributed or parallel systems. OMNeT++ is public-source, and
can be used under the Academic Public License that makes the
software free for non-profit use. The motivation of developing
OMNeT++ was to produce a powerful open-source discrete event
simulation tool that can be used by academic, educational and
research-oriented commercial institutions for the simulation of
computer networks and distributed or parallel systems. OMNeT++
attempts to fill the gap between open-source, research-oriented
simulation software such as NS-2 [11] and expensive commercial
alternatives like OPNET [16]. A later section of this paper
presents a comparison with other simulation packages. OMNeT++
1
The 4.0 release is scheduled to appear in Q1 2008.
is available on all common platforms including Linux, Mac OS/X
and Windows, using the GCC tool chain or the Microsoft Visual
C++ compiler.
OMNeT++ represents a framework approach. Instead of directly
providing simulation components for computer networks, queuing
networks or other domains, it provides the basic machinery and
tools to write such simulations. Specific application areas are
supported by various simulation models and frameworks such as
the Mobility Framework or the INET Framework. These models
are developed completely independently of OMNeT++, and
follow their own release cycles.
Since its first release, simulation models have been developed by
various individuals and research groups for several areas
including: wireless and ad-hoc networks, sensor networks, IP and
IPv6 networks, MPLS, wireless channels, peer-to-peer networks,
storage area networks (SANs), optical networks, queuing
networks, file systems, high-speed interconnections (InfiniBand),
and others. Some of the simulation models are ports of real-life
protocol implementations like the Quagga Linux routing daemon
or the BSD TCP/IP stack, others have been written directly for
OMNeT++. A later section of this paper will discuss these
projects in more detail. In addition to university research groups
and non-profit research institutions, companies like IBM, Intel,
Cisco, Thales and Broadcom are also using OMNeT++
successfully in commercial projects or for in-house research.
2. THE DESIGN OF OMNeT++
OMNeT++ was designed from the beginning to support network
simulation on a large scale. This objective lead to the following
main design requirements:
● To enable large-scale simulation, simulation models
need to be hierarchical, and built from reusable
components as much as possible.
● The simulation software should facilitate visualizing
and debugging of simulation models in order to reduce
debugging time, which traditionally takes up a large
percentage of simulation projects. (The same feature set
is also useful for educational use of the software.)
● The simulation software itself should be modular,
customizable and should allow embedding simulations
into larger applications such as network planning
software. (Embedding brings additional requirements
about the memory management, restartability, etc. of the
simulation).
Permission to make digital or hard copies of part or all of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that
copies bear this notice and the full citation on the first page. Copyrights
for components of this work owned by others than ICST must be
honored. Abstracting with credit is permitted. To copy otherwise, to
republish, to post on servers or to redistribute to lists, requires prior
specific permission and/or a fee.
SIMUTools, March 03 – 07, 2008, Marseille, France.
ISBN 978-963-9799-20-2