# Protocol Simulators

## Available Simulations

The following protocol simulations were developed mainly by Iain Robin and Ken Turner, with contributions from Paul Johnson and Kenneth Whyte. They should be useful in allowing you to experiment with a variety of protocols. Bug reports should be sent to Ken Turner.

The simulations are listed in increasing order of complexity. It is suggested that you try the easier protocols first.

> Alternating Bit Protocol (ABP) Simulator
> User Datagram Protocol (UDP) Simulator
> Boot Protocol (BOOTP) Simulator
> HyperText Transfer Protocol (HTTP) Simulator
> Simple Mail Transfer Transfer Protocol (SMTP) Simulator
> Internet Protocol (IP) Simulator
> Sliding Window Protocol (SWP) 3-Column Simulator
> Sliding Window Protocol (SWP) 5-Column Simulator
> Abracadabra Protocol Simulator
> Trivial File Transfer Protocol (TFTP) Simulator
> Transmission Control Protocol (TCP) Client-Server Simulator
> Transmission Control Protocol (TCP) Peer-Peer Simulator

## Additional Simulations

The following protocol simulations were developed by Ken Turner for Pearson Education. Bug reports should be sent to Ken Turner.

The simulations are listed in increasing order of complexity. It is suggested that you try the easier protocols first.

> Protocol Stack (STACK) Simulator
> Multiplexing (MUX) Simulator
> Multicasting (MCAST) Simulator
> Carrier Sense Multiple Access with Collision Detection (CSMA/CD, Ethernet) Simulator
> Transmission Control Protocol (TCP) Slow Start Simulator

## General Instructions

Select an action by clicking on the list at the bottom of the diagram. Actions are things like a user sending a data message or the medium delivering a protocol message. You are completely in control of the simulation. For example you may have to decide when to send messages, whether to acknowledge messages, and whether messages are lost in the medium or are delivered. Since the simulation does not run in real-time, a timeout is possible as soon as a message has been sent.

The last action in the diagram is shown in red. If you make a mistake, or just want to backtrack in the simulation, then click Undo. You can undo as many steps as you like, right up to the beginning of the simulation. Clicking on Redo will perform the last undone step again. Clear will restart the simulation with the current protocol parameters. If you click on Run the simulator will run automatically, making random choices for you. If you are not sure what to experiment with, this is an easy way of seeing the protocol in action. While this is happening, the Run button changes to Stop. Click on Stop to return the simulator to user control. You can continue at this point as if you had made all the automatic choices yourself.

The Print, Load and Save buttons are disabled since these simulations are running as applets. If you wish hard copy of the simulation, position the scroll bar in the simulation pane at an interesting point and print out the whole web page. If you have the code for the simulator, you can run it as an application to enable these buttons. Print produces a hard copy of the current simulation scenario. Load loads a scenario file (with a name ending in .scn). This must be for the same protocol as you are currently simulating. It replaces the current simulation scenario (if any). Save saves the current simulation scenario as a scenario file (with a name ending in .scn). If you are adventurous, you can create and edit your own scenarios using a standard text editor.

## Protocol Descriptions

The available simulations vary quite widely, though they all behave in a similar way. The terminology used to describe each protocol is that of its standard. The term "octet" is commonly used in international communications standards to mean eight bits, i.e. a byte.

Some simulations have associated protocol parameters. To change the defaults that are shown, enter new values and click Change Values. In some cases, this will force the simulation to restart.