You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
3.8 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- ABRA.html (C) K. J. Turner 18/12/14 -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Abracadabra Protocol</title>
<link rev="made" href="http://www.cs.stir.ac.uk/~kjt/"/>
</head>
<body background="simulator.jpeg">
<div style="text-align: center">
<h1>Abracadabra Protocol Simulator</h1>
<img src="simulator.gif" alt="Simulator Logo"/>
</div>
<h2>Protocol Description</h2>
<p>
Abracadabra (Alternating Bit Protocol with Connection and Disconnection)
is a connection-oriented protocol that allows data to be sent in either
direction using the <a href="ABP.html">Alternating Bit Protocol</a>. Data
transfer is preceded by connection and followed by disconnection.
</p>
<p>
The initiating user requests a connection with <em>ConReq</em>. This is
sent as a <em>CR</em> protocol message. The other user receives
<em>ConInd</em> as an indication that a connection attempt has been
received. Normally it will respond positively to the connection attempt
with <em>ConResp</em>. This leads to a <em>CC</em> confirmation in the
protocol, and a <em>ConConf</em> confirmation back to the initiating
user. However the responding user may also reject a connection attempt
with a <em>DisReq</em> disconnection request. This leads to a <em>DR</em>
in the protocol and <em>DisInd</em> at the originator. If <em>CR</em>
connection messages are sent by both protocol entities simultaneously,
each acknowledges the other and the connection is set up.
</p>
<p>
Once a connection has been made, either user sends data messages as
<em>DatReq(DATA0)</em> or <em>DatReq(DATA1)</em>; the content of messages
is not explicitly identified. These requests lead to delivery at the
other user with <em>DatInd(DATA0)</em> or <em>DatInd(DATA1)</em>. The
protocol carries data as <em>DT(0)</em> or <em>DT(1)</em> messages that
give only the sequence number, not the data. These are acknowledged with
<em>AK(1)</em> or <em>AK(0)</em> respectively. Note that if a <em>DT</em>
message is received again due to re-transmission, it is acknowledged but
discarded. Both users may be sending data at the same time.
</p>
<p>
Disconnection is requested with <em>DisReq</em>. This causes a
<em>DR</em> message to be sent in the protocol, indicating disconnection
at the other user with <em>DisInd</em>. The remote protocol entity
confirms disconnection with <em>DC</em>. If <em>DR</em> disconnection
messages are sent by both protocol entities simultaneously, each sends
back a <em>DC</em> as confirmation. Since both users tried to disconnect
at the same time, each has issued <em>DisReq</em> and does not see
<em>DisInd</em>.
</p>
<h2>Protocol Parameters</h2>
<p>
This simulation has no parameters.
</p>
<h2>Protocol Simulation</h2>
<p>
The protocol simulation shows a time-sequence diagram with users A and B,
protocol entities A and B that support them, and a communications medium
that carries messages. Either user may open a connection, then send data,
and finally break the connection. There may be only one connection at a
time between a pair of users.
</p>
<center>
<applet code="simulator.ProtocolSimulator.class"
archive="ProtocolSimulator.jar" width="750" height="700"
name="ProtocolSimulator">
<param name="protocol" value="ABRA"/>
</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>