____________

Java-Integrated Network Simulation Tool Based on the QoS Framework

____________


Overview

Based on the QoS framework, we have developed a Java-integrated network simulation tool, called NetSimQ, for evaluating the QoS control capability for systems equipped with different message models, unicast/multicast routing protocols, resource management, and message scheduling mechanisms. The reason for choosing Java as the programming language is due to the many desirable features Java possesses, e.g., the object-oriented structure, transparent network-wide and cross platform access, availability of rich library routines, packages, remote method invocation facilities, and native methods, and mature just-in-time compilation technology.

NetSimQ provides a rich, menu-driven user interface that allows users to input the network topology (along with both the link capacity and the node buffer size), the traffic/QoS requirements of message streams, the underlying traffic model, the resource reservation protocol, the unicast/multicast routing protocol, and the message scheduling algorithm, used in the simulation run. With all the inputs, the underlying simulation engine then emulates, for each connection (specified by the user or randomly generated by the simulation engine), the connection establishment phase, the data transfer phase, and the connection termination phase, and keeps track of network states and simulation statistics at the network level, the session level, and the node/link level.

Users can view the average and/or instantaneous simulation statistics on the fly through graphic interfaces on a per-stream, per-node and/or per-link basis. More details on the GUI of NetSimQ can be found here.

Software Architecture

Although NetSimQ was primarily designed to evaluate the QoS capability of point-to-point packet switched networks, we have laid out the software architecture in such a way that different types of networks can be easily incorporated.

Specifically, we have configured NetSimQ as a four-layer software architecture: the simulation layer, the generic network component layer, the specific network architecture layer, and the algorithm layer.


As shown in the above figure, the simulation layer defines the primitives in the event-driven simulation (e.g., Event, EventQueue, EventHandler, EventMonitor, and SimEngine), the generic network component defines the primitive classes that constitute a generic network (e.g., Network, Node, Link, Packet, and Protocol), the specific network architecture layer defines the classes specific to a network architecture (e.g., Session, Traffic, Routing, RsrMgt, and Admission for a point-to-point packet switched network), and the algorithm layer specifies the algorithms/schemes that are supported in the various components of the specific network architecture (e.g., RIP, OSPF, DVMRP, MOSPF, and CBT in the Routing class in point-to-point packet switched networks). The above figure also demonstrates how multiple network architectures are incorporated in the layered architecture. To include a new network architecture, one only needs to define the classes in the specific network architecture layer and the algorithm layer.

A detailed description on the software architecture can be found here.

Features of NetSimQ

Rich, menu-driven GUI and monitor facility
Rich, menu-driven user interfaces have been provided to allow input of a wide spectrum of network/session parameters and to display on the fly both average and instantaneous performance data either aggregately or on a per-session, per-node, or per-link basis. A monitor facility is also included to facilitate debugging and display of transient network performance in a step-by-step manner. This gives users the flexibility to configure the simulation scenario and to observe the network performance.
Layered and modularized architecture
The architecture is layered and modularized with clear, well-defined interfaces. A new algorithm/protocol can be easily inserted and replaced in NetSimQ to facilitate future extension.
Availability of well-known algorithms/protocols
Several well-known algorithms/protocols for unicast/multicast routing, resource reservation, and runtime message scheduling have been implemented. Different combinations of network configuration can be easily composed and evaluated in a plug-and-play fashion.
Flexibility and extendability
The user interfaces are flexible and amenable to addition of new UI pages. As new features are deemed necessary, new UI pages can be easily inserted into the top level graphic interface.
Portability
By virtue of Java's capability for transparent network-wide and cross platform access, NetSimQ is platform-neutral and can be accessed over the network.
We are also developing a Java-based toolkit, called NetPlot, to facilitate display, manipulate, and drawings (as x-y plots, pi charts, bar plots, and three-dimensional plots) of simulation results in NetSimQ. A set of samples is available here.

NetSimQ Demo

A live demo was given in the July 1998 DARPA/ITO Quorum PI meeting in San Diego, CA. The on-line demo is available here.


Return to Project Home Page
Date last modified -- August 3, 1998
Direct comments concerning this WWW site to: jhou@ece.osu.edu