Welcome to GINI!
A Toolkit for Constructing
User-Level Micro Internets
What is GINI?
GINI (GINI is not Internet) is a toolkit for creating virtual micro Internets for teaching and learning computer networks. It provides an easy to use graphical user interface (GUI) called gBuilder for creating network instances. Using gBuilder, the user can create small to moderate sized networks. Once the network is built, parameters such as subnet addresses are assigned by the user to different components of the network. gBuilder provides support by automatically computing routing tables and automatically assigning IP and MAC addresses.
Using the gBuilder interface, the user can start the network. The starting process creates virtual instancess of each network element and connects them as specified in the network. For example, User-Mode Linux instances are started for machines and custom user-level routing programs are started for routers. By default, all elements of a network run within the machine from where gBuilder was started. However, gBuilder provides facilities to run the elements on a remote server.
GINI is developed for teaching and learning computer networks for undergraduate or first-year graduate students. This means we want to keep the toolkit simple such that students can get familiar with the toolkit within weeks and start doing their assignments before the semester is over!
- Simple to use with graphical user interface driven network design.
- Fully open-source system.
- Standard compliant router (although simplified) that works with unmodified Linux TCP/IP stack.
- Opportunity for students to implement additional protocols (UDP, TCP, etc), new network elements (layer 5 switches, firewalls), etc...