Abracadabra (Alternating Bit Protocol with Connection and Disconnection) is a connection-oriented protocol that allows data to be sent in either direction using the Alternating Bit Protocol. Data transfer is preceded by connection and followed by disconnection.
The initiating user requests a connection with ConReq. This is sent as a CR protocol message. The other user receives ConInd as an indication that a connection attempt has been received. Normally it will respond positively to the connection attempt with ConResp. This leads to a CC confirmation in the protocol, and a ConConf confirmation back to the initiating user. However the responding user may also reject a connection attempt with a DisReq disconnection request. This leads to a DR in the protocol and DisInd at the originator. If CR connection messages are sent by both protocol entities simultaneously, each acknowledges the other and the connection is set up.
Once a connection has been made, either user sends data messages as DatReq(DATA0) or DatReq(DATA1); the content of messages is not explicitly identified. These requests lead to delivery at the other user with DatInd(DATA0) or DatInd(DATA1). The protocol carries data as DT(0) or DT(1) messages that give only the sequence number, not the data. These are acknowledged with AK(1) or AK(0) respectively. Note that if a DT message is received again due to re-transmission, it is acknowledged but discarded. Both users may be sending data at the same time.
Disconnection is requested with DisReq. This causes a DR message to be sent in the protocol, indicating disconnection at the other user with DisInd. The remote protocol entity confirms disconnection with DC. If DR disconnection messages are sent by both protocol entities simultaneously, each sends back a DC as confirmation. Since both users tried to disconnect at the same time, each has issued DisReq and does not see DisInd.
This simulation has no parameters.
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.
Up one level to Protocol Simulations