162 lines
4.1 KiB
HTML
162 lines
4.1 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
|
|
||
|
<!-- ABP.html (C) K. J. Turner 18/12/14 -->
|
||
|
|
||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
|
|
||
|
<head>
|
||
|
|
||
|
<title>Alternating Bit Protocol</title>
|
||
|
|
||
|
<link rev="made" href="http://www.cs.stir.ac.uk/~kjt/"/>
|
||
|
|
||
|
<script type="text/javascript" language="JavaScript">
|
||
|
|
||
|
<!--
|
||
|
var simulator;
|
||
|
var mediumType;
|
||
|
var mediumTypeOld;
|
||
|
|
||
|
function set() {
|
||
|
mediumType =
|
||
|
document.settings.medium[0].checked
|
||
|
? 2
|
||
|
: document.settings.medium[1].checked
|
||
|
? 1
|
||
|
: 0;
|
||
|
if (mediumType != mediumTypeOld) {
|
||
|
mediumTypeOld = mediumType;
|
||
|
simulator.setParameter("mediumType", mediumType);
|
||
|
simulator.restart();
|
||
|
}
|
||
|
}
|
||
|
//-->
|
||
|
|
||
|
</script>
|
||
|
|
||
|
</head>
|
||
|
|
||
|
<body background="simulator.jpeg"
|
||
|
onload="simulator=document.ProtocolSimulator; set();">
|
||
|
|
||
|
<div style="text-align: center">
|
||
|
|
||
|
<h1>Alternating Bit Protocol Simulator</h1>
|
||
|
|
||
|
<img src="simulator.gif" alt="Simulator Logo"/>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<h2>Protocol Description</h2>
|
||
|
|
||
|
<p>
|
||
|
ABP (Alternating Bit Protocol) is a connection-less protocol for
|
||
|
transferring messages in one direction between a pair of protocol
|
||
|
entities. It is a simple form of the <a href="SWP3.html">Sliding Window
|
||
|
Protocol</a> with a window size of 1. The message sequence numbers simply
|
||
|
alternate between 0 and 1.
|
||
|
</p>
|
||
|
|
||
|
<h2>Protocol Parameters</h2>
|
||
|
|
||
|
<p>
|
||
|
The following settings are adequate for a simple simulation. For a more
|
||
|
advanced exploration, choose different options and click <em>Change
|
||
|
Settings</em>. This will cause the simulation to restart.
|
||
|
</p>
|
||
|
|
||
|
<p>
|
||
|
Optionally set the level of control that the simulator user needs over
|
||
|
the medium:
|
||
|
</p>
|
||
|
|
||
|
<dl>
|
||
|
|
||
|
<dt><b>Automatic</b>:</dt>
|
||
|
<dd>
|
||
|
Messages are delivered immediately without loss. This is suitable for
|
||
|
initial experimentation, but limits what can be explored. For example,
|
||
|
message are never lost and never have to be timed out and resent.
|
||
|
</dd>
|
||
|
|
||
|
<dt><b>Delivery</b>:</dt>
|
||
|
<dd>
|
||
|
Alternatively, message delivery may be controlled - though messages
|
||
|
will still never be lost. Choose this option to allow messages to be
|
||
|
delivered in different orders and to be resent.
|
||
|
</dd>
|
||
|
|
||
|
<dt><b>Delivery/Loss</b>:</dt>
|
||
|
<dd>
|
||
|
Finally, delivery and loss of messages may be completely controlled.
|
||
|
This is the most comprehensive option, but also the most complex one to
|
||
|
manage.
|
||
|
</dd>
|
||
|
|
||
|
</dl>
|
||
|
|
||
|
<form name="settings">
|
||
|
|
||
|
<center>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
|
||
|
<tr>
|
||
|
<td align="right">Medium Control:</td>
|
||
|
<td>
|
||
|
<input type="radio" name="medium" value="2"
|
||
|
checked="checked"/>Automatic
|
||
|
</td>
|
||
|
<td><input type="radio" name="medium" value="1"/>Delivery</td>
|
||
|
<td><input type="radio" name="medium" value="0"/>Delivery/Loss</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" colspan="4">
|
||
|
<input type="button" name="btnSet" value="Change Settings"
|
||
|
onclick="set()"/>
|
||
|
</td>
|
||
|
<td colspan="3"></td>
|
||
|
</tr>
|
||
|
|
||
|
</table>
|
||
|
|
||
|
</center>
|
||
|
|
||
|
</form>
|
||
|
|
||
|
<h2>Protocol Simulation</h2>
|
||
|
|
||
|
<p>
|
||
|
The protocol simulation shows a time-sequence diagram with transmitting
|
||
|
and receiving protocol entities, and a communications medium that carries
|
||
|
messages. The transmitter simply sends messages numbered <em>DATA(0)</em>
|
||
|
or <em>DATA(1)</em>; the content of messages is not identified. These are
|
||
|
acknowledged with <em>ACK(1)</em> or <em>ACK(0)</em> respectively. Note
|
||
|
that if a <em>DATA</em> message is received again due to re-transmission,
|
||
|
it is acknowledged but discarded.
|
||
|
</p>
|
||
|
|
||
|
<center>
|
||
|
|
||
|
<applet code="simulator.ProtocolSimulator.class"
|
||
|
archive="ProtocolSimulator.jar" width="600" height="700"
|
||
|
name="ProtocolSimulator">
|
||
|
<param name="protocol" value="ABP"/>
|
||
|
</applet>
|
||
|
|
||
|
</center>
|
||
|
|
||
|
<hr/>
|
||
|
|
||
|
<p>
|
||
|
<a href="index.html"><img src="uparrow.gif" alt="Up Arrow"/></a>
|
||
|
Up one level to <a href="index.html">Protocol Simulators</a>
|
||
|
</p>
|
||
|
|
||
|
</body>
|
||
|
|
||
|
</html>
|
||
|
|