Alternating bit protocol

related topics
{system, computer, user}
{math, number, function}

Alternating bit protocol (ABP) means a simple data link layer network protocol that retransmits lost or corrupted messages.

Messages are sent from transmitter A to receiver B. Assume that the channel from A to B is initialized and that there are no messages in transit. Each message from A to B contains a data part and a one-bit sequence number, i.e., a value that is 0 or 1. B has two acknowledge characters that it can send to A: ACK0 and ACK1. We assume that the channel may corrupt a message and that there is a way in which A and B can decide whether or not they have received a correct message. How and to what extent that is possible is the subject of coding theory.

When A sends a message, it sends it continuously, with the same sequence number, until it receives an acknowledgment from B that contains the same sequence number. When that happens, A complements (flips) the sequence number and starts transmitting the next message.

When B receives a message that is not corrupted and has sequence number 0, it starts sending ACK0 and keeps doing so until it receives a valid message with number 1. Then it starts sending ACK1, etc.

This means that A may still receive ACK0 when it is already transmitting messages with sequence number one. (And vice-versa.) It treats such messages as negative-acknowledge characters (NAKs). The simplest behaviour is to ignore them all and continue transmitting.

The protocol may be initialized by sending bogus messages and acks with sequence number 1. The first message with sequence number 0 is a real message.

See also

References

This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.

Full article ▸

related documents
Pseudorandom noise
Application programming interface
Java remote method invocation
Challenge-handshake authentication protocol
Wavelet compression
Netwide Assembler
Type code
Scanline rendering
Gnumeric
Wikipedia:Federal Standard 1037C terms/telecommunications encryption terms
Nano (text editor)
GNUstep
Cacti (software)
Baud
Distributed database
Truncated binary exponential backoff
Applet
Automatic data processing
Pico (text editor)
Layout engine
Sinclair Scientific
Binary image
B (programming language)
Acme (text editor)
Visual Instruction Set
Amiga E
Opencola
Freedb
A20 handler
8-bit clean