Researchers developing network protocols for networks such as MANETs typically evaluate them through simulations, using network simulators such as NS-2/NS-3 and OPNET, or network emulators such as CORE. While a number of mobility models exist for such network simulators, relatively little is understood about the network topologies created by such tools. As the mobility model, creating dynamic topologies, has a significant impact on any protocol performance, better understanding the network topology dynamics is key to analyzing any simulation results. Over the past few years, we’ve developed a software tool to read in scenario files for a small set of widely used network simulators and emulator. NetAnalyzer then derives statistics about the created topologies, such as whether the network is connected, the average path length, the network diameter, the average number of neighbors, the number of links broken/created per second, the network area coverage, and others. The metrics are more explained in detail in the user documentation. Almost all of these statistics, when collected as a function of time, can be visualized in matlab. We also provide, as discussed below, a function to animate the network dynamics in matlab in a video-player format, allowing the user to scroll back and forth and to play out the dynamic topology at various speeds.
A paper describing our use of NetAnalyzer to explore the performance of different routing protocols over a range of individual mobility models was accepted for publication:
· Thomas Kunz, Jean-Daniel Medjo Me Biomo, and Marc St-Hilaire, "NetAnalyzer: Analyzing dynamic network topologies," Proceedings of the 8th IFIP Wireless and Mobile Networking Conference (WMNC 2015), Munich, Germany, October 2015.
As an example to show how the network topology changes as the nodes move, we captured the video playout of two different dynamic network scenarios. NetAnalyzer includes matlab code that generates these types of animations, allowing a user to scroll back and forth in time, similar to a video playout. In one example, 20 nodes are moving at a relatively slow speed, in the second example 40 nodes are moving at a relatively high speed. In both scenarios (best viewed at max screen), the underlying mobility model is the Random Waypoint Model with 0 pause time. The transmission range is assumed to be 250 m, and the display links nodes that are within communication range. The animations demonstrate that the network topology undergoes quite significant changes over time (links come and go), with some nodes well connected and some more sparsely collected. Also, the network stretches in various ways over time. The underlying NS-2 scenario files are also provided. By default, NetAnalyzer tracks a dynamic topology until all nodes stopped moving, which goes beyond the simulation time that the scenarios were originally intended for.
To allow users to explore the various options, we provide a ZIP file with a number of static and mobile topologies, for Core, NS-2, and OPNET. The directory structure is fairly self-explanatory but differs somewhat from the names used in the older software documentation. For the static and mobile NS-2 scenarios, we provide sets of 250 scenarios (10 different network sizes, ranging from 10 to 100 in steps of 10), 25 repetitions each. It is not unusual that researchers repeat certain scenarios multiple times, averaging the measured performance metrics. NetAnalyzer provides some options (mostly driven by our own requirements) to process batches of such scenario files, and to generate an Excel spreadsheet with a range of metrics averaged over each network size. Users will probably want to change this part of the code to collect their own summary statistics, as it is very specific to each individual researcher/question being explored.
For the static scenarios, all three tools completely specify their scenario in a single input file. For dynamic scenarios, NS-2 again only requires a single input file per scenario. CORE requires two files, one specifying the initial network topology, and a second file specifying node mobility. OPNET requires a file describing the initial scenario, and, in a separate folder with the same name is the master file (but without the XML extension), a specification of the mobility of each node in a separate file.
While we tested our tool with the scenario files provided as an example, we more heavily applied it to OPNET and NS-2 scenario files, as these are the simulation tools we are currently working with. In general, the software is provided as as, with no assurance that it will work (correctly) for your specific input files.
The 2014 version of our tool uses a text-based GUI. With one small exception noted below, it offers the same functionality as the newer 2015 version, available below. The software uses the boost library for certain graph-related functions, and the version we offer here only contains a subset of the files that come with the complete library (which is quite large). We did not test whether the software will work with the latest and greatest version of boost.
· NetAnalyzer program code, as ZIP file
· User Manual (includes instructions to build the code)
In 2015, we upgraded NetAnalyzer to also process NS-2 scenario files created by BonnMotion (the text-based version very much depends on the file format employed by the NS-2 utility setdest). We also provide, as a separate front-end, a more user-friendly GUI. This GUI creates, as an intermediate step, a file that specifies the analysis to be completed and then launches a version of NetAnalyzer in the background. Power-users could even generate this input file programmatically and run batches of NetAnalyzer executions, the format of this file is documented in the documents.
Note that one issue (as yet unresolved) is that the user will not see whether/when the NetAnalyzer background process is complete, once he/she presses GO on the GUI. In some instances (such as when processing multiple scenario files), it may take a significant amount of time for NetAnalyzer to complete. One way currently to verify whether the program terminated is to check whether all output files have been created.
· NetAnalyzer program code, as ZIP file
· NetAnalyzer GUI source code, as ZIP file (designed and implemented with QtCreator)
· User Manual (includes instructions to build both NetAnalyzer and NetAnalyzerGUI)