CNet [83] is a simulator designed to expose interactions at multiple layers (data-link, network, routing and transport layer) and runs exclusively on UNIX systems. Network protocols must be written in the ANSI-C programming language which, due to the complexity of the language, can create a higher entry barrier for interacting with the network. CNet is provided under the GNU General Public License [60], with its source code, make-files and documentation freely available from the website. A graphical representation of the network can be viewed via TCL/TK or an ASCII representation may be provided as well. CNet can be configured through the command line or its own GUI.
27
Figure 8: The CNet simulation model [64]
The nodes in CNet can be connected either by point-to-point links or Ethernet segments and can exist as hosts or routers. Figure 8 shows that each host contains the Application, Errors and Physical layers with multiple numbered links between hosts. Hosts are the equivalent of workstations with an OSI model approach allowing Application Layer to communicate with an Application Layer on a remote host. A physical layer is provided that can be modified at runtime through API calls. The level of detail for altering the physical level can be of great use for experimenting with padding and frame structure. CNet has limitations such as the lack of wireless protocols and no group addressing or multicast.
3.6
WebLan Designer
The WebLan-Designer [84], developed at Auckland University of Technology, uses a web based front end to allow students to design local area networks. The tool does not generate results from a simulator but rather shows the different ways in which a described scenario can be connected, as seen in Figure 9.
28
Figure 9: Screenshot of the WebLan Designer [65]
The tool is free to use and is deployed using a standard web page. Both wired and wireless technologies are used. Due to high levels of abstraction, this is a good tool for showing students how to structure a network but restricts deep exploration.
3.7
ReMLab
ReMLab [85] is a measurement laboratory which supports remote learning for engineering students. The laboratory is designed to allow remote access through a web page to technical instruments. Students’ parameters are entered on a web page which, through Servlet technology, invokes a physical instrument. The physical board is accessed via the Java Native Interface (JNI). The instruments available for experimentation include a digital I/O board, analogue-to-digital and digital-to-analogue conversion through RS232. Concurrent experiment requests are handled using a First in First Out (FIFO) queuing algorithm. Some results require graphical reporting and this is accomplished using a client-side Java applet that generates the graphs. This client-side generation alleviates the server load.
3.8
SENSASIM
SENSASIM [86] is a detailed event-based simulator for wireless networks written in Java and developed at the Athens Institute of Technology. The tool is used to teach students about wireless sensor networks, enabling collaborative configuration and viewing of animations. SENSASIM allows students to experiment with different power control schemes, node movement, routing, MAC protocols and the energy constraints of nodes. Configuration is performed through a Java applet and the request sent to a simulation server. The results are then streamed back to the applet where the student can
29
review the simulation. SENSASIM has been provided using the GNU Lesser Public License [87] and the source code is available to download from the site.
3.9
iNetwork
iNetwork is a tool for teaching networks to students. iNetwork allows the construction and testing of wired networks. This is done through an interactive point and click GUI. The software is written in C# and a platform with Win 2000/XP with the .NET framework installed is required to run the program. There are four key components that interoperate to provide functionality. A GUI is used for adding and subtracting network components. The network simulator performs the various networking protocols such as ping, tracert and ARP. A device simulator provides the behaviour of the network components such as switches, workstations and servers. The final component is the network calculator that calculates correct subnets, ARP tables and routing entries. iNetwork provides an experimentation software solution. This is especially useful in institutions where real networking components are unavailable to the students.
3.10 IREEL
IREEL [88] is a virtual laboratory enabling students to experiment with networking protocols using a web interface to control experiments over an emulated network. Users sign up at the website [89] and are then able to choose an experiment to run. Example experiments include ping, Iperf [90] and streaming video. Once submitted, a list of experiments and their state is shown. An experiment is pending until the system has carried out the experiment. Once completed, an email is sent out with the results in a range of formats.
30
Figure 10: Architecture of IREEL [88]
The user logon is controlled using Shibboleth web Single Sign-On [91] technology, allowing students from participating institutions to log on using their institutions credentials. Once logged on users define their experiment, as shown in Figure 10, using a web front end. The setup is conveyed to the end systems that execute the experiment using real protocol stacks. The emulation system is a single host with multiple interface cards that has a high-level API used for configuring the set up. Packet interference is achieved using FreeBSD/Dummynet [92]. There are three emulation scenarios: static impairments (constant values), timed scenarios or other emulator scenarios. When the hardware is available, the experiment is performed, the result stored in a repository and an email is sent to the experimenter when the results are available for collection.
New experiments are designed and run by course coordinators. The design process involves preparing the results presentation, lecture material and developing a Java controller. The level of user manipulation of the environment is limited. Another problem encountered is the long period of delays between submitting a new experiment and receiving the results, this was in the order of hours. This makes the tool less useful for a predefined 2 hour lab session where students require immediate feedback.
3.11 MASSIVE
MAnet Server Suite Incorporating Virtual Environments [93] (MASSIVE) is an emulation environment for mobile ad-hoc networks. The aim of the project is to provide interactive manipulation of an emulated environment, visualisation of topology, management tools and ease of transition of protocols from the emulated to real domain. Network emulations are described as belonging to three domains:
31
1. Central Control Emulators: Where every node in the emulation is connected to a central server. The central server decides what to do with each packet going through the network. The decision on whether to drop, delay or scramble a packet is achieved via internal parameters. This centralised approach introduces the problem of a single point of failure and creates a significant bottleneck in the system.
2. Simulator Combined Emulators: Simulators such as ns-2 have a hybrid ability to take real world network data and pass it into the simulated environment and back out again. Using this approach only allows the evaluation of top-level protocols.
3. Distributed Emulators: Each node involved makes the decision about how it controls the packet flow. This mode is usually controlled and configured by an external node. An example of such an approach is found in MobiEmu [94] and it this approach which MASSIVE follows.
Each node in MASSIVE contains a server; each server is capable of emulating at least one Virtual Mobile Ad hoc NETwork (VMANET). Each server may instantiate a virtual mobile node and can communicate with other servers. Access and control is accomplished using remote procedure calls (RPC). Route management is performed using iptables [95]. The user can also specify external routing mechanisms.
A user interface is provided that shows information on the network status, neighbours of nodes and route information. A management tool allows the graphical construction of VMANETs as well as control over the MASSIVE servers and VMANETS settings. Configuration is achieved by firstly scanning the network to find available nodes. Mobility of the nodes is done using a scripting language that is embedded in the emulator. The capability for mobility allows the researchers to study the formation of hot spot areas and the implications for certain protocols. The GUI can also be used to create multi-hop routing networks.
Whilst the introductory paper to MASSIVE hints at the use for education, no examples, evaluation or ideas are presented and no further publications have occurred based on this system. The system has also not been made freely available for code review or external testing. While the approach is interesting, the configuration seems difficult and unsupported.