Bit stuffing

Since this is a general rule the receiver doesn't need extra information about the location of the stuffing bits in order to do the de-stuffing.

This is done to create additional signal transitions to ensure reliable reception or to escape special reserved code words such as frame sync sequences when the data happens to contain them.

It was popularized by IBM's SDLC (later renamed HDLC), and is also used in Low- and full-speed USB.

After a long sequence of 1 bits there would be no transitions in the transmitted data, and it would be possible for the transmitter and receiver clocks to lose synchronisation.

[1] The main disadvantage of bit-stuffing is that the code rate is unpredictable; it depends on the data being transmitted.

Bit stuffing in CAN after five equal bits.