Por el contrario, en el caso de la transmisión síncrona, donde un número en general variable de caracteres o bytes son transmitidos en cada trama, las formas de delimitación son mucho más sofisticadas y se utilizan señalizaciones con sincronía. El objetivo es evitar a toda costa un error de delimitación de trama de datos porque, para el caso concreto de una transmisión síncrona, implica la pérdida de grandes cantidades de bits como consecuencia de la des-sincronización entre el emisor y el receptor.
Lo mismo que ocurre en una transmisión de un carácter, para transmitir una trama de datos primero se envían una serie de pulsos de sincronismo que sirven para sincronizar los relojes. El uso de una serie de bits de sincronismo (en lugar de un único bit) no representa un overhead considerable ya que el ratio bits de datos / bits de sincronismo es muy alto. Por este motivo es corriente hablar de pulsos de sincronismo en plural (y en general al menos un carácter). Esto además suele hacer innecesario el uso de bits de parada ya que los bits de sincronismo suelen tener una duración suficiente para que el sistema pueda mantenerse sincronizado durante la transmisión de dos tramas consecutivas.
|
Como ya hemos dicho, la principal complicación a las que debe enfrentarse el diseñador de protocolos de transmisión serie síncrona a la hora de delimitar las tramas es que suelen ser de longitud variable. Ante esta situación, una de las técnicas más simples de “entramado” (framing en inglés) es el recuento de caracteres. Consiste en incluir al comienzo de cada trama un campo que indica cuántos caracteres contiene la trama. En la Figura D.9 tenemos un ejemplo sencillo donde se muestra cómo se delimitan dos tramas de datos. Aquí se puede apreciar además que es posible usar la propia técnica de recuento de caracteres para mantener constantemente sincronizados el emisor y el receptor: cuando no se transmiten datos se envían constantemente tramas vacías. Este tipo de técnicas se utilizan normalmente en enlaces punto-a-punto, donde la línea de transmisión es dedicada. En enlaces multipunto esta técnica de sincronización continua es imposible debido a que existen múltiples emisores potenciales que no tienen por qué estar sincronizados entre sí. Además, esto supondría que el enlace está siempre ocupado lo que es inviable en enlaces multipunto.
El principal inconveniente del recuento de caracteres radica en que es bastante sensible al ruido de transmisión puesto que una alteración en un bit del campo que indica la longitud de la trama afecta a su longitud, lo que genera inmediatamente un error de delimitación de trama. Para salir de esta situación, el receptor debe buscar los bytes de sincronización inicial que precede a toda trama de datos y recuperar así la sincronización. Un ejemplo de protocolo de transmisión síncrona que utiliza el recuento de caracteres es el DDCMP (Digital Data Communication Message Protocol) [21].
La alternativa al recuento de caracteres se llama inserción de delimitadores. La idea consiste en colocar delante y detrás de cada trama de datos un carácter especial (en general, una secuencia de bits especiales) que permitan identificar el comienzo y el fin de trama (recuérdese que las tramas no tienen por qué ir seguidas). Así, si se produce en error de delimitación de trama, la sincronización puede recuperarse buscando estos caracteres especiales a lo largo de las secuencias recibidas.
Una de las técnicas más simples (y más usadas) para la delimitación de tramas basada en la inserción de delimitadores es el relleno de caracteres (character stuffing en inglés) que se emplea en los protocolos serie síncronos BISYNC (BInary SYNchronous Communication) y PPP (Point to Point Protocol) [21]. El carácter que indica el comienzo de trama se denomina STX (Start of TeXt) y el que especifica el fin, ETX (End of TeXt). Hasta aquí todo perfecto, pero ¿qué ocurre si estos caracteres aparecen dentro de la trama de datos? Para evitar un error de delimitación de trama el emisor inserta delante de cualquiera de estos caracteres otro carácter especial llamado DLE (Data Link Escape) para indicar que la trama no acaba o comienza ahí. Entonces, ¿qué ocurre si el carácter DLE aparece dentro de la trama de datos? Para evitar que el receptor lo tome como un carácter especial el emisor lo precede de otro DLE. De esta forma, el receptor siempre que recibe un DLE lo ignora como dato y no atiende al significado de delimitación del siguiente carácter; sea lo que sea se trata de datos. En la Figura D.10 aparecen algunos ejemplos.
La principal desventaja del relleno de caracteres es que los datos deben organizarse en caracteres. Para evitar esta limitación existe una técnica semejante pero que delimita las tramas a nivel de bits. Por esto se llama relleno de bits o bit stuffing. En concreto, la técnica de relleno que vamos a estudiar es la que se utiliza en el protocolo HDLC (High-level Data Link Control) [21].
|
En HDLC, el comienzo y el fin de cada trama se delimita mediante la secuencia 0111 1110. Cuando esta aparece entre los datos, el emisor la rompe insertando un 0 antes del último 1. En otras palabras, lo que el emisor hace es buscar y romper cualquier secuencia de más de 5 unos consecutivos. Así, el receptor no tiene problema para delimitar la trama porque sólo tiene que encontrar 6 unos consecutivos. De nuevo, ¿qué ocurre si la secuencia 0111 110 aparece en los datos? Como el receptor va a considerar el último bit como un bit de relleno, el emisor lo precede de un bit a 0. Así la recepción es correcta. En la Figura D.11 hay algunos ejemplos más.
El relleno de bits tiene dos grandes ventajas. La primera de ellas es que el overhead introducido por el protocolo de transmisión para delimitar las tramas es menor que para el caso del relleno de caracteres: el relleno genera sólo un bit de redundancia frente a ocho. Sin embargo, la mayor ventaja proviene de que existe la seguridad de que en ningún instante de la transmisión se emiten más de 6 unos consecutivos. Si repasamos las técnicas de señalización anteriormente presentadas vemos que una señalización NRZI donde en lugar de bascular con los unos basculemos con los ceros, o una señalización AMI, son especialmente convenientes para ser utilizadas con el relleno de bits ya que los problemas de sincronización quedan automáticamente resueltos.