What is KivaNS? | History | Funding | People | Papers

What is KivaNS?

KivaNS (Kiva Network Simulator) is a free and open source Java based application which allows user to design data network schemes and to simulate the IP routing through these networks. In contrast with the majority of available free simulation applications, which are designed to evaluate throughput of the specifics protocols, the main aims of KivaNS are simulate how IP works, and, specially, study the different techniques to route the data packets through different network technologies. To do this, KivaNS also includes the simulation of auxiliary protocols cuch as ARP or ICMP, in addition to IP, and emulates the basic working of link layer technologies like Ethernet.

The main targets of this application are, by the one hand, helping for the data networks design and, by the other hand, to assist in the study of the data networks, and, specially, in the study of the routing techniques of the TCP/IP architecture, without the necessity of real equipment and complex application for analyze protocols. KivaNS also is able to simulate different kinds of errors in the networks and equipment, such as packets loss, and bad routing tables. .

KivaNS is composed of two main blocks, which are implemented in Java at all. The first block is an API (Application Programming Interface) that offers a simulation engine for data networks, which can be used for other Java applications in addition to KivaNS. The second block is a complete graphical user interface, which uses the API to execute their graphical schemes. Because the whole environment is programmed in Java, it works in different operating systems such as GNU/Linux o Microsoft Windows. The only requirement is to install the Java runtime before.

KivaNS blocks

The API is composed of tour blocks: a discrete event manager, the group of objects which represent the networks, the objects which represents the equipment (host or interconnection equipment), and the communication layers stack. This is an modular and extensible API, and it is possible to include easily new network or equipment technologies..

KivaNS API blocks.

In the current version the user interface is implemented as a packet of Java classes which can be downloaded by the user to be executed in his computer. This interface not only allows the user to design and draw network schemes by means of a visual editor, but also permits to configure the equipment in a scheme in a similar way to the real world. Finally, it is possible access to the features of the API to simulate the data routing in a network scheme in a easy way, without the necessity of programming.

KivaNS graphical user-interface

The name of “Kiva” comes from some ancient American Natives. The kivas were the rooms used by these people for spiritual ceremonies.


  • Version 1.0. First public version. Includes the executable of the graphical user interface and the sources of the simulation API. This API is able to simulate the link layer of ethernet, the IP layer and its addresing, ARP, an the most important ICMP messages. The graphical interface is able to draw more equiment and networks than the ones that are simulated by the API, such as ring networks or point to point links.
  • Version 1.1. This versios also offers the downloading of the source code of the graphical interface, in addition to the source code of the simulatuion APi and the executables. Some bugs have been corrected, and news fucntions have been added:
    • Simulation of ethernet switches. This equipment is able toi send each frame only to its destination by an dedicated link. To do this, a swhitch manages a cache with MAC addresses. Although the Spaning-tree algorithm is not implemented yet, a new header in the frames allows to the switches the interchange of some information.
    • The IP broadcasting has been inproved, and it is possible to use subnet broadcasts.
    • The graphical interface allows to draw switches and the dedicated links between they and other equipment such as PCs, routers or other switches.
    • The panel with information about the conection of a equipment shows the interfaces.
    • The event list with the simulation trace has been improved significally. It shows now information abouut the interfaces and allows an easier scrolling. Also it is possible export the trace to a CVS file.
    • Filter options have been added to the event list. This filter can be expanded by programing.
    • Now, the graphical interface allows to specify a no existent destination IP, or a broadcast IP for a simulation.


Part of this project was funded by the Call for Technological & Educational Innovation Projects 2006 from the Vice President for Technology and Educational Innovation at the University of Alicante.


The following people have work in the development of KivaNS: Teresa L. Fabuel, Antonio F. Zaragoza, José María Díaz, Oscar Ferrer and Francisco A. Candelas.

Related papers


© Aurova 2010