Bit stuffing is the insertion of one or more bits into a transmission unit as a way to provide signaling information to a receiver. The receiver knows how to detect and remove or disregard the stuffed bits.
For example, the timing or bit rate of T-carrier system signals is constantly synchronized between any terminal device and an adjacent repeater or between any two repeaters. The synchronization is achieved by detecting the transition in polarity for 1 bits in the data stream. (T-1 signalling uses bipolar signaling, where each successive bit with a value of 1 is represented by voltage with a reverse polarity from the previous bit. Bits with a value of 0 are represented by a no-voltage time slot.) If more than 15 bits in a row are sent with a 0 value, this "lull" in 1 bits that the system depends on for synchronization may be long enough for two end points to become out of synchronization. To handle this situation (the sequence of more than 15 0 bits), the signal is "stuffed" with a short, unique bit pattern (which includes some 1 bits) that is recognized as a synchronization pattern. The receiving end removes the stuffed bits and restores the bit stream to its original sequence.
In another example of bit stuffing, a standard HDLC packet begins and ends with 01111110. To make sure this sequence doesn't appear again before the end of the packet, a 0 is inserted after every five consecutive 1s.
Bit stuffing is defined by some to include bit padding, which is the addition of bits to a tranmission to make the transmission unit conform to a standard size, but is distinct from bit robbing, a type of in-band signaling.