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

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. que consiste en que cada vez que se recibe un carácter o una unidad menor de información. un mensaje se transmite dos veces. 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 . Una metodología posible es no tomarlos en cuenta. Además. no es necesario que los errores sean tenidos en cuenta. y en alguna oportunidad muchas veces más. Si se emplean fibras ópticas. como mínimo. además son independientes entre sí en cuanto al momento de ocurrencia. fabricación de equipos y enlaces de transmisión de datos que reduzcan el porcentaje de errores. se retransmite de vuelta al transmisor de donde provino. En esta última estación se compara la información enviada con la transmitida desde el receptor. pero no lo es tanto si se considera que en muchos casos. Esta metodología reduce los costos aumenta el procesamiento total. Este método desperdicia capacidad de transmisión pues. Se usa en líneas de baja velocidad y. • Errores agrupados: son aquellos que ocurren en tandas sucesivas de una cierta duración y que no afectan necesariamente a varios bits seguidos. Esto parece algo trivial. si el error se produce en el viaje de retorno. Además incluye metodologías para detectarlos y corregirlos. 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. los errores se pueden clasificar en los siguientes tipos: • Errores simples o aislados: son aquellos que afectan a un solo bit cada vez y. por el tipo de información a transmitir y el uso que la misma recibirá. es una pérdida innecesaria de tiempo. no tiene la eficiencia de otros métodos más refinados. Tipos de errores Según su distribución en el tiempo. la tasa de error pude alcanzar hasta 10 −11 BER . si bien da cierto grado de protección.mucho menores y del orden de 10 −8 BER a 10 −9 BER .

otros bits de control adicionales. así mantenemos el total de unos en tres. 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. cuando no se utiliza la paridad (8º bit). solamente se indica que un error ha ocurrido. Con el VRC. debe mantenerse constante. obtenidos del resto de una división no convencional. incluyendo el bit de paridad. Se usa con códigos de 8 bits como EBCDIC o códigos de 7 bits como el ASCII. • Código de redundancia cíclica (CRC): Es el esquema más confiable para la detección de errores. no contando el bit de 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). • Codificación de cuenta exacta. Estos bits de control no transportan información alguna. el bit P se hace 1. Si el mismo caracter no se recibe igual dos veces sucesivamente. Mientras que si usamos paridad par. para que sea un número impar (paridad impar) o un número par (paridad par). El propósito de la detección de errores no es impedir que éstos ocurran. pero previene que los errores detectados no ocurran. Si se utiliza paridad impar. Con la paridad. Con este procedimiento. se detectan el 99. Puede usarse paridad par o impar. el número de unos en cada caracter. Las técnicas de detección de errores más comunes son: • Redundancia. un número impar. Las técnicas usadas para la detección de errores no identifican cual bit es erróneo. • 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. Hay 3 unos en el código.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.95 % de todos los errores de transmisión de una cadena de bits. cada caracter tiene un bit de paridad agregado a él. Detección de errores mediante control de la paridad Se basa en añadir a la secuencia de bits de información transmitidos. • Paridad. 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. un solo bit (bit de paridad) se agrega a cada caracter para forzar el total de números unos en el caracter. ha ocurrido error en la transmisión. Un ejemplo es la letra "C" del código ASCII que es 43 hex o P1000011. Para la verificación de la paridad existen cuatro métodos posibles: 3 . el bit P se hace 0. Se divide el polinomio dividendo (trama genérica de bits) por un polinomio divisor normalizado de bits. Involucra transmitir cada caracter dos veces. La paridad LRC denominada longitudinal u horizontal utiliza el mismo esquema anterior. 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. 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. sino que solamente se utilizan para la verificación de la paridad de secuencia de bits de datos. donde P representa el bit de paridad. antes de la transmisión. Con la codificación de cuenta exacta. siendo el número total de unos igual a cuatro que es un número par.

o viceversa. 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. y su uso está relacionado fundamentalmente con el código ASCII. El receptor. Al finalizar el bloque de N caracteres. En el transmisor. Si son iguales los bits de paridad. cuando recibe esta cadena. pero evidentemente el dato transmitido es erróneo. más conocido por su expresión en inglés Block Check Carácter (BCC). Si esto ocurre. se efectúa el cálculo del bit de paridad correspondiente a cada carácter y se transmite carácter por carácter. se notifica por algún método al transmisor del error. Si los BCC son iguales. Consiste básicamente en añadir un bit adicional al conjunto de 7 bits que constituyen el carácter en el código mencionado. Ejemplo: Carácter transmitido con el bit de paridad par: 0 1101111 Carácter recibido con doble inversión. se notifica por algún método al transmisor del error ocurrido en la cadena. Control de la paridad vertical (VRC) Conocido como VRC (Vertical Redundancy Check). caso contrario. se aplica a cada carácter o byte. 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. • Control de paridad longitudinal (LCR). • Control de paridad bidimensional (LCR/VCR). • Control de paridad entrelazada o cícilica. recalcula la paridad de los bytes de datos y la BCC. 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 vertical (VCR). se da por aceptado que el carácter llegó sin error. y si son diferentes. 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. la paridad resultante del carácter será correcta. transformándolos en cero. El grave inconveniente de este método es que no se puede detectar la doble inversión de bits. se da por aceptado el bloque de caracteres. En cualquiera de estos métodos la paridad puede ser par o impar. que se produce cuando hay un doble error en un byte que afecta simultáneamente a dos unos. 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. Al recibirse en el receptor estos 8 bits. se recalcula nuevamente la paridad y se verifica con el criterio utilizado en el transmisor (paridad par o impar). se transmitirá un carácter completo denominado Carácter de Control del Bloque.

permite la verificación de todos los bits del mensaje mediante la utilización de un algoritmo matemático. 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. tercero y quinto. mientras que el segundo proporciona la paridad de los bits segundo. 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. Básicamente. cuarto y sexto. 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. conocido también como polinomial.matricial para determinar en qué posición de la cadena de datos se encuentra el bit erróneo. Este método requiere de dos bits adicionales para el control de la paridad. 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. 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. 5 . El primer bit de paridad proporciona la paridad de los bits primero. 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.

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

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

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

Dicho en otras palabras. cuando se recibe una señal de error. se produce la paradoja de que aumentando la velocidad de modulación disminuye la velocidad real de transferencia de datos. Uno de los tantos métodos conocidos es a través de la codificación de Hamming. Técnicas de corrección de errores Consideraciones generales: Existen dos estrategias fundamentales para la corrección de errores: _ Corrección hacia delante. La retransmisión también se llama ARQ. 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. Imaginemos. Se puede apreciar claramente que cuando se eligen velocidades muy altas. automáticamente del lado receptor. Con FEC. hasta que sean recibidos libre de errores. De ahí la importancia de este tema en el diseño de cualquier sistema. éste solicita al equipo transmisor la repetición del bloque de datos transmitidos. Si bien resulta casi imposible corregir la totalidad de los errores.99% de los mismos. El receptor realiza la decodificación. 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. 9 . los errores provocan una pérdida de tiempo mayor que la ganancia que presumiblemente se iba a obtener con una velocidad superior. _ Corrección hacia atrás. que significa petición automática para retransmisión. Cuando se detecta un error en el equipo receptor. Aunque estos métodos hacen jnnecesaria la retransmisión. sin pedir retransmisión. Corrección hacia atrás: Consiste en el uso de sistemas de detección de errores. 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. 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. que en última instancia. Este sistema implica la retransmisión de los datos tantas veces como sea necesario. llegan a corregir el 99. Es el único esquema de corrección del error que detecta y corrige los errores de transmisión. Para la detección y corrección de errores de más de un bit en una cadena de bits transmitidos. por ejemplo. De ahí la llamada corrección hacia atrás. no son neutros al usuario. control del error y corrección automática del o los bits erróneos. se agregan bits redundantes al mensaje y se lo codifica antes de la transmisión. la mayoría de las técnicas que normalmente se emplean. la no corrección de errores. puede producir problemas graves. existen otros códigos mas complejos.Retransmisión (ARQ). En algunas aplicaciones. Corrección hacia delante: Este técnica se denomina también FEC (Forward Error Correction). como se ha visto anteriormente. Seguimiento de corrección del error hacia delante (FEC). es la que más interesa al administrador del sistema informático. 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. La terminal de recepción automáticamente pide la retransmisión de todo el mensaje mediante un aviso al transmisor. respecto de las que el canal de comunicaciones realmente puede soportar. Es volver a enviar un mensaje.

y será mucho más lento a medida que se incremente el número de errores. 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. luego. aún cuando no existan errores que corregir. 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. se emplean para la transmisión de bloques de más de 512 bytes. siempre que este método pueda ser usado. Cada bloque tiene 8 caracteres de 7 bits cada uno. _ La estación receptora debe tener en operación un equipo transmisor para acusar recibo y solicitar la retransmisión. Las desventajas son: _ El enlace es factible solamente entre dos estaciones al mismo tiempo.Sin embargo. pasando luego el equipo a la posición de reencendido (restart). ya sea por razones de seguridad o por necesidades de la misma operación del sistema informático asociado. Este sistema se suele denominar control por medio del eco o echo checking. el emisor deja de enviar datos y queda a la espera de que el receptor confirme los datos pendientes. La corrección por retransmisión requiere una tecnología sencilla y poca capacidad de memoria. resulta ser el más efectivo y. libre de errores. en general 32. requerirá la retransmisión del bloque anterior. Requerimiento automático de repetición: También conocido como ARQ (Automatic Retransmissión Request). 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. Si el CRC calculado en el receptor detecta errores envía un símbolo de reconocimiento negativo (NAK) al transmisor. En caso de que la comprobación sea satisfactoria envía un símbolo de reconocimiento positivo (ACK). 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. Puede utilizarse un código CRC para determinar si los datos del bloque contienen errores. En caso de detectarse un error. poseen capacidad para detectar errores y cuando los detectan. el método consiste en pedir la retransmisión del carácter o grupos de caracteres hacia el receptor. el proceso puede llegar a repetirse hasta un determinado número de veces. se utiliza solamente entre dos estaciones. La mayor ventaja de este método es que prácticamente garantiza una transmisión de datos. enviando en algunas ocasiones mensajes de interrogación. por lo tanto. En particular. la fuente espera que la estación receptora le envíe un nuevo requerimiento para la transmisión de un nuevo bloque de datos. Una vez detectada la existencia de un error (por intermedio del o los bits de paridad o por códigos de redundancia cíclica). suponiendo que el enlace es posible. 10 . pero sin enviar datos. piden su retransmisión inmediata. el más usado. Si el receptor hubiera detectado un error. 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”. Cuando el número de bloques de información que no han recibido confirmación supera el valor de la ventana de emisión. El transmisor debe almacenar los bloques transmitidos en un buffer adecuado hasta que reciba confirmación. Sin embargo. El sistema consiste en la transmisión de pequeños bloques de datos. 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. _ El sistema ARQ es más lento que el de Corrección de Errores hacia delante (FEC). Normalmente.

La siguiente figura muestra los tres métodos básicos de ARQ. ante la recepción de un NAK. Más información leer bibliografía recomendada. los sistemas ARQ pueden verse saturados por las peticiones reiteradas de retransmisió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 . mandar simultáneamente las señales ACK y NAK de los bloques que se están recibiendo. Envío continuo selectivo: permiten que el transmisor envíe datos hasta que se recibe un NAK.Existen tres formas básicas de ARQ: 1. el bloque original se retransmite y en caso de que se reciba un ACK se continúa con el siguiente bloque. si se guardan 5 bloques. El transmisor debe guardar previamente los N bloques en un buffer para poder retransmitirlos cuando sea necesario. 3. Envío y espera: el sistema espera la confirmación por parte del receptor de cada uno de los bloques. 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. por ejemplo. Solamente el bloque erróneo que se identifica al recibirse la señal NAK. de modo que N puede valer como máximo. 7. interrumpiendo su actividad en caso de no recibir respuesta. En estos protocolos. El protocolo SDLC especifica que pueden emitirse hasta 7 bloques de información antes de que se reciba una señal de confirmación. es el que se retransmite. 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. 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. 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. Si las tasas de error son elevadas.

Consecuentemente. 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. como por ejemplo. También es aplicable en los sistemas digitales que trabajan en tiempo real. Este procedimiento agrega suficiente redundancia para que el receptor pueda detectar la presencia de un error. existe una variación del sistema de Corrección hacia delante denominada SEL/FEC (Selective FEC). 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. la estación receptora tiene dos oportunidades de recibir correctamente cada carácter. y además ubicar la posición del bit en donde se ha producido dicho error. La estación receptora examinará primero la serie Dx y luego la serie Rx. 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. Este método se conoce en telecomunicaciones como transmisión por difusión (Transmisión Broadcasting). por ejemplo.Corrección de errores hacia delante: También conocido como FEC (Forward Error Correction). 12 . las cuales. por medio de la cual la estación transmisora emite un código correspondiente sólo a determinadas estaciones receptoras. serán las únicas habilitadas para recibir el mensaje. aquellos que actúan sobre un proceso industrial a partir de los valores de ciertas variables del proceso. intercalando los caracteres en diferentes instantes. • Menor tiempo de transmisión. • No requiere el empleo de transmisores en las estaciones receptoras. permitiendo que cada mensaje se envíe dos veces. No obstante. 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. Por ejemplo si se desean enviar caracteres del 1 al 9 como los indicados en la figura. Este método se usa en ciertas aplicaciones especiales. consecuentemente. Para poder realizar esta última operación. 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. con respecto al sistema ARQ. son los siguientes: • Se pueden transmitir mensajes a varias estaciones receptoras. Funciona en el modo denominado diversidad de tiempo (Time Diversity).

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

El conjunto de los p bits de paridad forma un número en el sistema binario natural. Este ejemplo nos permite inferir que la capacidad de detección y corrección de errores es función del valor de H. En efecto. ya que si se sabe que ha habido un solo error. la alteración de 1 o 2 bits dará lugar a combinaciones que no representan ningún otro símbolo válido. obteniéndose un nuevo código de n + p bits. En caso de que no exista error. Además. dicho número debe ser cero. con esta distancia mínima para construir un código dado es posible detectar bytes con 1 o 2 bits erróneos. cuyo equivalente decimal nos indica la posición del bit erróneo. obteniéndose un bit de paridad uno o cero según el número de bits sea par o impar.Para H=3. 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. 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. 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. En general. 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. se debe cumplir la relación: 2n ≥ p + n + 1 . también es posible corregir los bytes que tengan un solo bit erróneo. la distancia mínima de un código para que permita corregir errores de n bits debe ser: dm = 2n + 1. es posible detectar el byte con error y luego efectuar la correspondiente corrección. En este nuevo código se realizan p detecciones de paridad en bits seleccionados de la cadena. Dado que con p bits se obtienen 2n combinaciones. 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. valor que hemos denominado Distancia de Hamming. 14 .

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

que corresponden a la posición 1 para p1. 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 C1 es 101. C2 y C3. A partir de esta tabla. y el bit b4 que corresponde a p3 controla las posiciones b5. 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 hace la verificación del error a través de los códigos correctores C1. están en relación al valor 20. comprobaremos el valor lógico de C1. La presencia de errores en el diseño de los sistemas de transmisión de datos no puede ser omitida nunca. deben tenerse presente los siguientes aspectos: 16 . 21. generada por el transmisor. y así sucesivamente. cuando se diseña o se implanta un determinado sistema con su correspondiente tecnología asociada. C2 y C1 indica el número decimal equivalente del lugar de la cadena donde se ha producido el error. se observa que para 4 bits de datos. La posición de estos bits de paridad en la cadena de 7 bits. el número binario formado por C3. b6 y b7 de los datos de información. 2 para p2 y 4 para la p3. El bit b1 que corresponde a p1 controla las posiciones b3.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. se necesitan 3 bits adicionales de paridad. Ejemplo: Dada la cadena de bits 0110100 que corresponde al número decimal 7. b6 y b7 de los bits de datos de información. el transmisor genera estos siete símbolos codificados. comprobar el error si en el receptor se ha recibido la cadena 0100100. Caso contrario. Si las tres comprobaciones dan cero. no hay error. Por este motivo. Para detectarlo. Cuando llegan al receptor. El bit b2 que corresponde a p2 controla las posiciones b3. 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. La tasa de error en el diseño de sistemas de transmisión de datos. C2 y C3 en la cadena 0 1 0 0 1 0 0. 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. b5 y b7 de los datos de información.22.

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

Sign up to vote on this title
UsefulNot useful