Universidad Tecnológica Nacional Facultad Regional Tucumán Ingeniería en Sistemas de Información Cátedra: Comunicaciones Temas: Control de errores.

Cifra de error. Métodos de detección y corrección de errores. Año de revisión: 2009 Control de errores Un sistema de comunicación está expuesto a que ocurran errores durante la transmisión e interpretación de los datos, en especial por problemas de ruido que afectan a las diversas partes del sistema, principalmente a los canales de transmisión. Es necesario entonces, desarrollar e implementar procedimientos para el control de estos errores. El control de errores consta de dos partes: la detección de errores y la corrección de errores. La forma de controlar los errores consiste en enviar datos adicionales al contenido del mensaje (redundancia). Aunque se logra una mayor protección de los datos del mensaje contra errores, mayor es la cantidad de bits adicionales que no llevan información y la eficiencia del proceso de transmisión disminuye. Así por ejemplo, en la transmisión sincrónica debe existir un compromiso entre el tamaño de los bloques de cada mensaje y la eficiencia de la transmisión. Cuando más pequeños sean los bloques, menos probable será la necesidad de retransmitirlos, pero la eficiencia de la transmisión disminuye apreciablemente. Por otra parte, cuando los bloques de mensajes son largos, con el objeto de aumentar la eficiencia, una mayor proporción de estos bloques tendrán mayor probabilidad de errores y será necesario retransmitirlos, lo que a largo plazo puede disminuir aún más su eficiencia. En las transmisiones por la red telefónica conmutada, la tasa de error varía según la hora del día. Por ese motivo, cuando la tasa de error se eleva en exceso, lo más razonable es disminuir la velocidad de modulación. Tasa de errores: La tasa de errores sirve para medir la cifra de errores. Relaciona la cantidad de bits recibidos con error en el receptor con la cantidad total de bits transmitidos en un determinado tiempo o sesión. Se la denomina BER (Bit Error Rate) y su valor es típico para cada medio de transmisión en particular.

BER =

Cantidad _ de _ bit _ erróneos _ en _ Tiempo _ unitario Cantidad _ total _ de _ bit _ transmitidos _ en _ Tiempo _ unitario

Ejemplo: Un computador recibe desde una fuente remota un total de 2 Mb que corresponden a un archivo y a los datos de control para su transmisión. Si durante la transmisión se produjeron 20 bits erróneos, determinar la tasa de errores de dicha transmisión.

BER =

20bits = 10−5 2.106 bits

En una red telefónica, este valor es la “tasa típica de la red” y significa que se puede prever que se producirá un error de un bit en 100000 bits trasmitidos. En la actualidad, las redes telefónicas han mejorado la calidad de sus medios de transmisión y tienen tasas típicas de 10 −6 BER . En las redes de área local, donde las distancias son más cortas y la construcción de las redes son más exigentes y con pares trenzados de cobre, las tasas de errores son

1

Métodos de detección y corrección de errores • • • • • • • • • Vertical (VRC) Longitudinal (LRC) Bidimensional o de doble paridad (LRC/VRC) Cíclica o entrelazada Código de redundancia cíclica (CRC) Hamming Hagelbarger Bose Chaudhurí Corrección de errores hacia delante (FEC) Detección Control de paridad Códigos polinómicos Códigos Auto correctores Corrección Técnicas 2 . Otra metodología empleada es la prueba de eco. • Errores en ráfagas: son aquellos que afectan a varios bits consecutivos y ocurren en períodos indeterminados de tiempo. no es necesario que los errores sean tenidos en cuenta.mucho menores y del orden de 10 −8 BER a 10 −9 BER . no tiene la eficiencia de otros métodos más refinados. Además incluye metodologías para detectarlos y corregirlos. En esta última estación se compara la información enviada con la transmitida desde el receptor. los errores se pueden clasificar en los siguientes tipos: • Errores simples o aislados: son aquellos que afectan a un solo bit cada vez y. como mínimo. la tasa de error pude alcanzar hasta 10 −11 BER . se retransmite de vuelta al transmisor de donde provino. si bien da cierto grado de protección. Si se emplean fibras ópticas. si el error se produce en el viaje de retorno. además son independientes entre sí en cuanto al momento de ocurrencia. Se usa en líneas de baja velocidad y. Este método desperdicia capacidad de transmisión pues. Tasa de error y velocidad de transmisión para diferentes tipos de canales Tipo de canal Línea de grado voz Velocidad bps 2400 9600 14400 28800 Línea digital tecnología ATM 155 Mbps a 622 Mbps Línea digital “Frame Relay” 2 Mbps Tasa de errores BER 1:50Kb 1:20Kb 1:10Kb 1:10Kb a 1:100Kb 1:100Mb a 1:1Gb 1:10Mb a 1:100Mb Consideraciones generales El control de errores implica técnicas de diseño. Esto parece algo trivial. • Errores agrupados: son aquellos que ocurren en tandas sucesivas de una cierta duración y que no afectan necesariamente a varios bits seguidos. y en alguna oportunidad muchas veces más. fabricación de equipos y enlaces de transmisión de datos que reduzcan el porcentaje de errores. Una metodología posible es no tomarlos en cuenta. un mensaje se transmite dos veces. por el tipo de información a transmitir y el uso que la misma recibirá. Tipos de errores Según su distribución en el tiempo. Esta metodología reduce los costos aumenta el procesamiento total. Además. pero no lo es tanto si se considera que en muchos casos. es una pérdida innecesaria de tiempo. que consiste en que cada vez que se recibe un carácter o una unidad menor de información.

Para la verificación de la paridad existen cuatro métodos posibles: 3 . • Codificación de cuenta exacta. para que sea un número impar (paridad impar) o un número par (paridad par). un solo bit (bit de paridad) se agrega a cada caracter para forzar el total de números unos en el caracter. Mientras que si usamos paridad par. incluyendo el bit de paridad. Si se utiliza paridad impar. Con la paridad. debe mantenerse constante. no contando el bit de paridad. Un ejemplo es la letra "C" del código ASCII que es 43 hex o P1000011. con la diferencia que el control de la paridad se realiza en cada una de las posiciones correspondientes de los bits del grupo de caracteres de datos con lo que se forma un bloque de bits de paridad o carácter de paridad que se agregan como bits redundantes a la cadena de caracteres de datos para el control. Con el VRC. así mantenemos el total de unos en tres. Se usa con códigos de 8 bits como EBCDIC o códigos de 7 bits como el ASCII. pero previene que los errores detectados no ocurran. el número de unos en cada caracter. Detección de errores mediante control de la paridad Se basa en añadir a la secuencia de bits de información transmitidos. Estos bits de control no transportan información alguna. se detectan el 99. Hay 3 unos en el código. otros bits de control adicionales. antes de la transmisión. solamente se indica que un error ha ocurrido. el bit P se hace 0. el bit P se hace 1. Es el esquema de detección de error más usado para los sistemas de comunicación de datos y se usa con chequeo de redundancia vertical y horizontal. Si el mismo caracter no se recibe igual dos veces sucesivamente. un número impar. se descarta el cociente y se toman los bits del resto de la división que se agregan a la trama genérica para su transmisión y control. obtenidos del resto de una división no convencional. cuando no se utiliza la paridad (8º bit). • Código de redundancia cíclica (CRC): Es el esquema más confiable para la detección de errores.95 % de todos los errores de transmisión de una cadena de bits. El propósito de la detección de errores no es impedir que éstos ocurran. Las técnicas usadas para la detección de errores no identifican cual bit es erróneo. ha ocurrido error en la transmisión. siendo el número total de unos igual a cuatro que es un número par.especiales de transmisión • Técnicas especiales de repetición automática (ARQ) El proceso de monitorear la información recibida y determinar cuando un error de transmisión ha ocurrido se denomina control del error. • Chequeo de redundancia vertical y horizontal (VRC y LRC): La paridad VRC es un esquema de detección de errores que usa para determinar si un error de transmisión ha ocurrido dentro de un caracter. sino que solamente se utilizan para la verificación de la paridad de secuencia de bits de datos. Involucra transmitir cada caracter dos veces. Se puede utilizar también la paridad VRC y LRC combinada o matricial para determinar en qué posición de la cadena de datos se encuentra el bit erróneo. donde P representa el bit de paridad. Puede usarse paridad par o impar. cada caracter tiene un bit de paridad agregado a él. La paridad LRC denominada longitudinal u horizontal utiliza el mismo esquema anterior. Con este procedimiento. • Paridad. El procedimiento se basa en la inclusión de bits redundantes que se agregan a la cadena de bits de datos (trama genérica). Las técnicas de detección de errores más comunes son: • Redundancia. Con la codificación de cuenta exacta. Se divide el polinomio dividendo (trama genérica de bits) por un polinomio divisor normalizado de bits.

que se produce cuando hay un doble error en un byte que afecta simultáneamente a dos unos. Si son iguales los bits de paridad. bit 1 y 3 (doble error) con el bit de paridad par calculado: 0 1101010 Control de paridad longitudinal (LRC) La paridad LRC (Longitudinal Redundancy Check) denominada longitudinal u horizontal utiliza el mismo esquema anterior. Al recibirse en el receptor estos 8 bits. la paridad resultante del carácter será correcta. pero evidentemente el dato transmitido es erróneo. se recalcula nuevamente la paridad y se verifica con el criterio utilizado en el transmisor (paridad par o impar). se efectúa el cálculo del bit de paridad correspondiente a cada carácter y se transmite carácter por carácter. y su uso está relacionado fundamentalmente con el código ASCII. se da por aceptado el bloque de caracteres. recalcula la paridad de los bytes de datos y la BCC. El receptor. El transmisor realiza el cálculo de la paridad en cada carácter y luego para todo el bloque generando un BCC que se transmite en esta cadena de bytes. cuando recibe esta cadena. Si los BCC son iguales. transformándolos en cero. se aplica a cada carácter o byte. D1 1 1 1 0 0 1 0 0 D2 1 1 1 0 0 0 0 1 D3 0 0 0 0 0 1 1 0 D4 1 1 1 0 1 1 1 0 D5 0 1 0 1 0 1 0 1 BCC 1 0 1 1 1 0 0 0 BP1 BP2 BP3 BP4 BP5 BP6 BP7 BPV Control de paridad bidimensional (VRC/LRC) Se puede utilizar también el control de la paridad VRC y LRC en forma combinada o 4 . • Control de paridad bidimensional (LCR/VCR). Consiste básicamente en añadir un bit adicional al conjunto de 7 bits que constituyen el carácter en el código mencionado. se da por aceptado que el carácter llegó sin error. más conocido por su expresión en inglés Block Check Carácter (BCC). En el transmisor. con la diferencia que el control de la paridad se realiza en cada una de las posiciones correspondientes de los bits del grupo de caracteres de datos con lo que se forma un bloque de bits de paridad o carácter de paridad que se agregan como bits redundantes a la cadena de caracteres de datos para el control. o viceversa. Al finalizar el bloque de N caracteres. • Control de paridad longitudinal (LCR). caso contrario.• Control de paridad vertical (VCR). • Control de paridad entrelazada o cícilica. se notifica por algún método al transmisor del error. y si son diferentes. se notifica por algún método al transmisor del error ocurrido en la cadena. se transmitirá un carácter completo denominado Carácter de Control del Bloque. Ejemplo: Carácter transmitido con el bit de paridad par: 0 1101111 Carácter recibido con doble inversión. En cualquiera de estos métodos la paridad puede ser par o impar. El grave inconveniente de este método es que no se puede detectar la doble inversión de bits. El Código ASCII se forma con 7 bits de datos desde 0000000 al 1111111 (del 0 al 7F en hexadecimal) más el bit de paridad. Si esto ocurre. Control de la paridad vertical (VRC) Conocido como VRC (Vertical Redundancy Check).

conocido también como polinomial. Ejemplo: Bytes transmitidos: D1 0 B1 1 B2 1 B3 0 B4 0 B5 0 B6 0 B7 VRC 0 D2 0 1 0 1 1 1 1 1 D3 0 1 0 0 0 1 1 1 D4 1 1 0 1 0 1 0 0 D5 0 0 0 0 0 0 0 0 D6 1 1 1 1 1 1 1 1 D7 0 1 0 1 0 1 0 1 D8 1 1 1 1 0 0 0 0 LRC 1 1 1 1 0 1 1 0 Bytes recibidos con un bit de error en la posición de la fila 4. El primer bit de paridad proporciona la paridad de los bits primero. tercero y quinto. se verifica un error VRC en el dato Nº 6 y un error LRC en la posición del bit Nº 4 que sirve para determinar en forma matricial que hay un error en esa posición de la cadena transmitida. Básicamente. Este método requiere de dos bits adicionales para el control de la paridad. Carácter transmitido: 010101 Generación de la paridad cíclica: X 0 1 X Bits X 0 1 X de datos X 0 1 X 0 BP1 1 BP2 Control de errores por el método de redundancia cíclica o polinomial (CRC) Conceptos generales del procedimiento Este método. Control de paridad entrelazada o cíclica Es un procedimiento que proporciona un nivel de detección de los errores de mayor calidad que el método VRC y menor que el LRC. 5 . En la figura siguiente se puede observar una palabra de seis bits de información y un esquema que indica gráficamente la forma en que trabaja este procedimiento. mientras que el segundo proporciona la paridad de los bits segundo. columna 6 de la tabla de bits: D1 0 B1 1 B2 1 B3 0 B4 0 B5 0 B6 0 B7 VRC 0 D2 0 1 0 1 1 1 1 1 D3 0 1 0 0 0 1 1 1 D4 1 1 0 1 0 1 0 0 D5 0 0 0 0 0 0 0 0 D6 1 1 1 0 1 1 1 0 D7 0 1 0 1 0 1 0 1 D8 1 1 1 1 0 0 0 0 LRC 1 1 1 0 0 1 1 0 Al efectuar el control de la paridad VRC y LRC en el receptor. permite la verificación de todos los bits del mensaje mediante la utilización de un algoritmo matemático.matricial para determinar en qué posición de la cadena de datos se encuentra el bit erróneo. cuarto y sexto.

se interpreta que el mensaje llego sin error. Definimos un polinomio G(x) de grado r (generador). 6. 8. Forma de ejecutar el procedimiento: 1. el receptor vuelve a efectuar la división por el polinomio conocido. 7. 2. Este último se transmite con la secuencia de bits sobre la que se quiere efectuar el control de errores. Para una mayor comprensión de lo expuesto. donde C(x) es el cociente de la división y que no se utiliza o se descarta. Los pasos que se realizan son: 1. se notifica al transmisor del error mediante otro procedimiento. 6 . 4. 5. ni de préstamo para la resta. El grado n del polinomio M(x) debe ser: n>>r. toman la forma de X elevado a una potencia de la posición del bit dentro de la secuencia a transmitir. grado del polinomio resto. caso contrario. el mensaje 11011011 puede ser expresado como un polinomio de grado n = 7 porque tiene 8 términos desde el grado cero: 1x 7 + 1x 6 + 0 x 5 + 1x 4 + 1x 3 + 0 x 2 + 1x1 + 1x 0 = x 7 + x 6 + x 4 + x 3 + x1 + 1 Los términos correspondientes a los bits de valor cero se anulan. 3.consiste en dividir el mensaje de información que se quiere enviar. mediante el método de módulo 2. y si el resto de la división es cero. Ejemplo de suma: 11101001 + 10011100 01110101 Ejemplo de resta: 11010001 -10010110 01000111 Como ejemplo. Estas operaciones son realizadas con circuitos digitales convencionales que ejecutan la función OR EXCLUSIVA. M(x) X r / G(x) = C(x) + R(x). Como resultado de esta división. Definimos un polinomio auxiliar de valor X r de grado r más alto que tenga G(x). Se forma un polinomio que contenga (r+n) bits. Se divide el nuevo polinomio formado de la forma M(x) X r por el polinomio generador G(x). de la forma M(x) X r (recordar que M(x) es de grado n). Éste resulta de restar. De dicha división se obtendrá un polinomio resto R(x) que siempre debe tener un número de bits igual o menor que r. Cuando se recibe esta trama generadora. junto con el resto de la división en el transmisor y enviarlo al receptor. que es el polinomio a transmitir. En el receptor se reciben el mensaje a controlar junto con el polinomio del resto de la división. se obtendrán otros dos polinomios. El método se basa en la detección de errores por medio de operaciones aritméticas con polinomios que utilizan la técnica conocida como de módulo 2. los bits correspondientes al polinomio M(x) X r y del polinomio resto R(x). denominados cociente y resto. y los bits de valor uno. se muestra una operación de suma y luego otra de resta. en la que no hay términos de acarreo para la suma. por un polinomio conocido. se procede a obtener un polinomio que denominaremos T(x). Definimos un polinomio M(x) de grado n con los bits del mensaje. Finalmente.

2) La trama de bits T(x) enviada por el transmisor. Polinomio CRC-12: está indicado para caracteres codificados con 6 bits. En los tres polinomios. Determinar: 1) El resto de la división R(x). Polinomios generadores En particular. es decir: M(x) = x9 + x8 + x6 + x4 + x3 + x +1 1. En general. Para determinar el resto de la división. Sea un mensaje 1101011011 y un polinomio generador de la forma G ( x) = x 4 + x + 1 . Como se puede observar. Si se introducen errores en la transmisión se recibirá: T(x) = T(x) + E(x). donde E(x) será la componente de error y entonces el polinomio recibido deja de ser divisible por el polinomio generador. T(x) = M(x) X r + R(x) 3. Resolución: 1.998 para ráfagas mayores a 17 bits. daremos un ejemplo de detección de errores por CRC.2. ha normalizado el siguiente polinomio generador: P( x) = x 16 + x 12 + x 5 + 1 Su rendimiento es igual al anterior. 99. el polinomio T(x) será siempre divisible por el polinomio generador G(x). tres polinomios se han convertido en normas usadas internacionalmente.997 % para ráfagas de hasta 17 bits. resulta muy poco probable que E(x) no sea detectable. sobre la base de pruebas prácticas con diversas opciones. Polinomio CRC-16: se usa para caracteres codificados con 8 bits y cuyo polinomio es el siguiente: P( x) = x 16 + x 15 + x 2 + 1 Este polinomio generador es capaz de detectar entre otros: *Errores simples: 100% *Errores dobles: 100% *Errores impares: 100% *Errores en ráfagas: 100% para ráfagas menores a 17 bits. 7 .1 Definimos un polinomio M(x) de grado n con los bits del mensaje. 4. primero debemos efectuar los siguientes pasos: 1. el término (x+1) está contenido como factor primo. Polinomio normalizado por la UIT-T: el CCITT.3 Definimos el polinomio auxiliar X r como: x4. siempre que este último sea bien escogido (por ello el uso de estos polinomios normalizados). Su forma es la siguiente: P( x) = x 12 + x 11 + x 3 + x 2 + 1 Para finalizar con este método.2 Definimos los bits del polinomio G ( x) = x 4 + x + 1 G(x) de grado r como: 10011 1. 99. 3) La verificación del error en el receptor.

Pero si el mensaje no se puede descifrar. Si un caracter se recibe con error. es decir. en la terminal de recepción. es necesario la retransmisión. 8 . un caracter único que es indefinido por el código de caracteres.5 Definimos los bits del polinomio M ( x) x r = x 13 + x 12 + x 10 + x 8 + x 7 + x 5 + x 4 como: 11010110110000 De esta manera. significa que el mensaje ha llegado sin error. Si por ejemplo. sin embargo. Se diseña para usarse en un ambiente humano. se mostraría como "ComunicacióÞ".4 Definimos el polinomio M ( x) x r = ( x 9 + x 8 + x 6 + x 4 + x 3 + x + 1) x 4 . a partir de la verificación de la existencia de los mimos. en vez de revertirse a un nivel superior de corrección de errores o mostrar el caracter erróneo. el resto sería diferente de cero. verificando el residuo de la división. es decir que vale: 1 1 1 0 2. y todo esto es llevado a cabo por la persona que está a cargo del sistema. Un operador puede discernir el mensaje correcto por inspección. ya tenemos los bits del dividendo y del divisor para efectuar la división no convencional mediante una función or exclusivo de módulo 2 para la resta en el dividendo hasta obtener el resto de la división: 11010110110000/10011 10011 1 1 0 0 0 0 1 0 1 0 _ no se tiene en cuenta 010011 10011 0000010110 10011 0010100 10011 0 0 1 1 1 0 _ resto o residuo El resto de la división se trunca en los últimos 4 bits. si se hubiera producido un error en cualquiera de los bits de la trama T(x). donde los cuatro últimos ceros de la trama generadora son ocupados por el resto de la división. El control del error en el receptor se realiza dividiendo T(x) / G(x). y no se necesita la retransmisión. 3. M ( x) x r = x 13 + x 12 + x 10 + x 8 + x 7 + x 5 + x 4 1. La trama T(x) enviada por transmisor vale: 1 1 0 1 0 1 1 0 1 1 1 1 1 0.1. el mensaje "Comunicación" se recibe con un error en el último caracter. Los métodos más comunes para la corrección de errores son: Sustitución de símbolos. Corrección de errores Hasta aquí hemos considerado solamente la detección de los errores. 11010110111110/10011 10011 1100001010 010011 10011 0000010111 10011 0010011 10011 0 0 0 0 0 0 _ resto Como el resto de la división da cero para todos los bits del residuo. se sustituye por el caracter malo. se pueden adoptar dos posturas diferentes: corregirlos o no tomarlos en cuenta. Se analizan los datos recibidos y se toman decisiones sobre su integridad. Caso contrario.

que significa petición automática para retransmisión. hasta que sean recibidos libre de errores.Retransmisión (ARQ). Técnicas de corrección de errores Consideraciones generales: Existen dos estrategias fundamentales para la corrección de errores: _ Corrección hacia delante. se produce la paradoja de que aumentando la velocidad de modulación disminuye la velocidad real de transferencia de datos. respecto de las que el canal de comunicaciones realmente puede soportar. Se puede apreciar claramente que cuando se eligen velocidades muy altas. automáticamente del lado receptor. Imaginemos. El receptor realiza la decodificación. Es volver a enviar un mensaje. por ejemplo. Es el único esquema de corrección del error que detecta y corrige los errores de transmisión. como se ha visto anteriormente. Seguimiento de corrección del error hacia delante (FEC). 9 . la mayoría de las técnicas que normalmente se emplean. La terminal de recepción automáticamente pide la retransmisión de todo el mensaje mediante un aviso al transmisor. se agregan bits redundantes al mensaje y se lo codifica antes de la transmisión. que se basa en la inclusión de bits redundantes colocados en determinadas posiciones de una cadena de bits de datos para formar un código que permite el control para la detección y la corrección de un bit erróneo en una cadena de bits transmitidos. Dicho en otras palabras. cuando se recibe una señal de error. es la que más interesa al administrador del sistema informático. Aunque estos métodos hacen jnnecesaria la retransmisión. llegan a corregir el 99. De esto se desprende la importancia de una buena elección de la velocidad de modulación en el caso de las transmisiones por canales analógicos mediante módems de datos. una aplicación bancaria y nos daremos cuenta de los daños que se podrían producir si no se resuelve adecuadamente la corrección de los errores. En algunas aplicaciones. _ Corrección hacia atrás. De ahí la llamada corrección hacia atrás. no son neutros al usuario.99% de los mismos. pues para posibilitar la corrección en destino deben enviar un número de bits varias veces superior al que se necesita cuando se utilizan códigos convencionales. Corrección hacia delante: Este técnica se denomina también FEC (Forward Error Correction). se basa en el uso de códigos autocorrectores que se diseñan sobre la base de sistemas de codificación redundante y corrigen los errores detectados en la misma estación que recibe el bloque de datos. Para la detección y corrección de errores de más de un bit en una cadena de bits transmitidos. Uno de los tantos métodos conocidos es a través de la codificación de Hamming. Corrección hacia atrás: Consiste en el uso de sistemas de detección de errores. La retransmisión también se llama ARQ. que en última instancia. puede producir problemas graves. Con FEC. sin pedir retransmisión. Si bien resulta casi imposible corregir la totalidad de los errores. Cuando se detecta un error en el equipo receptor. los errores provocan una pérdida de tiempo mayor que la ganancia que presumiblemente se iba a obtener con una velocidad superior. la no corrección de errores. control del error y corrección automática del o los bits erróneos. éste solicita al equipo transmisor la repetición del bloque de datos transmitidos. De ahí la importancia de este tema en el diseño de cualquier sistema. Este sistema implica la retransmisión de los datos tantas veces como sea necesario. existen otros códigos mas complejos.

En caso de que la comprobación sea satisfactoria envía un símbolo de reconocimiento positivo (ACK). resulta ser el más efectivo y. Una vez detectada la existencia de un error (por intermedio del o los bits de paridad o por códigos de redundancia cíclica). Requerimiento automático de repetición: También conocido como ARQ (Automatic Retransmissión Request). Este método de detección del error y su retransmisión es la manera menos costosa y más sencilla de reducir errores en la transmisión. Corrección de errores mediante el uso de Técnicas Especiales de Transmisión Retransmisión de los datos erróneos: Diversos dispositivos de las rede de transmisión de datos. siempre que este método pueda ser usado. El transmisor debe almacenar los bloques transmitidos en un buffer adecuado hasta que reciba confirmación. la fuente espera que la estación receptora le envíe un nuevo requerimiento para la transmisión de un nuevo bloque de datos. luego. Con esto se evita tener que disponer de un buffer de emisión demasiado grande y al mismo tiempo da la posibilidad al receptor de controlar parcialmente su mecanismo de recepción y confirmación. Las desventajas son: _ El enlace es factible solamente entre dos estaciones al mismo tiempo. _ El sistema ARQ es más lento que el de Corrección de Errores hacia delante (FEC). En caso de detectarse un error. Normalmente. Cuando el número de bloques de información que no han recibido confirmación supera el valor de la ventana de emisión. suponiendo que el enlace es posible. La mayor ventaja de este método es que prácticamente garantiza una transmisión de datos. piden su retransmisión inmediata. poseen capacidad para detectar errores y cuando los detectan. 10 . el proceso puede llegar a repetirse hasta un determinado número de veces. Si el CRC calculado en el receptor detecta errores envía un símbolo de reconocimiento negativo (NAK) al transmisor. se utiliza solamente entre dos estaciones. La petición automática de retransmisión (ARQ) es una técnica basada en comprobar si los datos recibidos contienen errores y solicitar de forma automática una repetición de la transmisión.Sin embargo. requerirá la retransmisión del bloque anterior. en general 32. aún cuando no existan errores que corregir. por lo tanto. y será mucho más lento a medida que se incremente el número de errores. Cada bloque tiene 8 caracteres de 7 bits cada uno. enviando en algunas ocasiones mensajes de interrogación. Este sistema se suele denominar control por medio del eco o echo checking. se emplean para la transmisión de bloques de más de 512 bytes. Puede utilizarse un código CRC para determinar si los datos del bloque contienen errores. El sistema consiste en la transmisión de pequeños bloques de datos. el método consiste en pedir la retransmisión del carácter o grupos de caracteres hacia el receptor. el más usado. Sin embargo. libre de errores. ya sea por razones de seguridad o por necesidades de la misma operación del sistema informático asociado. La corrección por retransmisión requiere una tecnología sencilla y poca capacidad de memoria. Si el receptor hubiera detectado un error. pasando luego el equipo a la posición de reencendido (restart). En particular. el número de bloques de información o tramas que se pueden encontrar sin confirmación en cualquier instante está limitado por un valor denominado en algunos protocolos “ancho de la ventana de emisión”. en muchas aplicaciones es necesario el uso de este tipo de código porque no resulta posible o conveniente pedir la retransmisión de los datos. _ La estación receptora debe tener en operación un equipo transmisor para acusar recibo y solicitar la retransmisión. el emisor deja de enviar datos y queda a la espera de que el receptor confirme los datos pendientes. pero sin enviar datos.

La siguiente figura muestra los tres métodos básicos de ARQ. En estos protocolos. los sistemas ARQ pueden verse saturados por las peticiones reiteradas de retransmisión. interrumpiendo su actividad en caso de no recibir respuesta.Existen tres formas básicas de ARQ: 1. La mayor desventaja de este método son los largos períodos en los que el canal permanece inactivo pero tiene la ventaja de que el protocolo es sencillo. 2. si se guardan 5 bloques. Envío continuo selectivo: permiten que el transmisor envíe datos hasta que se recibe un NAK. ante la recepción de un NAK. El protocolo SDLC especifica que pueden emitirse hasta 7 bloques de información antes de que se reciba una señal de confirmación. Transmisor 1 2 3 3 4 4 5 6 ACK Receptor 1 2 ACK 3 Error NAK 3 ACK 4 Error NAK 4 ACK 5 ACK 6 ACK ENVIO Y ESPERA Transmisor 1 2 3 4 5 3 4 5 6 7 8 6 7 8 9 10 ACK NAK ACK NAK ACK Receptor 1 2 3 Error 4 5 3 4 5 6 Error 7 8 6 7 8 9 10 ENVIO CONTINUO NO SELECTIVO Transmisor 1 2 3 4 5 3 6 7 8 9 10 8 11 12 13 14 ACK ACK NAK ACK ACK ACK ACK ACK NAK ACK ACK ACK ACK ACK Receptor 1 2 3 Error 4 5 3 6 7 8 Error 9 10 8 11 12 13 14 ENVIO CONTINUO SELECTIVO 11 . Si las tasas de error son elevadas. 7. Envío continuo no selectivo: se lo denomina también “retroceda n” necesitan emplear un canal full-dúplex para enviar por un canal los bloques al receptor y por el otro de retorno. 3. Las técnicas ARQ no necesitan que se añada tanta redundancia de bits a los distintos bloques de datos como sucede con los códigos auto correctores ya que permiten al emisor que controle la comunicación. En caso de que se reciba un NAK. por ejemplo. Más información leer bibliografía recomendada. Solamente el bloque erróneo que se identifica al recibirse la señal NAK. el bloque original se retransmite y en caso de que se reciba un ACK se continúa con el siguiente bloque. El transmisor debe guardar previamente los N bloques en un buffer para poder retransmitirlos cuando sea necesario. Envío y espera: el sistema espera la confirmación por parte del receptor de cada uno de los bloques. es el que se retransmite. de modo que N puede valer como máximo. mandar simultáneamente las señales ACK y NAK de los bloques que se están recibiendo. el transmisor registra el suceso y busca en el buffer el número previo al suceso y retransmite el bloque erróneo juntamente con los bloques restantes aunque no se registren errores hasta que se reciba un ACK de fin de bloque.

y además ubicar la posición del bit en donde se ha producido dicho error.Corrección de errores hacia delante: También conocido como FEC (Forward Error Correction). Para poder realizar esta última operación. Mensaje Dx ================================================== * * 1 * 2 * 3 1 4 2 5 3 6 4 7 5 8 6 9 * ================================================ Mensaje Rx Los asteriscos representan los caracteres anteriores a la serie transmitida en el ejemplo. • Menor tiempo de transmisión. Este método se conoce en telecomunicaciones como transmisión por difusión (Transmisión Broadcasting). La estación receptora examinará primero la serie Dx y luego la serie Rx. Este procedimiento agrega suficiente redundancia para que el receptor pueda detectar la presencia de un error. Este método se usa en ciertas aplicaciones especiales. la estación receptora tiene dos oportunidades de recibir correctamente cada carácter. Para un mismo carácter pueden suceder los casos indicados en esta otra figura: Posibles operaciones del FEC Caracteres Serie Dx Serie Rx Sin error Sin error Se ordena imprimir el caracter Con error Sin error Se ordena imprimir el carácter Sin error Con error Se ordena imprimir el carácter Con error Con error Se ordena imprimir un carácter especial que indica error en la recepción Las ventajas del sistema FEC. las cuales. Consecuentemente. con respecto al sistema ARQ. serán las únicas habilitadas para recibir el mensaje. la cantidad de bits que es necesario añadir es mucho mayor que la que se necesitaría para poder detectar la presencia de errores. consecuentemente. el transmisor enviará el mensaje tal como se indica. en el caso de canales unidireccionales sin retorno o en enlaces satelitales en los que se procede a transmitir muchos mensajes en una sola dirección debido a que el tiempo de retardo de las señales es muy alto. se emplea en los casos en que hay más de una estación receptora y no se necesitan réplicas por parte de estas últimas. existe una variación del sistema de Corrección hacia delante denominada SEL/FEC (Selective FEC). como por ejemplo. permitiendo que cada mensaje se envíe dos veces. Por ejemplo si se desean enviar caracteres del 1 al 9 como los indicados en la figura. intercalando los caracteres en diferentes instantes. Funciona en el modo denominado diversidad de tiempo (Time Diversity). por ejemplo. No obstante. por medio de la cual la estación transmisora emite un código correspondiente sólo a determinadas estaciones receptoras. 12 . • No requiere el empleo de transmisores en las estaciones receptoras. son los siguientes: • Se pueden transmitir mensajes a varias estaciones receptoras. También es aplicable en los sistemas digitales que trabajan en tiempo real. aquellos que actúan sobre un proceso industrial a partir de los valores de ciertas variables del proceso.

que corresponde a la letra B en el Alfabeto Internacional Nº 5 de la UIT-T. aumentar las distancias de Hamming mínima entre símbolos codificados significa codificar menos símbolos con igual número de bits. que permite detectar un error pero no corregirlo. al doble que represente un carácter o aún a una cantidad mucho mayor que los necesarios para transmitir un carácter. Como se puede observar en este ejemplo. una vez detectados. Para interpretar el funcionamiento de estos códigos. S4 y S5 correspondientes a otras letras del mismo alfabeto. a fin de recibir una confirmación de lo transmitido en sentido inverso al cabo de un cierto número de mensajes. cuanto mayor sea la distancia mínima entre los bits de los símbolos de un código dado. recomendamos leer la bibliografía recomendada al final de este artículo. En efecto. y sean también las secuencias S2. La distancia de Hamming está relacionada con la probabilidad de error. también llamados códigos de acción progresiva. con esta distancia mínima para construir un código dado. S3. Distancia de Hamming: Es el número de bits en que difieren dos secuencias binarias. entre otros. se ha tomado como referencia la secuencia S1. Si comparamos bit a bit de igual peso. debemos analizar previamente el concepto denominado “Distancia de Hamming”. La redundancia se extiende desde unos pocos bits hasta llegar.En este último caso también se usa un método combinado ARQ/FEC. de la misma longitud. 13 . menor será la probabilidad de cometer errores. la secuencia S1. la alteración de un solo bit da una combinación que no tiene asignado un símbolo válido. Para H=1. S1 y S2. la Distancia de Hamming estará dada por la cantidad de bits en que difieren uno a uno. y los hay de distintos tipos: los más conocidos son los códigos Hamming. la primera de las secuencias con las restantes. Los resultados de este ejemplo se muestran en la siguiente tabla: Conjunto S1 S2 S3 S4 S5 Distancias de Hamming Representa Secuencia binaria B 0100001 C 1100001 D 0010001 E 1010001 U 1010101 Distancia -1 2 3 4 A efectos de la comparación y del cálculo de la Distancia de Hamming. pero no corregirlo. la distancia de Hamming varía de 1 a 4. Sea por ejemplo. Estos métodos no son sencillos. se puedan corregir los errores sin necesidad de proceder a la correspondiente retransmisión. aumentando la redundancia de bits se logra disminuir la probabilidad de ocurrencia de datos erróneos pero aumenta la cantidad de bits utilizados para la codificación de un símbolo. por lo que se puede deducir que se trata de un error. Para demostrar este concepto. los respectivos conjuntos. Para H=2. Sin embargo. como valor mínimo de la distancia de Hamming para construir un código dado no es posible detectar ni corregir ningún error. Esta situación es la que se produce cuando se usa un bit de paridad. en algunos casos. pues la alteración de un bit de datos dará por resultado una nueva combinación que tiene asignado otro símbolo como válido. Corrección de errores mediante códigos auto correctores Introducción: Los métodos de corrección de errores mediante el empleo de códigos auto correctores se basan en códigos que tienen la suficiente redundancia para que. En efecto. es posible detectar la presencia de un bit erróneo. En otras palabras. Hagelbarger y Bose-Chaudhurí.

En la siguiente tabla se indica la relación entre el valor de H y la capacidad de detección y corrección de errores. con esta distancia mínima para construir un código dado es posible detectar bytes con 1 o 2 bits erróneos. la distancia mínima de un código para que permita corregir errores de n bits debe ser: dm = 2n + 1. En caso de que no exista error.Para H=3. TRANSMISOR RECEPTOR Algoritmo Algoritmo Fuente Datos Datos Codificados Procesador Detección y auto corrección de errores Datos decodificados Destino Bits de Paridad De la tabla anterior vimos que un código de distancia mínima de Hamming igual a tres permite detectar errores de dos bits y corregir errores de un bit. dicho número debe ser cero. también es posible corregir los bytes que tengan un solo bit erróneo. Detección corrección de errores en función de H Distancia de Hamming Control de errores Detección Corrección 1 No No 2 Uno No 3 Dos Uno 4 Tres Uno Código de Hamming Este código auto corrector permite detectar y corregir errores mediante el empleo de bits de paridad con determinadas combinaciones únicas de bits de información. En general. El conjunto de los p bits de paridad forma un número en el sistema binario natural. Dado que con p bits se obtienen 2n combinaciones. la alteración de 1 o 2 bits dará lugar a combinaciones que no representan ningún otro símbolo válido. En efecto. Además. 14 . Este ejemplo nos permite inferir que la capacidad de detección y corrección de errores es función del valor de H. valor que hemos denominado Distancia de Hamming. se debe cumplir la relación: 2n ≥ p + n + 1 . Los códigos de Hamming están basados en la adición de p bits a un código de distancia unidad de n bits. En este nuevo código se realizan p detecciones de paridad en bits seleccionados de la cadena. obteniéndose un nuevo código de n + p bits. ya que si se sabe que ha habido un solo error. El número p de bits añadidos debe ser suficiente para permitir la detección y la ausencia de error en las n + p posiciones. es posible detectar el byte con error y luego efectuar la correspondiente corrección. obteniéndose un bit de paridad uno o cero según el número de bits sea par o impar. cuyo equivalente decimal nos indica la posición del bit erróneo.

La función lógica que cumple las condiciones especificadas es la función lógica OR EXCLUSIVA. juntamente con el número decimal equivalente al binario formado por ellos que ha de indicar la posición errónea. vamos a utilizar un código decimal codificado en binario natural.b7. C2 y C3. y cero en caso contrario. son necesarias 8 combinaciones binarias que denominaremos “correctoras de error”.Como ejemplo de aplicación del código de Hamming. se puede formar una tabla para el código de Hamming que represente los 4 bits de datos y los 3 bits de paridad. Si este código BCD adoptado es de n = 4 bits. En la siguiente tabla se presentan todas las combinaciones de los bits C1. dado que 23 = 4 + 3 + 1. el número de bits que se deben añadir es 3. los elegiremos como bits añadidos a la combinación BCD de datos formada por b3. Por lo tanto. b5 y b7 de las combinaciones del código. por lo tanto: b1 = b3 ⊕ b5 ⊕ b7 b2 = b3 ⊕ b6 ⊕ b7 b3 = b5 ⊕ b6 ⊕ b7 En consecuencia. b5. b5 y b7 es impar. b2 y b4 solo aparecen una vez en cada una de las expresiones anteriores. b6.b5 y b7 es impar. Dichas combinaciones se obtienen mediante 3 bits que denominaremos C1. b7 y b4. Para detectar los 7 posibles errores de un bit en cada una de las posiciones y la ausencia del error. C2 y C3. Si el número de “unos” existentes en esas cuatro posiciones es siempre “par”. en sus respectivas posiciones y con los bits de menor a mayor peso de derecha a izquierda: 15 . y cero en caso contrario. El bit b1 debe valer 1 si el número de unos de b3. Nº decimal equivalente C3 C2 C1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 2 3 4 5 6 7 El bit C1. un error en cualquiera de esos cuatro bits lo convierte en impar. b6. b3. Es decir: C1 = b1 ⊕ b3 ⊕ b5 ⊕ b7 C2 = b2 ⊕ b3 ⊕ b6 ⊕ b7 C3 = b4 ⊕ b5 ⊕ b6 ⊕ b7 Para lo cual ha de cumplirse la condición de que el número de unos debe ser par en las combinaciones b2. b3. C1 debe valer 1 si el número de unos en la posiciones b1. Para lograr estas condiciones se deben generar adecuadamente los tres bits de paridad que se añaden a los cuatro bits de datos de la combinación de datos BCD. toma el valor 1 si se producen errores en los bits de posición b1. b6 y b7 de la cadena. b5. b3. Dado que b1.

comprobaremos el valor lógico de C1. A partir de esta tabla. Por este motivo. y el bit b4 que corresponde a p3 controla las posiciones b5. C2 y C3 en la cadena 0 1 0 0 1 0 0. el transmisor genera estos siete símbolos codificados. La tasa de error en el diseño de sistemas de transmisión de datos. cuando se diseña o se implanta un determinado sistema con su correspondiente tecnología asociada. La presencia de errores en el diseño de los sistemas de transmisión de datos no puede ser omitida nunca. C1 = b1 ⊕ b3 ⊕ b5 ⊕ b7 = 0 ⊕ 1 ⊕ 0 ⊕ 0 = 1 C2 = b2 ⊕ b3 ⊕ b6 ⊕ b7 = 0 ⊕ 1 ⊗ 1 ⊕ 0 = 0 C3 = b4 ⊕ b5 ⊕ b6 ⊕ b7 = 0 ⊕ 0 ⊕ 1 ⊕ 0 = 1 La combinación de C3. se necesitan 3 bits adicionales de paridad. no hay error. Si las tres comprobaciones dan cero. El bit b2 que corresponde a p2 controla las posiciones b3. Cuando llegan al receptor. y así sucesivamente. comprobar el error si en el receptor se ha recibido la cadena 0100100. se hace la verificación del error a través de los códigos correctores C1. b6 y b7 de los bits de datos de información. que corresponden a la posición 1 para p1. Ejemplo: Dada la cadena de bits 0110100 que corresponde al número decimal 7.22. se observa que para 4 bits de datos. 2 para p2 y 4 para la p3. el número binario formado por C3. El error puede producirse en cualquier lugar de la cadena ya sea en la posición de los datos o de los bits de paridad y la comprobación es siempre válida. C2 y C3. C2 y C1 es 101. b6 y b7 de los datos de información. C2 y C1 indica el número decimal equivalente del lugar de la cadena donde se ha producido el error. La posición de estos bits de paridad en la cadena de 7 bits.Nº decimal equivalente 0 1 2 3 4 5 6 7 8 9 I7 I6 I5 p 4 I3 p 2 p 1 b7b6b5b4b3b2b1 0000000 0000111 0011001 0011110 0101010 0101101 0110011 0110100 1001011 1001100 En la tabla. Para detectarlo. equivalente al número decimal 5 que es la posición desde derecha a izquierda del bit erróneo donde el receptor procede a invertir el bit. Caso contrario. están en relación al valor 20. Recordemos que para detectar y corregir un bit erróneo en una cadena de un código de 4 bits de datos hemos necesitado 3 bits adicionales como mínimo para detectar y corregir un error de un bit de una cadena de 7 bits de un código auto corrector de Hamming. 21. generada por el transmisor. deben tenerse presente los siguientes aspectos: 16 . b5 y b7 de los datos de información. El bit b1 que corresponde a p1 controla las posiciones b3.

Antonio R. Prentice Hall “Teleinformática”. • Los medios de comunicaciones y elementos técnicos que podrán cumplir con dichos requerimientos. En el caso de las comunicaciones locales. tanto para las comunicaciones locales como para las remotas.La tasa de error. Basándose en los aspectos anteriores. Edit. Prentice Hall “Técnicas Digitales” – Enrique Mandado – Edit. se deberá determinar: • El ancho de banda del canal que será necesario usar. Fusario. Edit. la tasa de error es normalmente menor que en las comunicaciones remotas. • Los medios para recuperar la información afectada por errores. Tanenbaum – Edit. Castro Lechtaler y Rubén J. • La cantidad de información a transmitir por unidad de tiempo: que se corresponda con el concepto definido como velocidad real de transferencia de datos. Marcombo • 17 . Reverté “Redes de Computadoras” – Andrews S. • El tipo de control de errores que se requiere.William Stalling. • La velocidad de transmisión que es necesaria para satisfacer los requerimientos del sistema. Bibliografía recomendada: “Comunicaciones y Redes de Computadores”.

Sign up to vote on this title
UsefulNot useful