GINI (GINI Is Not Internet) is an open-source toolkit that provides an entirely software-based system containing many of the features found in more expensive laboratory-based network experimentation platforms. The GINI provides lightweight but IP (Internet protocol) compliant virtual elements for machines, routers, switches, wireless access points, and mobile devices. The virtual elements can be interconnected to create virtual networks for experimentation purposes.
The GINI provides a tool with a GUI (graphical user interface) called gBuilder to design, start, inspect, and stop virtual networks. A screenshot of gBuilder is shown in the figure on the right. Once the virtual network is synthesized using gBuilder, it can be verified by the compiler built into gBuilder. A validated network can be started by the gBuilder. From Version 2.0 upwards, GINI uses a client-server architecture. The client (gBuilder) is written in python and can run on most platforms. The server is still Linux specific and is responsible for instantiating the virtual elements such as machines, routers, and switches. The connection between the client and server is transparently managed by GINI.
GINI also provides facilities to view various aspects of a live network session. Using wireshark, network packets can be examined as they are routed through the routers in a virtual network. The packet throughputs achieved by the queues at the routers can be visualized using the graphing tool built into GINI. The visualization tools run at the client side to provide better response times.
Go to the project page.
ABSTRACT - GINI (GINI Is Not Internet) is an open-source toolkit for creating virtual micro Internets for teaching and learning computer networking. It provides lightweight virtual elements for machines, routers, switches, and wireless devices that can be interconnected to create virtual networks. The virtual elements run as unprivileged user-level processes. All processes implementing a virtual network can run within a single machine or can be distributed across a set of machines. The GINI provides a user-friendly GUI-based tool for designing, starting, inspecting, and stopping virtual network topologies. This paper describes the dierent components of GINI, briefly discusses ways of using the toolkit in a computer networking course, and reports on user feedback on an early (incomplete) version of the toolkit. Full Paper (PDF)