
With this design, all the nodes act synchronously
without mixing the newly arrived messages and the
old messages. The user can modify the factors for
the simulation by manipulating an interface class
that is implemented by the other classes. This design
requires that the simulator source code be
recompiled each time after the parameters of the
simulation have been changed (!).
The user can adjust the maximum number of
nodes to simulate, the TTL of the messages, the type
of nodes to be simulated (the caching algorithm), the
probability of a request event for a file at each node
and the probability of faulty information insertion by
the node. Unfortunately, the handshaking between
nodes is not implemented in the current version of
the simulator.
In order to initialise a network, the simulator is
started with three connected nodes and new nodes
are added iterative until the user-defined number of
nodes to simulate is reached. The simulator allows
nodes only to be added assuming a static network.
After the network is initialised with the number of
nodes desired, the desired number of files will be
inserted into the network. After this the simulator
will be started with initiating the request events.
Output of the simulator such as number of
attempted and successful actions for file-insertions
and searches are printed onto the command-line.
2.5 FreePastry
FreePastry (FreePastry) is an open-source
implementation of the Pastry protocol in Java that
can be used to emulate a Pastry network. The latest
release of FreePastry (January 28, 2003) includes the
implementation of the PAST (Rowstron, 2001)
archival storage system that is based on the Pastry
protocol and an implementation of the Scribe
(Castro, 2002) group communication infrastructure.
The settings of the FreePastry parameters, such
as the number of nodes to simulate and the number
of events to generate, is done by providing the
values in the command line upon starting the
simulator. The results are displayed on the command
prompt screen as the messages are being processed.
Since the Pastry routing uses proximity metrics, it is
necessity to represent the proximity in the
simulation. Random, Euclidian and sphere are
currently supported in FreePastry. In the Euclidean
network topology the nodes are randomly placed in
a Euclidean plane and the proximity is based on the
Euclidean distance in the plane. Whereas, in the
Sphere Network topology, the nodes are randomly
placed on a sphere, and the proximity is based on the
Euclidean distance on the sphere. However, the
network delay for the message passing is not
simulated, as the simulator is not designed to
simulate time.
2.6 Summary
Current p2p-network simulators are limited in their
use, difficult to customize and generally tend to
ignore the physical network and the user behaviour.
The simulators do not support the customisation of
the initial network state (connections between the
simulated computers and the network delay) and are
limited in the level of detail and the scalability of the
supported models. Furthermore, the simulators are
mostly focusing on the caching algorithms and
ignoring the fact that other activities can also impact
the efficiency of the system.
While the NeuroGrid simulator is providing good
network visualization it does not simulate the user
events, network latency and the processor delay of
the nodes. Hence the simulation does not reflect the
real world situation, especially with the serial
searches functionality. Another tricky issue in using
of FreePastry and NeuroGrid is the serial fashion in
which they execute search events. Due to the
absence of a GUI in the FreeNet and FreePastry
simulators the modification of parameters is
cumbersome. Some of the settings are made through
the command line and some have to be encoded in
the program.
The FreeNet simulator supports synchronous
actions of nodes but fails in providing support for
modeling the network latency and the user’s
behavior. In addition the concept of recompilation
after changing is rather crude and limits the use
significantly.
Adapting the simulator to new or modified
protocols is a question of great practical importance.
NeuroGrid and FreeNet do not simulate the network
overlay, and hence it is hard to extend the simulation
to handle new protocols that need the network
proximity information, e.g. the Pastry protocol.
On the other hand, though FreePastry is focused on
the Pastry protocol, the simulator is more decoupled
and the code can be reused and extended to
implement a different protocol e.g. Gnutella.
However, the serialized event handling and the
absence of simulation time make it difficult to
simulate the network delay and processor delay.
ICEIS 2004 - SOFTWARE AGENTS AND INTERNET COMPUTING
86