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 the Gantt charts obtained by running this scenario with two different timeouts of 12 and 30 seconds. The round trip propagation delay is 10 seconds.
Protocol 6, Scenario 1 is similar to Protocol 5, Scenario 1. Run Protocol 6, Scenario 1 with a timeout of 50 seconds and print out a Gantt chart. Compare the results to that with the default timeout of 30 seconds. How does the result depend on the timeout?
Here is the Gantt chart for one of these runs. Since Protocol 6 uses negative acknowledgments, a single lost frame error is not affected by the timeout value. The other Gantt chart is almost identical to this one.