EN FR
EN FR


Section: Software

DRMSim

Participants : David Coudert, Luc Hogie [correspondant] , Aurélien Lancin, Nicolas Nisse, Issam Tahiri.

Around 45,000 lines, developed in Java, collaboration between MASCOTTE and researchers in LaBRI (95 % MASCOTTE).

The expansion of the Internet results in a number of issues: BGP (Border Gateway Protocol) starts to show its limits in terms of the number of routing table entries it can manage. More efficient dynamic routing protocols are thus under investigation. However, because deploying under-development routing protocols on the Internet is not practicable at a large-scale, simulation is a necessary step to validate the properties of a newly proposed routing scheme. Unfortunately, the simulation of routing protocols over large networks poses real challenges due to the limited computational capabilities of computers. Existing simulation tools exhibit limitations in terms of the number of nodes they can handle and of the models they propose. This motivated us to conceive and develop DRMSim (Dynamic Routing Model Simulator): a network simulator which addresses the specific problem of large-scale simulations of routing models.

DRMSim relies on a discrete-event simulation engine. It proposes a general routing model which accommodates any network configuration. Aside to this, it includes specific models for Generalized Linear Preference (GLP), and K-chordal network topologies, as well as implementations of routing protocols, including the routing protocol proposed in  [99] and lightweight versions of BGP (Border Gateway Protocol).

Recent developments (in 2011) in the DRMSim simulator include the four following elements:

1. The initial framework was composed of a routing model. It now incorporates a system model and a metric model. In addition, the system model now considers the dynamic evolution of the simulated network. This dynamic behavior includes the maintenance operations on the network infrastructure as well as router failures. This model stores the connectivity of routers and links before their failure is simulated. This information is used for the simulation of the recovery procedure. This model takes as its input parameter the distribution of failure probability for both routers and links.

2. The metric model has been fully rewritten and is now geared towards computational performance and flexibility. Taking measures along a discrete-event simulation can be performed in many ways. DRMSim uses a new approach which consists in a metric model listening to the simulation and system models. The user can define its own metrics. Memory and CPU usages depend on which metrics are defined, to which set of routers/links they are applied, how many measures are taken and their computational complexity. It is possible to restrict the model to a small amount of nodes/links by selectors provided as input parameters. At the cost of memory and CPU usage, metrics measures can be stored as time-ordered sequence of values. To reduce the need of resources, a single global measure for each metric can be computed. Finally, metrics can be computed globally on the set of selected entities (links/routers) but also separately for each entity.

3. DRMSim enables the definition of customized simulation scenarios and stateful simulation campaigns.

Commonly, a simulation campaign consists in iterating over the set of combinations of parameter values, calling the simulation function for every combination. These combinations cannot be found randomly nor can they be determined using linear functions. Indeed, most of the time there exist correlations between the parameters involved. Also for performance reasons, the end-user will prefer non-linear (most often logarithmic) evolutions for the values of the parameters. The definition of the set of combinations is strongly linked to the simulated system and the time needed to solve it. DRMSim provides a simulation methodology that describes (programmatically) the way a simulation campaign should be conducted.

The duration of a simulation can be as long as several hours (or days). In the context of a simulation campaign where numerous simulations are executed, it is important that re-starting a simulation campaign that was interrupted does not entail the re-computation of already computed results. In order to do this, DRMSim stores on disk every step of the execution of a simulation campaign.

In a simulation campaign, simulation runs are independent (no simulation depends on the result computed by another simulation). Consequently they can be executed in parallel. Because one simulation is most likely to use large amount of memory and to be multi-threaded, parallelizing the simulation campaign on one single computer is a poor parallelization scheme. Instead, we currently work at enabling the remote parallel execution of several simulation runs, with the same distribution framework that is used in the Grph library.

4. Finally, DRMSim manipulates graph abstractions, allowing the user to force the use of a library different from the default one, i.e. Grph .

See also the web page http://www-sop.inria.fr/mascotte/projets/DCR/ .