108 lines
3.8 KiB
HTML
Executable File
108 lines
3.8 KiB
HTML
Executable File
<!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>
|
|
|