<protocol> A protocol
which guarantees the receiver of synchronous
data can recover the sender's clock.
When the data stream sent contains a large number of adjacent bits which cause no transition of the signal, the receiver cannot adjust its clock to maintain proper synchronised reception. To eliminate the possibility of such a pathological case, when a preset number of transitionless bits have been transmitted, a bit which does cause a transition is "stuffed" (transmitted) by the sender.
The receiver follows the same protocol and removes the stuffed bit after the specified number of transitionless bits, but can use the stuffed bit to recover the sender's clock.
The advantage of bit stuffing is that only a bit (not a byte
) is inserted in the data stream, and that only when the content of the data stream fails to provide a timing signal to the receiver.
Thus very nearly 100% of the bits transported are useful data.
In contrast, asynchronous
transmission of data "throws away" a start bit and one or more stop bits for each data byte sent.