Network Simulator

This project is sponsored by two NSF grants to develop a web-based curriculum for operating systems and networks. More information about these grants can be obtained at /java/jotsahome/nsf/


This project is a Java applet which runs an animated simulation of the six data link layer protocols described in the first printing of Computer Networks, third edition, by Tanrnbaum.

The applet allows users to try out different parameters of the various protocols and see what happens when certain types of errors occur.

The animation can be slowed down, speeded up, or paused at any time.
It can produce Gantt charts showing a record of a particular run.
It also allows tow copies to be run in a synchronized manner so that two different protocols or parameter settings can be compared.

When the simulator starts you are presented with a small controlling window which looks like this:

One or two simulator windows also appear. Here are two snapshots of the simulator window.

For each of the 6 protocols there are two to five scenarios built in to the simulator which illustrate the important features of the protocol.
For each of these scenarios, there is a visual commentary which traces the progress of the scenario.
Optionally, an audio commentary and/or sound effects can make it easier to follow what is happening. The commentary window looks like this:

Lines are highlighted as the corresponding events occur.

A control panel can be popped up for controlling various timings and error rates. The control panel looks like this:

At any time the user can pop up a Gantt chart showing the history of each frame. A sample Gantt chart might look like this:

The Gantt chart window supports panning and zooming. It can be made to update continuously as the simulation is running or be updated only when a button is pushed. The red bars correspond to data frames, the blue to acknowledgments, and the green to negative acknowledgments.


Here are a couple of sample problems that can be posed to a student for experimentation:

Return to NSF Grant Page