The latest release: DRMSim 1.3.1: download (require authentification) (released on 05/03/2013).
DRMSim 1.3: download (require authentification) (released on 04/03/2013).
DRMSim 1.2: download (require authentification) (released on 09/02/2012).
DRMSim 1.1: download (require authentification) (released on 06/01/2012).
DRMSim 1.0: download (require authentification) (released on 23/11/2011).

The latest documentation: download (require authentification).


Topology generators

Many topologies are supported by DRMSim. Below are some examples :

Tree Grid Chordal

Routing protocols impemented


In order to perform an initial validation, the first dynamic routing protocol tested on DRMSim was Routing Information Protocol (RIP).It is one of the most enduring of all routing protocols. RIP is also one of the more easily confused protocols because a variety of RIP-like routing protocols proliferated, some of which even used he same name! RIP and the myriad RIP-like protocols were based on the same set of algorithms that use distance vectors to mathematically compare routes to identify the best path to any given destination address.


We implemented a version of BGP routing model which takes into consideration the full BGP (finite) state machine. Unfortunately the large number of events (16) implied by full-fledged BGP makes it hardly simulable on large topologies. We have thus simplified the BGP session state machine from 6 to only 2 states: idle and established. We opted for a BGP session model that work with only 6 events instead of 16. This simplification helped improving the performance of the simulation without introducing significant deterioration of its accuracy. Profiling shown that the lookup operation in the routing table(but also forwarding table) takes the largest part of the simulation execution time. This led us to write a third version of BGP which uses customized data structures. We have also designed the simulator so as to pre-fetch some potentially needed entries and prevent repetitive computation to reduce the total number of calls of the lookup method.


DRMSim also provides an implementation of the NSR routing protocol. NSR is a routing scheme which takes advantage of the specific property of real networks that have low (logarithmic) diameter and a high clustering coefficient. NSR can be quickly computed in a distributed way and achieves good additive stretch for k-chordal graphs. However, the simplicity comes at a cost of O(log n) bits per port needed to store the routing tables. As representative execution example of DRMSim, we evaluated the performance of the NSR routing scheme and measured its additive stretch. The latter is defined as the difference in number of hops between the routing scheme path length and the minimum path length (actual distance) for the same source-destination pair. By computing the average and the standard deviation of this metric over a hundred of random routings (see Figures). The results obtained via simulation conform with those demonstrated on the article. On the one hand, on chordal graphs the additive stretch obtained used NSR will never exceed 1; on the other hand, NSR shows to have poor performance on graphs which include many big holes (chordless cycles) such as grids. Further, simulation allowed us to discover an advantageous property of NSR: its additive stretch turns out to be very small on power-law networks (with linear preferential attachment) which are considered to be good representations of Internet AS network topologies.