Eng | Rus


User interface
Export to html-reports
Look and feel


NET-Simulator implements three layers of ISO OSI: 1st - Physical, 2nd - Data Link, and 3rd - Network in application to IP technology. No any details of Physical Layer are emulated, so the electrical and physical specifications for devices are not taken into account. It is supposed that 2nd layer packets are transmitted through an Ethernet-like environment. Thus NET-Simulator allows users to achieve the following goals:

  • Study the principles of operation for 2nd and 3rd layer devices such as passive hubs, switches and routers.
  • Getting practical skills of the static IP4 routing configuration.
  • Study communication protocols ARP, IP4, ICMP.
  • Getting skills of troubleshooting in IP networks.

NET-Simulator uses a simple Ethernet-like protocol on the 2nd layer. This protocol uses addressing by 6 byte MAC-address. The uniqueness of the every MAC-address is provided by the NET-Simulator kernel. Actually, a packet of the 2nd layer is a Java object and it does not have any equivalent in real computer networks.

On the 3rd layer there is a restricted implementation of IP4 protocol according to RFC791. In order to resolve IP to MAC-addresses there is an ARP service based on broadcast requests.

There is restricted implementation of ICMP according to RFC792 that allows working services like ping and traceroute.

User interface

The main window of NET-Simulator is a desk where users can put different devices. Currently the following devices are available:

  1. Router. This is layer 3 commutator that contains 8 IPv4 interfaces and propagate received IP packets according to statically configured routing table.
  2. Desktop. Actually, this is a router that contains only one interface.
  3. Switch. This is a layer 2 commutator that contains 8 ports and propagate layer 2 packets according to MAC-address tables. It uses MAC-learning algorithms similar to the ones commonly used in Ethernet-switches.
  4. Hub. This is a simple device that contains 8 ports and always propagate received layer 2 packets to all of it's ports. The user has not any control over the hub.
  5. All the devices are connected by means of the universal links - virtual patchcords. As it was mentioned above these patchcords do not have any physical characteristics. It is supposed that the bandwidth of the links is infinite. Patchcords are blinking when packets transmitted through them.

Newly created devices appear in the upper-left corner of the desk. Devices can be drag-and-dropped to appropriate places. Plugs of the patchcords "glue" to the nearest sockets. There is a drop-down context-menu associated with every device. 'Double click' on any device opens the virtual console associated with this device.


NET-Simulator uses xml to store project files. DTD for the project files is located in {netsim_home}/dtd/net_simulator.dtd file.

Export to html-reports

Projects can be exported to html-reports. The report consists of project detail in html and the PNG image with the drawing of the network. NET-Simulator converts project files to html reports using the xsl-template. The default template is in {netsim_home}/cfg/tohtml.xsl file. You can modify this template to achieve the desired view of the report. Of course, you can use any external XSLT converter to generate reports.

Report example:

Warning: /reports/test.html could not be embedded.

Look and feel

You can change the look and feel of the program by creating or editing skins. NET-Simulator loads images of the devices from {netsim_home}/img/ directory, where 'skinname' is the name for the current skin. The current skin is defined by the 'currentSkin' property in the configuration file ('basic' by default). There must be three kind of images for every device: 1) basic, 2) selected, 3) highlighted. Files with the basic images are named: router.gif, desktop.gif, switch.gif and hub.gif. Files that contain images for selected devices have '_s' suffix at the end of their names (eg. router_s.gif). Files that contain images for highlighted devices have '_h' suffix. (eg. router_h.gif).

You can control the properties of every skin from the configuration file. It is possible to setup the position of sockets on the device image. The coordinate system originates from the top left.

Example of the skin configuration:

	<skin name="basic">
	    <shape name="router" socketsX="30" socketsY="15" socketsStep="8" />
	    <shape name="desktop" socketsX="38" socketsY="35" socketsStep="0" />
	    <shape name="hub" socketsX="38" socketsY="15" socketsStep="8" />
	    <shape name="switch" socketsX="38" socketsY="15" socketsStep="8" />
    <currentSkin name="basic" />

Last update: 18.08.2013 22:08. Email: maxim-tereshin@yandex.ru