¿Dónde está la implementación del relleno de bytes y el relleno de bits?

A2A

En el protocolo HDLC ( Control de enlace de datos de alto nivel ), para la transmisión de una ‘trama’ (es decir, a través de Ethernet), es necesario insertar bits específicos para evitar transmitir la secuencia de terminación (la bandera de la trama) dentro de la carga útil.

Esto se debe a que la ‘ bandera ‘ de inicio y final de una trama es el número hexadecimal 7E ( 01111110 bin), si en mi carga útil para transmitir tengo un 7E, ¡sin esta técnica podría interpretarse como una bandera!
Cada cuadro comienza y termina con esa bandera.

Relleno de bits : inserte cada 5 ‘unos’ atascados (..11111 ..) un ‘cero’ (..111110 ..).
Esto porque si tengo en una transmisión: 0111111 y luego un 0 (en la carga útil), podría ser interpretado por el receptor como una bandera de terminación. Al usar relleno de bits tengo 011111 0 10.
El receptor realizará un desapilado para eliminar los ceros adicionales.
Obviamente, el relleno se realiza solo en la carga útil, y no en las banderas, que todavía tienen una secuencia de 6 unidades.

Relleno de bytes : es similar pero se usa especialmente en la comunicación en serie, donde tengo ranuras de 8 bits, por lo que no puedo insertar más bits (no podría ser 011111010 porque es una secuencia de 9 bits> de una ranura de bytes).
En este caso, el relleno no está en un solo bit, sino en un byte completo (relleno de octeto).
El octeto delimitador de bandera es en este caso 01111110 (7E hexadecimal), pero cuando hay un octeto de carga igual a eso, se inserta (rellena) un nuevo octeto antes de este llamado ‘control escape’ (01111101 = 7D hex) , y en el siguiente octeto se cambia el tercer bit.
Ejemplo: la secuencia 01111110 se transmite como 01111101 01 0 11110.

El más común es el uso de relleno de bits, pero un contexto específico podría utilizar el relleno de bytes.

El primero se usa especialmente en un contexto síncrono (ETH), donde el transmisor y el receptor pueden comunicarse en tiempo real (mediante sincronización de reloj).
El segundo se usa especialmente en un contexto asíncrono , como PPP o UART, en el que las interfaces de comunicación no están sincronizadas por una señal de reloj común, sino que el flujo de datos en sí contiene información de sincronización en forma de señales de inicio y parada (octetos).

EDITAR: se corrigieron algunos errores de escritura.