+----------------------+
| README |
+----------------------+
== Introduction ==
In this page the Information-centric Network (ICN) Simulator developed by the
University of Essex for the needs of the PAL project is presented. The
project is driven by a clear platform-oriented vision, in which user and
system requirements specific to the area of lifestyle monitoring and
assisted living are used to carefully extend capabilities of the underlying
platform and prototyping novel concepts in a realistic setting. The
platform work can be divided into information-centric environment and
communication environment.
The information-centric environment deals with information gathering,
processing, presentation and governance. A publish subscribe scheme has
been created therefore, more specifically by extending the Blackadder
information-centric networking environment. One of the most important
additions and a vital part of the project was the link-aware
Information-centric Topology Management. However, physical
limitations arise while testing and validating the effectiveness of
the proposed additions. Therefore the ICN simulator was introduced. It
is able to simulate a large number of nodes and publisher-subscriber pairs
and produce a huge amount of information, providing an insight on the new
techniques introduced in the topology management of the information-centric
networks.
== Installation ==
Before trying to install the ICN_Sim, you first have to have OMNET++
simulation environment and INET framework already up and running in
your system. For more information on that you can check:
for OMNET++ --- http://www.omnetpp.org/documentation
for INET --- http://inet.omnetpp.org/index.html
ICN Simulator is now compiled to work with OMNeT++ 4.6 and the default
version of INET (2.6.0) coming with it. If you don't already have the
simulation environment installed, just download it from the link
provided and it will automatically offer to download and compile INET
for you.
After INET has been imported in the workspace, you need to import the
downloaded tar file as a new Project. Go:
File->Import->Existing Projects into Workspace
and press Next. Choose "Select archive file" and select the downloaded
tar file. That should be it.
Once important issue is that currently the code involved a classs for the
Blackadder API that can be used to directly port the developed Topology
Managers to the Blackadder platform. Several header files inlcuded there
are not compatible with the Windows Environmentand therefore will fail
(like sys/sockets.h). It is therefore suggested that you use an appropriate
UNIX/Linux-based environment.
One more issue exists with the dependency of the existing code on the
Boost++ graph library. This should be installed before compiling the
code.
For Ubuntu:
Just install the libboost-graph-dev package:
apt-get install libboost-graph-dev
For Windows:
You need to download boost from here:
http://www.boost.org/users/download/
Extract the file in any location and open a command prompt in the
same directory. Build the library using the following commands.
./bootstrap mingw
b2 install --prefix=c:/installation/path toolset=gcc
Then after you open OMNeT++ and import the ICN_Sim tar file as
an existing project, add the foolowing path to your includes
list.
C:/installation/path/include/boost-version
And finally add the following path to your additional library
directories list.
C:/installation/path/lib
However if you are using Windows after that point you are pretty
much on your own!
== Simulation Parameters ==
The main parameters than control the simulation can be viewed and
accessed from the omnetpp.ini file. The most important ones are
the following:
*numRouters: The number of routers involved in the simulation.
*numPubs: The number of Publishers involved in the simulation.
*numSubs: The number of Subscribers involved in the simulation.
*Datarate: The maximum datarate of the connections between the various
modules.
*startTime: The time at which the publishing application will start.
*pubInterval: The interval at which the Publishers with changes their
publication list.
*subInterval: The interval at which the Subscribers with changes
their subscription list.
Note that these parameters are owned by different modules. However,
they have a unique name so that they can be accessed individually,
without naming the owner module first.
== Basic Modules ==
The Publisher Host: This is a complex module that generates the network traffic.
No IP or other network layer protocol is involved. Multiple application
can be used, but each will use a different ethernet interface, therefore,
it will be characterized by a different Link ID. This host is capable of
publishing Information Items, and transmits packets according to the published
Information Item scopes and IDs. Additionally, it send periodical updates to
the Topology Manager, informing of the current link status.
The Subscriber Host: This a complex module, very similar to the Publisher but
with the exact opposite behaviour. It consumes the network traffic, by
subscribing to the available (or not yet) Information Item IDs. Again, no IP or
other network layer protocol is involved. Multiple applications can be used,
but each will use a different Ethernet interface, therefore, it will be
characterized by a different Link ID. This host is only capable of subscribing
to Information Items, and receives packets which are afterwards treated as in a
sink.
The Publish-Subscribe Router: The PSRouter, may support any number of
Ethernet interfaces, which on the other hand, all have to be connected
to the Forwarder. There is no other protocol able to operate in the
PSRouter, apart from the Publish-Subscribe scheme.
The Information Item Table: Stores the Information item table. It is
used instead of the rendezvous module of publish subscribe schemes such
as Blackadder. It allows the publisher and subscriber nodes to access
it and input their identifiers to the registered Information Item.
Topology Manager: This the brain of the network performing all the
path discovery options. It is seperated into two different layers,
the TMInterface and the Topology Manager application, disconnecting
the message exchange, from the more intelligent operations.
== Notes ==
Tested for omnetpp-4.6 with inet-2.6-b673687
For any comments mail me at nvasta@essex.ac.uk
Nikolaos Vastardis